From 5d3bf35252c98587713608facdbfb85f1b9d85d7 Mon Sep 17 00:00:00 2001 From: Nick Dorn Date: Wed, 31 Jul 2024 16:26:18 -0700 Subject: [PATCH 01/10] improve code coverage and parametrization of solver tests (#118) --- tests/conftest.py | 1 + tests/test_solver.py | 50 +++++++++++++++++++++++++++++++------------- tests/utils.py | 2 +- 3 files changed, 38 insertions(+), 15 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index bc56e43bd..01622310a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -19,3 +19,4 @@ def pytest_addoption(parser): def pytest_configure(config): """Workaround because store_true doesn't work""" pytest.coverage = config.option.coverage == True + diff --git a/tests/test_solver.py b/tests/test_solver.py index eb656fd94..f5db79329 100644 --- a/tests/test_solver.py +++ b/tests/test_solver.py @@ -4,14 +4,46 @@ import os import json import pandas as pd +import pytest import sys sys.path.append(os.path.dirname(__file__)) from .utils import run_test_case_by_name, get_result, run_with_reference, RTOL_FLOW, RTOL_PRES - -def test_all(): +@pytest.mark.parametrize("testfile", ['chamber_elastance_inductor.json', + 'steadyFlow_R_R.json', + 'pulsatileFlow_R_coronary_cycle_error.json', + 'pulsatileFlow_R_coronary.json', + 'coupledBlock_closedLoopHeart_withCoronaries.json', + 'pulsatileFlow_R_RCR_derivative.json', + 'steadyFlow_bifurcationR_R1.json', + 'closedLoopHeart_singleVessel.json', + 'pulsatileFlow_R_RCR_variable.json', + 'coupledBlock_closedLoopHeart_singleVessel.json', + 'steadyFlow_R_steadyPressure.json', + 'steadyFlow_bifurcationR_R1_blockNames.json', + 'pulsatileFlow_R_RCR.json', + 'closedLoopHeart_withCoronaries.json', + 'steadyFlow_RL_R.json', + 'steadyFlow_bifurcationR_R2.json', + 'pulsatileFlow_R_RCR_derivative_variable.json', + 'steadyFlow_confluenceR_R.json', + 'steadyFlow_R_RCR.json', + 'steadyFlow_stenosis_R.json', + 'pulsatileFlow_R_RCR_mean.json', + 'pulsatileFlow_R_RCR_mean_derivative.json', + 'pulsatileFlow_CStenosis_steadyPressure.json', + 'pulsatileFlow_R_RCR_mean_variable.json', + 'steadyFlow_RC_R.json', + 'steadyFlow_R_coronary.json', + 'steadyFlow_RLC_R.json', + 'steadyFlow_blood_vessel_junction.json', + 'valve_tanh.json', + 'pulsatileFlow_bifurcationR_RCR_cycle_error.json', + 'pulsatileFlow_R_RCR_mean_derivative_variable.json' + ]) +def test_solver(testfile): ''' run all test cases and compare against stored reference solution ''' @@ -20,16 +52,6 @@ def test_all(): results_dir = os.path.join(this_file_dir, 'cases', 'results') - testfiles = [f for f in os.listdir(os.path.join(this_file_dir, 'cases')) if os.path.isfile(os.path.join(this_file_dir, 'cases', f))] - - # we only want to test the solver, not the calibrator - testfiles.remove("steadyFlow_calibration.json") - - for file in testfiles: - - with open(os.path.join(this_file_dir, 'cases', file), "r") as f: - config = json.load(f) - - ref = pd.read_json(os.path.join(results_dir, 'result_' + file)) + ref = pd.read_json(os.path.join(results_dir, f'result_{testfile}')) - run_with_reference(ref, config) + run_with_reference(ref, os.path.join(this_file_dir, 'cases', testfile)) diff --git a/tests/utils.py b/tests/utils.py index b8047b106..47f7b0491 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -58,7 +58,7 @@ def run_with_reference( ): - res = pysvzerod.simulate(test_config) + res, config = execute_pysvzerod(test_config, "solver") if res.shape[1] == 6: # we have a result with fields [name, time, p_in, p_out, q_in, q_out] From 432848144903d2f895308247e5f104bebb708e5e Mon Sep 17 00:00:00 2001 From: Karthik Menon <40070586+menon-karthik@users.noreply.github.com> Date: Fri, 23 Aug 2024 11:08:32 -0600 Subject: [PATCH 02/10] Add names of internal variables to the documentation (#124) --- src/model/BloodVessel.h | 4 ++++ src/model/BloodVesselJunction.h | 4 ++++ src/model/ChamberElastanceInductor.h | 6 ++++++ src/model/ClosedLoopCoronaryBC.h | 6 ++++++ src/model/ClosedLoopHeartPulmonary.h | 17 +++++++++++++++++ src/model/ClosedLoopRCRBC.h | 6 ++++++ src/model/FlowReferenceBC.h | 4 ++++ src/model/Junction.h | 4 ++++ src/model/OpenLoopCoronaryBC.h | 6 ++++++ src/model/PressureReferenceBC.h | 4 ++++ src/model/ResistanceBC.h | 4 ++++ src/model/ResistiveJunction.h | 6 ++++++ src/model/ValveTanh.h | 4 ++++ src/model/WindkesselBC.h | 6 ++++++ 14 files changed, 81 insertions(+) diff --git a/src/model/BloodVessel.h b/src/model/BloodVessel.h index 6af4d22ec..63b9e9f20 100644 --- a/src/model/BloodVessel.h +++ b/src/model/BloodVessel.h @@ -139,6 +139,10 @@ * * `2` Inductance * * `3` Stenosis coefficient * + * ### Internal variables + * + * This block has no internal variables. + * */ class BloodVessel : public Block { public: diff --git a/src/model/BloodVesselJunction.h b/src/model/BloodVesselJunction.h index e9dcac9a1..3bf3f5295 100644 --- a/src/model/BloodVesselJunction.h +++ b/src/model/BloodVesselJunction.h @@ -140,6 +140,10 @@ * * `i+num_outlets` Inductance for inner blood vessel `i` * * `i+2*num_outlets` Stenosis coefficient for inner blood vessel `i` * + * ### Internal variables + * + * This block has no internal variables. + * */ class BloodVesselJunction : public Block { public: diff --git a/src/model/ChamberElastanceInductor.h b/src/model/ChamberElastanceInductor.h index 9d06e8f37..da4bd4ca5 100644 --- a/src/model/ChamberElastanceInductor.h +++ b/src/model/ChamberElastanceInductor.h @@ -136,6 +136,12 @@ * * `5` t_twitch: Twitch time * * `6` Impedance: Impedance of the outflow * + * ### Internal variables + * + * Names of internal variables in this block's output: + * + * * `Vc`: Chamber volume + * */ class ChamberElastanceInductor : public Block { public: diff --git a/src/model/ClosedLoopCoronaryBC.h b/src/model/ClosedLoopCoronaryBC.h index 190c2d9be..12269cbc9 100644 --- a/src/model/ClosedLoopCoronaryBC.h +++ b/src/model/ClosedLoopCoronaryBC.h @@ -114,6 +114,12 @@ * * `3` Ca: Small artery capacitance * * `4` Cim: Intramyocardial capacitance * + * ### Internal variables + * + * Names of internal variables in this block's output: + * + * * `volume_im`: Intramyocardial volume + * */ class ClosedLoopCoronaryBC : public Block { public: diff --git a/src/model/ClosedLoopHeartPulmonary.h b/src/model/ClosedLoopHeartPulmonary.h index c29c5d91c..7e9fa83f6 100644 --- a/src/model/ClosedLoopHeartPulmonary.h +++ b/src/model/ClosedLoopHeartPulmonary.h @@ -86,6 +86,23 @@ * * `25` Right atrium resting volume * * `26` Left atrium resting volume * + * ### Internal variables + * + * Names of internal variables in this block's output: + * + * * `V_RA`: Right atrium volume + * * `Q_RA`: Right atrium outflow + * * `P_RV`: Right ventricle pressure + * * `V_RV`: Right ventricle volume + * * `Q_RV`: Right ventricle outflow + * * `P_pul`: Pulmonary pressure + * * `P_LA`: Left atrium pressure + * * `V_LA`: Left atrium volume + * * `Q_LA`: Left atrium outflow + * * `P_LV`: Left ventricle pressure + * * `V_LV`: Left ventricle volume + * * `Q_LV`: Left ventricle outflow + * */ class ClosedLoopHeartPulmonary : public Block { public: diff --git a/src/model/ClosedLoopRCRBC.h b/src/model/ClosedLoopRCRBC.h index 4ce384282..e1b0fc8a4 100644 --- a/src/model/ClosedLoopRCRBC.h +++ b/src/model/ClosedLoopRCRBC.h @@ -109,6 +109,12 @@ * * `1` Capacitance * * `2` Distal resistance * + * ### Internal variables + * + * Names of internal variables in this block's output: + * + * * `P_c`: Pressure at the capacitor + * */ class ClosedLoopRCRBC : public Block { public: diff --git a/src/model/FlowReferenceBC.h b/src/model/FlowReferenceBC.h index b652f695e..9dd56a657 100644 --- a/src/model/FlowReferenceBC.h +++ b/src/model/FlowReferenceBC.h @@ -77,6 +77,10 @@ * * * `0` Flow * + * ### Internal variables + * + * This block has no internal variables. + * */ class FlowReferenceBC : public Block { public: diff --git a/src/model/Junction.h b/src/model/Junction.h index 3b4549532..a0264a572 100644 --- a/src/model/Junction.h +++ b/src/model/Junction.h @@ -90,6 +90,10 @@ * \underbrace{1}_{P_i} & \dots & \underbrace{1}_{P_j} & \dots\end{array}\right] * \quad \mathrm{with} \quad i \neq j \f] * + * ### Internal variables + * + * This block has no internal variables. + * */ class Junction : public Block { public: diff --git a/src/model/OpenLoopCoronaryBC.h b/src/model/OpenLoopCoronaryBC.h index 831f9ca39..a8d2da785 100644 --- a/src/model/OpenLoopCoronaryBC.h +++ b/src/model/OpenLoopCoronaryBC.h @@ -103,6 +103,12 @@ * * `5` Pim: Intramyocardial pressure * * `6` Pv: Venous pressure * + * ### Internal variables + * + * Names of internal variables in this block's output: + * + * * `volume_im`: Intramyocardial volume + * */ class OpenLoopCoronaryBC : public Block { public: diff --git a/src/model/PressureReferenceBC.h b/src/model/PressureReferenceBC.h index 7ba16b3b3..c6ac7ab98 100644 --- a/src/model/PressureReferenceBC.h +++ b/src/model/PressureReferenceBC.h @@ -78,6 +78,10 @@ * * * `0` Pressure * + * ### Internal variables + * + * This block has no internal variables. + * */ class PressureReferenceBC : public Block { public: diff --git a/src/model/ResistanceBC.h b/src/model/ResistanceBC.h index 71008d89f..51cd1e35d 100644 --- a/src/model/ResistanceBC.h +++ b/src/model/ResistanceBC.h @@ -77,6 +77,10 @@ * * `0` Resistance * * `1` Distal pressure * + * ### Internal variables + * + * This block has no internal variables. + * */ class ResistanceBC : public Block { public: diff --git a/src/model/ResistiveJunction.h b/src/model/ResistiveJunction.h index 26dc019ee..eb913ccc7 100644 --- a/src/model/ResistiveJunction.h +++ b/src/model/ResistiveJunction.h @@ -101,6 +101,12 @@ * * * `i` Poiseuille resistance for inner blood vessel `i` * + * ### Internal variables + * + * Names of internal variables in this block's output: + * + * * `pressure_c`: Pressure at the center of the junction + * */ class ResistiveJunction : public Block { public: diff --git a/src/model/ValveTanh.h b/src/model/ValveTanh.h index 11bfacce4..71b695ced 100644 --- a/src/model/ValveTanh.h +++ b/src/model/ValveTanh.h @@ -129,6 +129,10 @@ * * `3` upstream_block: Name of block connected upstream * * `4` downstream_block: Name of block connected downstream * + * ### Internal variables + * + * This block has no internal variables. + * */ class ValveTanh : public Block { public: diff --git a/src/model/WindkesselBC.h b/src/model/WindkesselBC.h index c1e23c9b1..53e9b6e70 100644 --- a/src/model/WindkesselBC.h +++ b/src/model/WindkesselBC.h @@ -103,6 +103,12 @@ * * `2` Distal resistance * * `3` Distal pressure * + * ### Internal variables + * + * Names of internal variables in this block's output: + * + * * `pressure_c`: Pressure at the capacitor + * */ class WindkesselBC : public Block { public: From 7a351481e1335681e228f663612d16811d699a7b Mon Sep 17 00:00:00 2001 From: emilinmathew <139182080+emilinmathew@users.noreply.github.com> Date: Wed, 28 Aug 2024 11:19:25 -0700 Subject: [PATCH 03/10] Adding svZeroDVisualization Tool (#123) --- .github/workflows/test.yml | 4 +- .github/workflows/test_visualization.yml | 40 + .gitignore | 3 + .../dirgraph_connections.py | 133 ++++ .../dirgraph_steady_bc.py | 83 ++ .../svZeroDVisualization/dirgraph_utils.py | 713 ++++++++++++++++++ .../svZeroDVisualization/dirgraph_wire.py | 80 ++ .../visualize_simulation.py | 651 ++++++++++++++++ docs/pages/developer_guide.md | 2 + docs/pages/main.md | 3 + docs/pages/visualization.md | 87 +++ ...mber_elastance_inductor_directed_graph.dot | 13 + ...dLoopHeart_singleVessel_directed_graph.dot | 5 + ...oopHeart_withCoronaries_directed_graph.dot | 17 + ...Stenosis_steadyPressure_directed_graph.dot | 7 + ...leFlow_R_RCR_derivative_directed_graph.dot | 7 + ...RCR_derivative_variable_directed_graph.dot | 7 + .../pulsatileFlow_R_RCR_directed_graph.dot | 7 + ...w_R_RCR_mean_derivative_directed_graph.dot | 7 + ...ean_derivative_variable_directed_graph.dot | 7 + ...ulsatileFlow_R_RCR_mean_directed_graph.dot | 7 + ...low_R_RCR_mean_variable_directed_graph.dot | 7 + ...tileFlow_R_RCR_variable_directed_graph.dot | 7 + ..._R_coronary_cycle_error_directed_graph.dot | 7 + ...ulsatileFlow_R_coronary_directed_graph.dot | 7 + ...cationR_RCR_cycle_error_directed_graph.dot | 15 + .../steadyFlow_RC_R_directed_graph.dot | 7 + .../steadyFlow_RLC_R_directed_graph.dot | 7 + .../steadyFlow_RL_R_directed_graph.dot | 7 + .../steadyFlow_R_RCR_directed_graph.dot | 7 + .../steadyFlow_R_R_directed_graph.dot | 7 + .../steadyFlow_R_coronary_directed_graph.dot | 7 + ...dyFlow_R_steadyPressure_directed_graph.dot | 7 + ...urcationR_R1_blockNames_directed_graph.dot | 15 + ...adyFlow_bifurcationR_R1_directed_graph.dot | 15 + ...adyFlow_bifurcationR_R2_directed_graph.dot | 15 + ...w_blood_vessel_junction_directed_graph.dot | 15 + .../steadyFlow_calibration_directed_graph.dot | 7 + ...teadyFlow_confluenceR_R_directed_graph.dot | 15 + .../steadyFlow_stenosis_R_directed_graph.dot | 7 + .../valve_tanh_directed_graph.dot | 11 + tests/requirements.txt | 10 + tests/test_dirgraph.py | 61 ++ 43 files changed, 2144 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/test_visualization.yml create mode 100644 applications/svZeroDVisualization/dirgraph_connections.py create mode 100644 applications/svZeroDVisualization/dirgraph_steady_bc.py create mode 100644 applications/svZeroDVisualization/dirgraph_utils.py create mode 100644 applications/svZeroDVisualization/dirgraph_wire.py create mode 100644 applications/svZeroDVisualization/visualize_simulation.py create mode 100644 docs/pages/visualization.md create mode 100644 tests/cases/dirgraph-results/chamber_elastance_inductor_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/closedLoopHeart_singleVessel_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/closedLoopHeart_withCoronaries_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/pulsatileFlow_CStenosis_steadyPressure_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/pulsatileFlow_R_RCR_derivative_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/pulsatileFlow_R_RCR_derivative_variable_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/pulsatileFlow_R_RCR_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_derivative_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_derivative_variable_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_variable_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/pulsatileFlow_R_RCR_variable_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/pulsatileFlow_R_coronary_cycle_error_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/pulsatileFlow_R_coronary_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/pulsatileFlow_bifurcationR_RCR_cycle_error_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_RC_R_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_RLC_R_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_RL_R_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_R_RCR_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_R_R_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_R_coronary_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_R_steadyPressure_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_bifurcationR_R1_blockNames_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_bifurcationR_R1_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_bifurcationR_R2_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_blood_vessel_junction_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_calibration_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_confluenceR_R_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/steadyFlow_stenosis_R_directed_graph.dot create mode 100644 tests/cases/dirgraph-results/valve_tanh_directed_graph.dot create mode 100644 tests/requirements.txt create mode 100644 tests/test_dirgraph.py diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0d52f7e42..c8a1d7689 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,7 @@ jobs: - name: Test the build run: | cd tests - conda run -n zerod pytest -v --durations=0 + conda run -n zerod pytest -v --durations=0 --ignore=test_dirgraph.py - name: Build using CMake run: | mkdir Release @@ -51,7 +51,7 @@ jobs: cmake -DENABLE_COVERAGE=ON .. make -j2 cd ../tests - conda run -n zerod pytest -v --durations=0 --coverage + conda run -n zerod pytest -v --durations=0 --coverage --ignore=test_dirgraph.py cd ../Release make coverage - name: Save coverage report diff --git a/.github/workflows/test_visualization.yml b/.github/workflows/test_visualization.yml new file mode 100644 index 000000000..876800c30 --- /dev/null +++ b/.github/workflows/test_visualization.yml @@ -0,0 +1,40 @@ +name: Test Visualization Application + +on: [push, pull_request] + +jobs: + test: + strategy: + matrix: + os: [ubuntu-22.04, macos-13] + fail-fast: false + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout Code + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r tests/requirements.txt + + - name: Install Graphviz + if: runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install -y graphviz + + - name: Install Graphviz (macOS) + if: runner.os == 'macOS' + run: | + brew install graphviz + + - name: Run tests + run: | + pytest tests/test_dirgraph.py diff --git a/.gitignore b/.gitignore index 0bb067e36..2fa074b08 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,6 @@ build .project .settings *.swp + +# Node modules (for directed graph visualization) +node_modules/ diff --git a/applications/svZeroDVisualization/dirgraph_connections.py b/applications/svZeroDVisualization/dirgraph_connections.py new file mode 100644 index 000000000..a102a7f27 --- /dev/null +++ b/applications/svZeroDVisualization/dirgraph_connections.py @@ -0,0 +1,133 @@ +# coding=utf-8 + +# Copyright (c) Stanford University, The Regents of the University of +# California, and others. +# +# All Rights Reserved. +# +# See Copyright-SimVascular.txt for additional details. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject +# to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +# OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import numpy as np +from dirgraph_wire import wire + +def check_block_pair_flow_consistency(bA, bB): + if bB.name not in bA.connecting_block_list: + raise Exception('Block ' + bB.name + ' not in connecting list of ' + bA.name) + else: + id_bB = bA.connecting_block_list.index(bB.name) + + if bA.name not in bB.connecting_block_list: + raise Exception('Block ' + bA.name + ' not in connecting list of ' + bB.name) + else: + id_bA = bB.connecting_block_list.index(bA.name) + + if bA.flow_directions[id_bB] * bB.flow_directions[id_bA] != -1: + print('Flow direction of ' + bB.name + ' :', bB.flow_directions[id_bA]) + print('Flow direction of ' + bA.name + ' :', bA.flow_directions[id_bB]) + raise Exception('Flow directions of ' + bA.name + ' donot conform to that of ' + bB.name) + + +def connect_blocks_by_inblock_list( + block_list): + connectivity = [] + + wire_dict = {} + + bnames = [_.name for _ in block_list] + # Check if connection definition is consistent + for bA in block_list: + for bBnm in bA.connecting_block_list: + bB = block_list[bnames.index(bBnm)] + check_block_pair_flow_consistency(bA, bB) + + # If you reached here, it means each block has a consistent (connecting_block_list) and (flow_directions) + for bA in block_list: + i = -1 + id_bA = block_list.index(bA) + for bBnm in bA.connecting_block_list: + id_bB = bnames.index(bBnm) + bB = block_list[id_bB] + i += 1 # i is the index at which block, bB, is located in block bA's connecting_block_list + if bA.flow_directions[i] == +1 and (id_bA, id_bB) not in connectivity: + name_wire = bA.name + '_' + bB.name + connecting_elements = (block_list[id_bA], block_list[id_bB]) + connectivity.append((id_bA, + id_bB)) # connectivity stores pair-wise tuples of indices of the blocks that are connected; basically, if block 1 is connected to block 2 and the flow goes from block 1 to block 2, then connectivity will store a 2-element tuple, where the first element is the index at which block 1 is stored in block_list and the 2nd element is the index at which block 2 is stored in block_list. if the flow goes from block 2 to block 1, then connectivity will store a 2-element tuple, where the first element is the index at which block 2 is stored in block_list and the 2nd element is the index at which block 1 is stored in block_list. + elif bA.flow_directions[i] == -1: + name_wire = bB.name + '_' + bA.name + connecting_elements = (block_list[id_bB], block_list[id_bA]) + else: + continue # if this line is executed, then the next two lines (wire_dict[name_wire] = ... and block_list[id_bA] = ...) will not be executed + wire_dict[name_wire] = wire(connecting_elements, name=name_wire) + block_list[id_bA].add_connecting_wire(name_wire) + + return connectivity, wire_dict + + +def connect_blocks_by_connectivity_list(block_list, connectivity): + wire_dict = {} + + for e in connectivity: + e1, e2 = e + e1name = block_list[e1].name + e2name = block_list[e2].name + + connecting_elements = (block_list[e1], block_list[e2]) + name_wire = e1name + '_' + e2name + + wire_dict[name_wire] = wire(connecting_elements, name=name_wire) + + if e2name not in block_list[e1].connecting_block_list: + block_list[e1].add_connecting_wire(name_wire) + block_list[e1].add_connecting_block(e2name, +1) + + if e1name not in block_list[e2].connecting_block_list: + block_list[e2].add_connecting_wire(name_wire) + block_list[e2].add_connecting_block(e1name, -1) + return wire_dict + + +def check_block_connection(block): + if len(block.flow_directions) != block.num_connections: + print("Block name: " + block.name) + print("Block number of flows: ", len(block.flow_directions)) + print("Block number of eqs: ", block.num_connections) + + raise Exception("Number of connections donot match the number of inflows+outflows for this block") + + # print block.connecting_wires_list + reorder_inblock_connectivity(block) + + +# Reorder blocks to have connecting_block_list and connecting_wires_list arranged in ascending flow_directions +# This will give robustness to initial ordering during setup + +def reorder_inblock_connectivity(block): + indx = sorted(range(len(block.flow_directions)), key=lambda k: block.flow_directions[k]) + + block.flow_directions = [block.flow_directions[_] for _ in indx] + block.connecting_wires_list = [block.connecting_wires_list[_] for _ in indx] + block.connecting_block_list = [block.connecting_block_list[_] for _ in indx] diff --git a/applications/svZeroDVisualization/dirgraph_steady_bc.py b/applications/svZeroDVisualization/dirgraph_steady_bc.py new file mode 100644 index 000000000..a43d5ba3a --- /dev/null +++ b/applications/svZeroDVisualization/dirgraph_steady_bc.py @@ -0,0 +1,83 @@ +# Copyright (c) Stanford University, The Regents of the University of +# California, and others. +# +# All Rights Reserved. +# +# See Copyright-SimVascular.txt for additional details. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject +# to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +# OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import copy +import numpy as np + +def get_bc_name_to_index_map(parameters): + bc_name_to_index_map = {} + for i in range(len(parameters["boundary_conditions"])): + bc_name = parameters["boundary_conditions"][i]["bc_name"] + bc_name_to_index_map[bc_name] = i + return bc_name_to_index_map + + +def create_block_to_boundary_condition_map(parameters): + def add_bc_to_map(block_name, bc_name, location): + if block_name not in block_to_boundary_condition_map: + block_to_boundary_condition_map[block_name] = {} + for boundary_condition in parameters["boundary_conditions"]: + if boundary_condition["bc_name"] == bc_name: + block_to_boundary_condition_map[block_name][location] = boundary_condition + + block_to_boundary_condition_map = {} + + # Process vessels + for vessel in parameters["vessels"]: + if "boundary_conditions" in vessel: + vessel_id = vessel["vessel_id"] + for location, bc_name in vessel["boundary_conditions"].items(): + add_bc_to_map(vessel_id, bc_name, location) + + # Process valves + if 'valves' in parameters: + for valve in parameters['valves']: + valve_name = valve['name'] + upstream_bc = valve['params']['upstream_block'] + downstream_bc = valve['params']['downstream_block'] + + if upstream_bc in get_bc_name_to_index_map(parameters): + add_bc_to_map(valve_name, upstream_bc, 'inlet') + + if downstream_bc in get_bc_name_to_index_map(parameters): + add_bc_to_map(valve_name, downstream_bc, 'outlet') + + parameters["block_to_boundary_condition_map"] = block_to_boundary_condition_map + + + +def get_ids_of_cap_vessels(parameters, location): # location == "inlet" or "outlet" + ids_of_cap_vessels = [] + for vessel in parameters["vessels"]: + if "boundary_conditions" in vessel: + if location in vessel["boundary_conditions"]: + ids_of_cap_vessels.append(vessel["vessel_id"]) + return ids_of_cap_vessels + diff --git a/applications/svZeroDVisualization/dirgraph_utils.py b/applications/svZeroDVisualization/dirgraph_utils.py new file mode 100644 index 000000000..9e76668ae --- /dev/null +++ b/applications/svZeroDVisualization/dirgraph_utils.py @@ -0,0 +1,713 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +This code will create a directed graph by reading a .json file. +""" +import dirgraph_wire as ntwku +import dirgraph_steady_bc +import dirgraph_connections +import numpy as np +import pandas as pd +import json +import pdb +import sys +import re +import os +import copy + +try: + from tqdm import tqdm +except ImportError: + pass + +try: + import matplotlib.pyplot as plt # only needed if you want to visualize the 0d model as a directed graph +except ImportError: + print( + "\nmatplotlib.pyplot not found. matplotlib.pyplot is needed for visualizing the 0D model.") + +try: + import networkx as nx # only needed if you want to visualize the 0d model as a directed graph +except ImportError: + print("\nnetworkx not found. networkx is needed for visualizing the 0D model.") + +try: + from profilehooks import profile # only needed if you want to profile this script +except ImportError: + print("\nprofilehooks.profile not found. profilehooks.profile is needed only if you want to profile this script.") + +try: + import json +except ImportError: + print("\njson not found.") + +import importlib +import argparse +from collections import defaultdict + +# Loads a json file and extracts necessary information to draw the directed graph +def load_json_input_file(fpath, name_type): + """ + Purpose: + Parses through the input JSON file to create pandas DataFrames for each 0D element type + and prepares data for further processing. + + Inputs: + fpath (str): Path to the JSON file. + name_type (str): How to name nodes, either "id" or "name". + + Returns: + d: A dictionary containing pandas DataFrames for each 0D element type and updated entries of blocks & block_names + """ + with open(fpath, 'rb') as fp: + d = json.load(fp) + blocks = {} # {block_name : block_object} + d.update({"blocks": blocks}) + dirgraph_steady_bc.create_block_to_boundary_condition_map(d) + d.update({"block_names": list(d["blocks"].keys())}) + vessel_id_map = get_vessel_name_to_vessel_id_map(d) + + if 'vessels' not in d or len(d['vessels']) == 0: + df_vessels = pd.DataFrame() + else: + df_vessels = pd.DataFrame(dict( + inlet=[x.get('boundary_conditions', {}).get('inlet') for x in d['vessels']], + outlet=[x.get('boundary_conditions', {}).get('outlet') for x in d['vessels']], + name=[x['vessel_name'] for x in d['vessels']], + vessel_id=[x['vessel_id'] for x in d['vessels']] + )) + + if 'junctions' not in d: + df_junctions = pd.DataFrame() + df_junctions_expanded = pd.DataFrame() + + else: + # Create separate lists for inlets and outlets + junction_inlets = [] + junction_outlets = [] + + for junction in d['junctions']: + junction_name = junction['junction_name'] + + # Check for inlet and outlet blocks + if 'inlet_blocks' in junction: + for block in junction['inlet_blocks']: + if block in vessel_id_map: + junction_inlets.append( + {'junction_name': junction_name, 'block_name': "V" + str(vessel_id_map[block]), 'direction': 'inlet', 'type': 'vessel'}) + else: + junction_inlets.append( + {'junction_name': junction_name, 'block_name': block, + 'direction': 'inlet', 'type': 'block'}) + for block in junction['outlet_blocks']: + if block in vessel_id_map: + junction_inlets.append( + {'junction_name': junction_name, 'block_name': "V" + str(vessel_id_map[block]), 'direction': 'outlet', 'type': 'vessel'}) + else: + junction_inlets.append( + {'junction_name': junction_name, 'block_name': block, + 'direction': 'outlet', 'type': 'block'}) + + # Check for inlet and outlet vessels + if 'inlet_vessels' in junction: + for vessel in junction['inlet_vessels']: + junction_inlets.append( + {'junction_name': junction_name, 'block_name': "V" + str(vessel), 'direction': 'inlet', + 'type': 'vessel'}) + for vessel in junction['outlet_vessels']: + junction_outlets.append( + {'junction_name': junction_name, 'block_name': "V" + str(vessel), 'direction': 'outlet', + 'type': 'vessel'}) + + # Create DataFrames from the lists + df_junctions_inlets = pd.DataFrame(junction_inlets) + df_junctions_outlets = pd.DataFrame(junction_outlets) + + # Concatenate the DataFrames to form a unified junctions DataFrame + df_junctions = pd.concat([df_junctions_inlets, df_junctions_outlets], ignore_index=True) + df_junctions_expanded = pd.concat([df_junctions_inlets, df_junctions_outlets], ignore_index=True) + create_junction_blocks(d, df_junctions_expanded, name_type) + + bcs = d['boundary_conditions'] + df_bcs = pd.DataFrame(dict( + name=[x['bc_name'] for x in bcs], + type=[x['bc_type'] for x in bcs], + )) + + if 'valves' not in d: + df_valves = pd.DataFrame(columns=['name', 'type', 'upstream', 'downstream']) + else: + valves = d['valves'] + df_valves = pd.DataFrame(dict( + name = [x['name'] for x in valves], + type = [x['type'] for x in valves], + upstream = [x['params']['upstream_block'] for x in valves], + downstream = [x['params']['downstream_block'] for x in valves] + )) + create_valve_blocks(d, df_vessels, df_valves, name_type) + + if 'chambers' not in d: + df_chambers= pd.DataFrame(columns=['name', 'type']) + else: + chambers = d['chambers'] + df_chambers = pd.DataFrame(dict( + name = [x['name'] for x in chambers], + type=[x['type'] for x in chambers], + )) + create_chamber_blocks(d, df_chambers, df_junctions_expanded, df_valves) + + create_outlet_bc_blocks(d, df_valves, name_type) + create_inlet_bc_blocks(d, df_valves, name_type) + create_vessel_blocks(d, df_vessels, df_junctions_expanded, df_valves, name_type) + return d + + + +def create_valve_blocks(d, df_vessels, df_valves, name_type): + """ + Purpose: + Create the valve blocks for the 0d model. + Inputs: + d = dict of parameters + df_vessels = df of vessel specific data (because valves are often connected to vessels) + df_valves = df ov valve specific data + name_type: How to name nodes, either "id" or "name". + Returns: + void, but updates d["blocks"] to include the valve blocks, where + d["blocks"] = {block_name : block_object} + """ + if df_valves.empty: + return + valve_blocks = {} # {block_name: block_object} + + if name_type == 'id': + vessel_id_map = get_vessel_name_to_vessel_id_map(d) + + # vessel_list = get_vessel_list(d, 'name') + bc_name_to_index_map = dirgraph_steady_bc.get_bc_name_to_index_map(d) + + def process_row(row): + valve_name = row['name'] + ups_block = row['upstream'] + down_block = row['downstream'] + connecting_block_list = [] + flow_directions = [] + + # Upstream Block Processing + if ups_block in bc_name_to_index_map: + bc_block_name = "BC" + valve_name + "_inlet" + connecting_block_list.append(bc_block_name) + flow_directions.append(-1) + elif ups_block in df_vessels['name'].values: + vessel_id_name = "V" + str(vessel_id_map[ups_block]) + connecting_block_list.append(vessel_id_name) + flow_directions.append(-1) + else: + connecting_block_list.append(ups_block) + flow_directions.append(-1) + + # Downstream Block Processing + if down_block in bc_name_to_index_map: + bc_block_name = "BC" + valve_name + "_outlet" + connecting_block_list.append(bc_block_name) + flow_directions.append(+1) + elif down_block in df_vessels['name'].values: + vessel_id_name = "V" + str(vessel_id_map[down_block]) + connecting_block_list.append(vessel_id_name) + flow_directions.append(+1) + else: + connecting_block_list.append(down_block) + flow_directions.append(+1) + + if (+1 in flow_directions) and (-1 in flow_directions): + valve_blocks[valve_name] = ntwku.LPNBlock( + connecting_block_list=connecting_block_list, + name=valve_name, + flow_directions=flow_directions + ) + + df_valves.apply(process_row, axis=1) + d["blocks"].update(valve_blocks) + + + +def create_chamber_blocks(d, df_chambers, df_junctions_expanded, df_valves): + """ + Purpose: + Create the chamber blocks for the 0d model. + Inputs: + d = dict of parameters + df_chambers = df of chamber specific data + df_junctions_expanded = df of junctions (modified to have inlets & outlets clearly structured) + df_valves = df ov valve specific data + + Returns: + void, but updates d["blocks"] to include the chamber blocks, where + d["blocks"] = {block_name : block_object} + """ + if df_chambers.empty: + return + chamber_blocks = {} # {block_name: block_object} + + def process_chamber(row): + chamber_name = row['name'] + connecting_block_list = [] + flow_directions = [] + + if not df_junctions_expanded.empty: + # Junction Processing + inlet_matches = df_junctions_expanded[ + (df_junctions_expanded['block_name'] == chamber_name) & (df_junctions_expanded['direction'] == 'inlet')] + for _, match in inlet_matches.iterrows(): + connecting_block_list.append(match['junction_name']) + flow_directions.append(+1) + + outlet_matches = df_junctions_expanded[(df_junctions_expanded['block_name'] == chamber_name) & ( + df_junctions_expanded['direction'] == 'outlet')] + for _, match in outlet_matches.iterrows(): + connecting_block_list.append(match['junction_name']) + flow_directions.append(-1) + + # Valve Processing + valve_ups = df_valves[df_valves['upstream'] == chamber_name] + for _, valve in valve_ups.iterrows(): + connecting_block_list.append(valve['name']) + flow_directions.append(+1) + + valve_downs = df_valves[df_valves['downstream'] == chamber_name] + for _, valve in valve_downs.iterrows(): + connecting_block_list.append(valve['name']) + flow_directions.append(-1) + + if (+1 in flow_directions) and (-1 in flow_directions): + chamber_blocks[chamber_name] = ntwku.LPNBlock( + connecting_block_list=connecting_block_list, + name=chamber_name, + flow_directions=flow_directions + ) + + df_chambers.apply(process_chamber, axis=1) + d["blocks"].update(chamber_blocks) + + +def create_junction_blocks(d, df_junctions_expanded, name_type): + """ + Purpose: + Create the junction blocks for the 0d model. + Inputs: + d = dict of parameters + df_junctions_expanded = df of junctions (modified to have inlets & outlets clearly structured) + name_type = str specified by either 'name' or 'id' that specifies whether + vessel names or ids should be used for each node + Returns: + void, but updates parameters["blocks"] to include the junction_blocks, where + parameters["blocks"] = {block_name : block_object} + """ + if df_junctions_expanded.empty: + return + junction_blocks = {} # {block_name: block_object} + + def process_junction(row): + junction_name = row['junction_name'] + if not junction_name.startswith("J") or not junction_name[1:].isnumeric(): + message = f"Error. Joint name, {junction_name}, is not 'J' followed by numeric values. The 0D solver assumes that all joint names are 'J' followed by numeric values in the 0d solver input file. Note that the joint names are the same as the junction names." + raise RuntimeError(message) + + connecting_block_list = [] + flow_directions = [] + + # Inlet Processing + inlet_matches = df_junctions_expanded[ + (df_junctions_expanded['junction_name'] == junction_name) & (df_junctions_expanded['direction'] == 'inlet')] + for _, match in inlet_matches.iterrows(): + connecting_block_list.append(match['block_name']) + flow_directions.append(-1) + + # Outlet Processing + outlet_matches = df_junctions_expanded[(df_junctions_expanded['junction_name'] == junction_name) & ( + df_junctions_expanded['direction'] == 'outlet')] + for _, match in outlet_matches.iterrows(): + connecting_block_list.append(match['block_name']) + flow_directions.append(+1) + + if (+1 in flow_directions) and (-1 in flow_directions): + junction_blocks[junction_name] = ntwku.LPNBlock( + connecting_block_list=connecting_block_list, + name=junction_name, + flow_directions=flow_directions + ) + else: + message = f"Error. Junction block, {junction_name}, must have at least 1 inlet connection and 1 outlet connection." + raise RuntimeError(message) + + unique_junction_names = df_junctions_expanded['junction_name'].unique() + for j_name in unique_junction_names: + process_junction(df_junctions_expanded[df_junctions_expanded['junction_name'] == j_name].iloc[0]) + + d["blocks"].update(junction_blocks) + + +def get_vessel_list(parameters, name_type): + """ + Purpose: + Returns a list of all vessel ids or names based on name_type. + Inputs: + parameters = dict of parameters + name_type = str specified by either 'name' or 'id' that specifies whether + vessel names or ids should be used to iterate through parameters["vessels"] + Returns: + returns a list of vessel ids or vessel names + """ + vessel_id_list = [] + for vessel in parameters["vessels"]: + if name_type == 'id': + vessel_id_list.append(vessel["vessel_id"]) + else: + vessel_id_list.append(vessel['vessel_name']) + return vessel_id_list + + +def get_vessel_block_helpers(d, df_vessels, df_junctions_expanded, df_valves, name_type): + """ + Purpose: + Create helper dictionaries to support the creation of the vessel blocks. + Inputs: + d = dict of parameters + df_vessels = df of vessel specific data (because valves are often connected to vessels) + df_junctions_expanded = df of junctions (modified to have inlets & outlets clearly structured) + df_valves = df ov valve specific data + name_type: How to name nodes, either "id" or "name". + + Returns: + dict vessel_blocks_connecting_block_lists + = {vessel_id : connecting_block_list} + dict vessel_blocks_flow_directions + = {vessel_id : flow_directions} + dict vessel_blocks_names + = {vessel_id : block_name} + """ + name_type = name_type.lower() + + vessel_id_map = get_vessel_name_to_vessel_id_map(d) + vessel_name_get = get_vessel_id_to_vessel_name_map(d) if name_type == 'name' else None + + # Initialize connecting block lists and flow directions + df_vessels['connecting_block_list'] = [[] for _ in range(len(df_vessels))] + df_vessels['flow_directions'] = [[] for _ in range(len(df_vessels))] + df_vessels['block_name'] = df_vessels['vessel_id'].apply( + lambda x: vessel_name_get[x] if name_type == 'name' else f"V{x}") + + # Process cap vessels + for location in ["inlet", "outlet"]: + ids_of_cap_vessels = dirgraph_steady_bc.get_ids_of_cap_vessels(d, location) + direction = -1 if location == "inlet" else 1 + bc_block_names = [f"BC{v_id}_{location}" for v_id in ids_of_cap_vessels] + + cap_vessels_df = pd.DataFrame({ + 'vessel_id': ids_of_cap_vessels, + 'bc_block_name': bc_block_names, + 'flow_direction': [direction] * len(ids_of_cap_vessels) + }) + + df_vessels = df_vessels.merge(cap_vessels_df, on='vessel_id', how='left') + df_vessels['connecting_block_list'] = df_vessels.apply(lambda row: row['connecting_block_list'] + ( + [row['bc_block_name']] if pd.notna(row['bc_block_name']) else []), axis=1) + df_vessels['flow_directions'] = df_vessels.apply( + lambda row: row['flow_directions'] + ([row['flow_direction']] if pd.notna(row['flow_direction']) else []), + axis=1) + + df_vessels.drop(columns=['bc_block_name', 'flow_direction'], inplace=True) + + for _, row in df_junctions_expanded.iterrows(): + junction_name = row['junction_name'] + block_or_vessel_name = row['block_name'] # This is the generic 'block_name' that could be a vessel or a block + direction = +1 if row['direction'] == 'inlet' else -1 + + if row['type'] == 'vessel': + vessel_id = int(block_or_vessel_name[1:]) # Strip the 'V' and convert to integer + # Update the connecting_block_list and flow_directions for the vessel + df_vessels.loc[df_vessels['vessel_id'] == vessel_id, 'connecting_block_list'] = df_vessels.loc[ + df_vessels['vessel_id'] == vessel_id, 'connecting_block_list'].apply(lambda x: x + [junction_name]) + df_vessels.loc[df_vessels['vessel_id'] == vessel_id, 'flow_directions'] = df_vessels.loc[ + df_vessels['vessel_id'] == vessel_id, 'flow_directions'].apply(lambda x: x + [direction]) + elif row['type'] == 'block': + # Update the connecting_block_list and flow_directions for the block + df_vessels.loc[df_vessels['name'] == block_or_vessel_name, 'connecting_block_list'] = df_vessels.loc[ + df_vessels['name'] == block_or_vessel_name, 'connecting_block_list'].apply( + lambda x: x + [junction_name]) + df_vessels.loc[df_vessels['name'] == block_or_vessel_name, 'flow_directions'] = df_vessels.loc[ + df_vessels['name'] == block_or_vessel_name, 'flow_directions'].apply(lambda x: x + [direction]) + + # Process valves + for _, row in df_valves.iterrows(): + blocks = [row['upstream'], row['downstream']] + valve_name = row['name'] + for i, block in enumerate(blocks): + if block in df_vessels['name'].values: + vessel_id = df_vessels.loc[df_vessels['name'] == block, 'vessel_id'].values[0] + df_vessels.loc[df_vessels['vessel_id'] == vessel_id, 'connecting_block_list'].apply( + lambda x: x.append(valve_name)) + flow_direction = +1 if i == 0 else -1 + df_vessels.loc[df_vessels['vessel_id'] == vessel_id, 'flow_directions'].apply( + lambda x: x.append(flow_direction)) + + vessel_blocks_connecting_block_lists = df_vessels.set_index('vessel_id')['connecting_block_list'].to_dict() + vessel_blocks_flow_directions = df_vessels.set_index('vessel_id')['flow_directions'].to_dict() + vessel_blocks_names = df_vessels.set_index('vessel_id')['block_name'].to_dict() + return vessel_blocks_connecting_block_lists, vessel_blocks_flow_directions, vessel_blocks_names + + +def create_vessel_blocks(d, df_vessels, df_junctions_expanded, df_valves, name_type): + """ + Purpose: + Create the vessel blocks for the 0d model. + Inputs: + d = dict of parameters + df_vessels = df of vessel specific data (because valves are often connected to vessels) + df_junctions_expanded = df of junctions (modified to have inlets & outlets clearly structured) + df_valves = df ov valve specific data + name_type: How to name nodes, either "id" or "name". + Returns: + void, but updates parameters["blocks"] to include the vessel_blocks, where + parameters["blocks"] = {block_name : block_object} + """ + name_type = name_type.lower() + vessel_blocks = {} # {block_name : block_object} + vessel_blocks_connecting_block_lists, vessel_blocks_flow_directions, vessel_blocks_names = get_vessel_block_helpers( + d, df_vessels, df_junctions_expanded, df_valves, name_type) + + for vessel_id, block_name in vessel_blocks_names.items(): + connecting_block_list = vessel_blocks_connecting_block_lists[vessel_id] + flow_directions = vessel_blocks_flow_directions[vessel_id] + vessel_blocks[block_name] = ntwku.LPNBlock( + connecting_block_list=connecting_block_list, + name=block_name, + flow_directions=flow_directions + ) + d["blocks"].update(vessel_blocks) + + +def create_outlet_bc_blocks(d, df_valves, name_type): + """ + Purpose: + Create the outlet bc (boundary condition) blocks for the 0d model. + Inputs: + d = dict of parameters + df_valves = df ov valve specific data + name_type: How to name nodes, either "id" or "name". + Returns: + void, but updates parameters["blocks"] to include the outlet_bc_blocks, where + parameters["blocks"] = {block_name : block_object} + """ + def process_boundary_condition(block_name, connecting_block_list, flow_directions): + outlet_bc_blocks[block_name] = ntwku.LPNBlock(connecting_block_list=connecting_block_list, name=block_name, + flow_directions=flow_directions) + + name_type = name_type.lower() + outlet_bc_blocks = {} + outlet_vessels_of_model = dirgraph_steady_bc.get_ids_of_cap_vessels(d, "outlet") + block_to_boundary_condition_map = d["block_to_boundary_condition_map"] + vessel_name_get = get_vessel_id_to_vessel_name_map(d) + + for vessel_id in outlet_vessels_of_model: + block_name = f"BC{vessel_id}_outlet" + connecting_block_list = [vessel_name_get[vessel_id]] if name_type == 'name' else [f"V{vessel_id}"] + flow_directions = [-1] + process_boundary_condition(block_name,connecting_block_list, flow_directions) + + for _, valve in df_valves.iterrows(): + valve_name = valve['name'] + if valve_name not in block_to_boundary_condition_map or 'outlet' not in block_to_boundary_condition_map[ + valve_name]: + continue + block_name = f"BC{valve_name}_outlet" + connecting_block_list = [valve_name] + flow_directions = [-1] + process_boundary_condition(block_name, connecting_block_list, flow_directions) + + d["blocks"].update(outlet_bc_blocks) + +def create_inlet_bc_blocks(d, df_valves, name_type): + """ + Purpose: + Create the inlet bc (boundary condition) blocks for the 0d model. + Inputs: + d = dict of parameters + df_valves = df ov valve specific data + name_type: How to name nodes, either "id" or "name". + Returns: + void, but updates parameters["blocks"] to include the inlet_bc_blocks, where + parameters["blocks"] = {block_name : block_object} + """ + name_type = name_type.lower() + inlet_bc_blocks = {} + inlet_vessels_of_model = dirgraph_steady_bc.get_ids_of_cap_vessels(d, "inlet") + block_to_boundary_condition_map = d["block_to_boundary_condition_map"] + vessel_name_get = get_vessel_id_to_vessel_name_map(d) + + # Process valves + for _, valve in df_valves.iterrows(): + valve_name = valve['name'] + if valve_name not in block_to_boundary_condition_map or 'inlet' not in block_to_boundary_condition_map[ + valve_name]: + continue + block_name = f"BC{valve_name}_inlet" + connecting_block_list = [valve_name] + flow_directions = [+1] + inlet_bc_blocks[block_name] = ntwku.LPNBlock( + connecting_block_list=connecting_block_list, + name=block_name, + flow_directions=flow_directions + ) + + # Process vessels + for vessel_id in inlet_vessels_of_model: + block_name = f"BC{vessel_id}_inlet" + connecting_block_list = [vessel_name_get[vessel_id]] if name_type == 'name' else [f"V{vessel_id}"] + flow_directions = [+1] + location = "inlet" + inlet_bc_blocks[block_name] = ntwku.LPNBlock( + connecting_block_list=connecting_block_list, + name=block_name, + flow_directions=flow_directions + ) + d["blocks"].update(inlet_bc_blocks) + + +# @profile +def run_network_util(zero_d_solver_input_file_path, d, draw_directed_graph, output_dir): + """ + Purpose: + Creates and saves the directed graph. Will open an image if draw_directed_graph is set to true. + Inputs: + string zero_d_solver_input_file_path = path to the 0d solver input file + d = dict of parameters + boolean draw_directed_graph = True to visualize the 0d model as a directed graph using networkx + Returns: + list block_list + = list of blocks (nodes) + list connect_list + = list of connections between blocks (edges) + """ + block_list = list(d["blocks"].values()) + connect_list, wire_dict = dirgraph_connections.connect_blocks_by_inblock_list(block_list) + case_name = zero_d_solver_input_file_path.rsplit('/', 1)[-1] + directed_graph_file_path = os.path.join(output_dir, os.path.splitext(case_name)[0] + "_directed_graph") + save_directed_graph(block_list, connect_list, directed_graph_file_path, draw_directed_graph) + return block_list, connect_list + + +def get_vessel_id_to_length_map(parameters): + """ + Purpose: + Creates a map with key vessel id and value vessel length. + Inputs: + parameters = dict of parameters + Returns: + vessel_id_to_length_map + """ + vessel_id_to_length_map = {} + for vessel in parameters["vessels"]: + vessel_id = vessel["vessel_id"] + vessel_length = vessel["vessel_length"] + vessel_id_to_length_map[vessel_id] = vessel_length + return vessel_id_to_length_map + + +def get_vessel_id_to_vessel_name_map(parameters): + """ + Purpose: + Creates a map with key vessel id and value vessel name. + Inputs: + parameters = dict of parameters + Returns: + vessel_id_to_vessel_name_map + """ + vessel_id_to_vessel_name_map = {} + for vessel in parameters["vessels"]: + vessel_id = vessel["vessel_id"] + vessel_name = vessel["vessel_name"] + vessel_id_to_vessel_name_map[vessel_id] = vessel_name + return vessel_id_to_vessel_name_map + +def get_vessel_name_to_vessel_id_map(parameters): + """ + Purpose: + Creates a map with key vessel name and value vessel id. + Inputs: + parameters = dict of parameters + Returns: + vessel_name_to_vessel_id_map + """ + vessel_name_to_vessel_id_map = {} + for vessel in parameters["vessels"]: + vessel_name = vessel["vessel_name"] + vessel_id = vessel["vessel_id"] + vessel_name_to_vessel_id_map[vessel_name] = vessel_id + return vessel_name_to_vessel_id_map + + +def save_directed_graph(block_list, connect_list, directed_graph_file_path, draw_directed_graph): + """ + Purpose: + Visualize and saves the 0d model as a directed graph + Inputs: + list block_list + = [list of all of the 0d LPNBlock objects] + list connect_list + = [list of (blockA_index, blockB_index)] + where blockA and blockB are connected to each other, and blockA_index and blockB_index are the index locations at which the blockA and blockB objects are stored in block_list + string directed_graph_file_path + = name of the hierarchical graph .png file and networkx .dot file that will be saved + draw_directed_graph (bool): Determines if the directed graph should be displayed. + Returns: + void, but saves a .png file visualizing the 0d model as a directed graph if draw_directed_graph = True, + as well as a networkx .dot file + """ + G = nx.DiGraph() + G.add_edges_from([(block_list[tpl[0]].name, block_list[tpl[1]].name) for tpl in connect_list]) + pos = nx.nx_pydot.pydot_layout(G, + prog='dot') + options = {"alpha": 0.2} + + if draw_directed_graph: + plt.figure(figsize=(20, 11)) + plt.tight_layout() + + # Drawing the graph + nx.draw_networkx_nodes(G, pos, node_color='blue', node_size=300, **options) + nx.draw_networkx_labels(G, pos, font_size=6) + nx.draw_networkx_edges(G, pos, node_size=300) + nx.nx_pydot.write_dot(G, directed_graph_file_path + ".dot") + + # Save and show the graph + plt.savefig(directed_graph_file_path + ".png", format="PNG", dpi=100) + plt.show() + plt.close("all") + else: + # Drawing the graph + nx.nx_pydot.write_dot(G, directed_graph_file_path + ".dot") + +def set_up_0d_network(zero_d_solver_input_file_path: object, output_dir, name_type: object, draw_directed_graph: object = False) -> object: + """ + Purpose: + Create all network_util_NR::LPNBlock objects for the 0d model. + Inputs: + string zero_d_solver_input_file_path + = path to the 0d solver input file + string output_dir = path to save the directed graph dot file + directed graph png. + str name_type + = str specified by either 'name' or 'id' that specifies whether + vessel names or ids should be used for each node + boolean draw_directed_graph + = True to visualize the 0d model as a directed graph using networkx -- saves the graph to a .png file (hierarchical graph layout) and a networkx .dot file; False, otherwise. .dot file can be opened with neato from graphviz to visualize the directed in a different format. + + Returns: + void + """ + d = load_json_input_file(zero_d_solver_input_file_path, name_type) + block_list, connect_list = run_network_util( + zero_d_solver_input_file_path, + d, + draw_directed_graph=draw_directed_graph, output_dir=output_dir + ) \ No newline at end of file diff --git a/applications/svZeroDVisualization/dirgraph_wire.py b/applications/svZeroDVisualization/dirgraph_wire.py new file mode 100644 index 000000000..0689cc803 --- /dev/null +++ b/applications/svZeroDVisualization/dirgraph_wire.py @@ -0,0 +1,80 @@ +# coding=utf-8 + +# Copyright (c) Stanford University, The Regents of the University of +# California, and others. +# +# All Rights Reserved. +# +# See Copyright-SimVascular.txt for additional details. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject +# to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +# OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import numpy as np + +class wire: + """ + Wires connect circuit elements and junctions + They can only posses a single pressure and flow value (system variables) + They can also only possess one element(or junction) at each end + """ + def __init__(self, connecting_elements, name="NoNameWire", P_units='cgs', Q_units='cgs'): + self.name = name + self.type = 'Wire' + if len(connecting_elements) > 2: + raise Exception('Wire cannot connect to more than two elements at a time. Use a junction LPN block') + if not isinstance(connecting_elements, tuple): + raise Exception('Connecting elements to wire should be passed as a 2-tuple') + self.connecting_elements = connecting_elements + + +class LPNBlock: + def __init__(self, connecting_block_list=None, name="NoName", flow_directions=[]): + if connecting_block_list == None: + connecting_block_list = [] + self.connecting_block_list = connecting_block_list + self.num_connections = len(connecting_block_list) + self.name = name + self.n_connect = 2 + self.type = "ArbitraryBlock" + self.num_block_vars = 0 + self.connecting_wires_list = [] + + # -1 : Inflow to block, +1 outflow from block + self.flow_directions = flow_directions + + + def check_block_consistency(self): + if len(connecting_block_list) != self.n_connect: + msg = self.name + " block can be connected only to " + str(self.n_connect) + " elements" + raise Exception(msg) + + def add_connecting_block(self, block, direction): + # Direction = +1 if flow sent to block + # = -1 if flow recvd from block + self.connecting_block_list.append(block) + self.num_connections = len(self.connecting_block_list) + self.flow_directions.append(direction) + + def add_connecting_wire(self, new_wire): + self.connecting_wires_list.append(new_wire) diff --git a/applications/svZeroDVisualization/visualize_simulation.py b/applications/svZeroDVisualization/visualize_simulation.py new file mode 100644 index 000000000..bb61b63fe --- /dev/null +++ b/applications/svZeroDVisualization/visualize_simulation.py @@ -0,0 +1,651 @@ +import sys +import argparse +import pysvzerod +import pandas as pd +import matplotlib.pyplot as plt +import networkx as nx +import json +import dash +from dash import html, dcc +from dash.dependencies import Input, Output, State +import plotly.graph_objects as go +import os +from dirgraph_utils import set_up_0d_network + + +''' +This file enables the visualization of 0D simulation results in a web app that displays the 0D network +as a directed graph. Users can interactively select nodes to view their parameters and simulation results. + +Enter the filepath for your simulation input JSON file and the directory where +you want to save the output directed graph as command line arguments to run the script. +If you want to save the raw svZeroDSolver simulation results, add "export-csv" as the third command line argument. + +''' + +def dirgraph(filepath, output_dir, export_csv): + solver = pysvzerod.Solver(filepath) + solver.run() + results = pd.DataFrame(solver.get_full_result()) + + if export_csv: + results.to_csv('results.csv', sep=',', index=False, encoding='utf-8') + print(f"Results exported to results.csv") + + with open(filepath, 'r') as infile: + parameters = json.load(infile) + + set_up_0d_network( + filepath, + name_type='id', # Options 'name' or 'id' specifies whether vessel names or ids should be used for each node + draw_directed_graph= False, # Enter True if you want to save the directed graph + output_dir= output_dir + ) + base_name = filepath.rsplit('/', 1)[-1] + output_file = os.path.join(output_dir, os.path.splitext(base_name)[0] + "_directed_graph.dot") + G = nx.DiGraph(nx.nx_pydot.read_dot(output_file)) + return results, parameters, G + + +def main(): + parser = argparse.ArgumentParser( + description="Generate a directed graph visualization of your 0d network from the JSON input file." + ) + + # Positional arguments + parser.add_argument( + 'filepath', + type=str, + help="Path to the svZeroDSolver input JSON file." + ) + + parser.add_argument( + 'output_dir', + type=str, + help="Directory to store the visualization results." + ) + + # Optional argument + parser.add_argument( + '--export_csv', + action='store_true', + help="If specified, export the results as CSV files." + ) + + # Parse the arguments + args = parser.parse_args() + + # Call the dirgraph function with the provided arguments + return dirgraph(args.filepath, args.output_dir, args.export_csv) + +if __name__ == '__main__': + results, parameters, G = main() + +# Mapping vessel names to IDs. The block parameters are obtained from the user's input json file. +vessel_name_to_vessel_id_map = {} +vessel_id_to_vessel_name_map = {} +vessel_params = {} +for vessel in parameters["vessels"]: + vessel_name = vessel["vessel_name"] + vessel_id = "V" + str(vessel["vessel_id"]) + vessel_name_to_vessel_id_map[vessel_name] = vessel_id + vessel_id_to_vessel_name_map[vessel_id] = vessel_name + + inlet = None + outlet = None + if 'boundary_conditions' in vessel: + if 'inlet' in vessel['boundary_conditions']: + inlet = vessel['boundary_conditions']['inlet'] + if 'outlet' in vessel['boundary_conditions']: + outlet = vessel['boundary_conditions']['outlet'] + + vessel_length = vessel["vessel_length"] + zero_d_element_values = vessel["zero_d_element_values"] + vessel_params[vessel_id] = {'vessel_length': vessel_length, + "zero_d_element_values": zero_d_element_values, 'inlet': inlet, 'outlet': outlet} + +junction_info = {} +if 'junctions' in parameters: + for junction in parameters['junctions']: + junction_info[junction['junction_name']] = junction['junction_type'] + +valve_info = {} +if 'valves' in parameters: + for valve in parameters['valves']: + valve_info[valve['name']] = valve['params'] + +chamber_info = {} +if 'chambers' in parameters: + for chamber in parameters['chambers']: + chamber_info[chamber['name']] = chamber['values'] + +bc_info = {} +if 'boundary_conditions' in parameters: + for bc in parameters['boundary_conditions']: + bc_info[bc['bc_name']] = bc['bc_type'] + + +pos = nx.nx_pydot.pydot_layout(G, prog='dot') + +# Prepare Plotly graph using temporary lists +edge_x = [] +edge_y = [] +for edge in G.edges(): + x0, y0 = pos[edge[0]] + x1, y1 = pos[edge[1]] + edge_x.extend([x0, x1, None]) + edge_y.extend([y0, y1, None]) + +# Now create the go.Scatter object +edge_trace = go.Scatter( + x=edge_x, + y=edge_y, + line=dict(width=0.5, color='#888'), + hoverinfo='none', + mode='lines') + +# Prepare node data +vessel_x = [] +vessel_y = [] +vessel_text = [] +junction_x = [] +junction_y = [] +junction_text = [] +bc_x = [] +bc_y = [] +bc_text = [] +chamber_x = [] +chamber_y = [] +chamber_text = [] +valve_x = [] +valve_y = [] +valve_text = [] + + +bc_nodename_to_realname = {} +bc_realname_to_nodename = {} +for node in G.nodes(): + x, y = pos[node] + if node.startswith('valve'): + valve_x.append(x) + valve_y.append(y) + valve_text.append(node) + elif node.startswith('V'): + vessel_x.append(x) + vessel_y.append(y) + vessel_text.append(node) + elif node.startswith('J'): + junction_x.append(x) + junction_y.append(y) + junction_text.append(node) + elif node.startswith('BC'): + bc_x.append(x) + bc_y.append(y) + # bc_text.append(node) #This will add BC14_outlet etc that structure + bc_id = node.split('BC')[1].split('_')[0] + location = node.split('_')[1] + if bc_id.isdigit(): # it's a boundary condition to a vessel + # node_parent = vessel_id_to_vessel_name_map["V" + bc_id] + node_parent = "V" + str(bc_id) + real_node_name = vessel_params[node_parent][location] + else: # it's a boundary condition to a valve + if location == 'inlet': + location = 'upstream_block' + else: + location = 'downstream_block' + real_node_name = valve_info[bc_id][location] + bc_nodename_to_realname[node] = real_node_name + bc_realname_to_nodename[real_node_name] = node + bc_text.append(real_node_name) + else: + chamber_x.append(x) + chamber_y.append(y) + chamber_text.append(node) + + +# Function to normalize names +def normalize_names(name): + if name in vessel_name_to_vessel_id_map: + return vessel_name_to_vessel_id_map[name] + elif any(bc['bc_name'] == name for bc in parameters['boundary_conditions']): + return bc_realname_to_nodename[name] + return name + +if "pressure_in" in results.columns: + # Apply normalization to the entire 'name' column efficiently + results['name'] = results['name'].apply(normalize_names) + grouped_data = results.groupby('name') + +else: + # Split the name column into data_type, structure, and position + results[['data_type', 'structure', 'position']] = results['name'].str.split(':', expand=True) + + # Initialize a list to hold structured data + structured_data_list = [] + + # Group by structure (vessel) + for (struct, time), group in results.groupby(['structure', 'time']): + # Create a dictionary to store the values for each vessel + struct_data = { + 'name': struct, + 'time': time, + 'pressure_in': None, + 'pressure_out': None, + 'flow_in': None, + 'flow_out': None, + } + + # Assign values to the appropriate columns based on type and position + for _, row in group.iterrows(): + if row['data_type'] == 'pressure': + if row['position'] == 'INLET': + struct_data['pressure_in'] = row['y'] + else: + struct_data['pressure_out'] = row['y'] + elif row['data_type'] == 'flow': + if row['position'] == 'INLET': + struct_data['flow_in'] = row['y'] + else: + struct_data['flow_out'] = row['y'] + else: + struct_data[row['data_type']] = row['y'] + + # Append the structured data to the list + structured_data_list.append(struct_data) + + # Convert the list to a DataFrame + df = pd.DataFrame(structured_data_list) + df['name'] = df['name'].apply(normalize_names) + grouped_data = df.groupby('name') + +valve_trace = go.Scatter ( + name = 'Valve', + x=valve_x, + y=valve_y, + text= valve_text, + textposition='top center', + mode='markers+text', + hoverinfo='text', + marker=dict( + symbol='circle', + size=10, + color='purple', + line_width=2 + ) +) + +chamber_trace = go.Scatter ( + name = 'Chamber', + x=chamber_x, + y= chamber_y, + text= chamber_text, + textposition='top center', + mode='markers+text', + hoverinfo='text', + marker=dict( + symbol='circle', + size=10, + color='orange', + line_width=2 + ) +) + +bc_trace = go.Scatter( + name = 'Boundary Condition', + x=bc_x, + y=bc_y, + text=bc_text, + textposition='top center', + mode='markers+text', + hoverinfo='text', + marker=dict( + symbol='circle', + size=10, + color='green', + line_width=2 + ) +) + +vessel_trace = go.Scatter( + name = 'Vessel', + x=vessel_x, + y=vessel_y, + text=vessel_text, + textposition='top center', + mode='markers+text', + hoverinfo='text', + marker=dict( + symbol='circle', + size=10, + color='blue', + line_width=2 + ) +) + +junction_trace = go.Scatter( + name = 'Junction', + x=junction_x, + y=junction_y, + text=junction_text, + textposition='top center', + mode='markers+text', + hoverinfo='text', + marker=dict( + symbol='circle', + size=10, + color='red', + line_width=2 + ) +) + + +# Initialize Dash app +app = dash.Dash(__name__) + +# Define the layout +app.layout = html.Div([ + # Button to open the modal + html.Button('Instructions', id='open-modal-button', style = { 'width': '90px', + 'height': '30px'}, n_clicks=0), + + # Modal div + html.Div([ # modal div + html.Div([ # content div + html.Div([ + 'This platform allows you to visualize and analyze SimVascular’s ZeroD Solver results. When you click a node, available pressure and flow data will be displayed alongside the simulation parameters for that given node.', + ]), + html.Hr(), + html.Button('Close', id='modal-close-button', n_clicks=0) + ], + style={ + 'textAlign': 'center', + 'margin': '90px', + 'padding': '30px', + 'backgroundColor': 'white' + }, + className='modal-content', + ), + ], + id='modal', + className='modal', + style={ + 'display': 'none', # Initially hidden + 'position': 'fixed', + 'zIndex': 1002, + 'left': '0', + 'top': '0', + 'width': '100%', + 'height': '100%', + 'backgroundColor': 'rgba(0, 0, 0, 0.6)' + } + ), + + dcc.Graph( + id='network-graph', + figure={ + 'data': [edge_trace, vessel_trace, chamber_trace, valve_trace, junction_trace, bc_trace], + 'layout': go.Layout( + title='Network Graph', + titlefont_size=30, + title_x=0.5, + showlegend=True, + hovermode='closest', + margin=dict(b=20, l=0, r=0, t=50), + autosize=True, + # width=1600, # Set the width of the plot + # height=950, + xaxis=dict(showgrid=False, zeroline=False, showticklabels=False), + yaxis=dict(showgrid=False, zeroline=False, showticklabels=False) + + ) + } + , + style={'width': '100%', 'height': '100%'} # 100% width and 100% viewport height + ), + html.H1(id='joint-title', style = {'textAlign': 'center'}, children="Click on a node to see data"), + html.Div(id='simulation_info', style={ + 'backgroundColor': '#e5ecf6', + 'whiteSpace': 'pre-line', + 'width': '90%', + 'margin': '0 auto', + 'fontSize': '20px', + 'textAlign': 'center' + }), + html.Div(id='charts-container', style={'display': 'flex', 'flexDirection': 'column'}) +], style={'marginLeft': 'auto', 'marginRight': 'auto'}) + + + +# Callback to toggle modal visibility +@app.callback( + Output('modal', 'style'), + [Input('open-modal-button', 'n_clicks'), + Input('modal-close-button', 'n_clicks')], + [State('modal', 'style')] +) +def toggle_modal(open_clicks, close_clicks, current_style): + if open_clicks > close_clicks: + return { + 'display': 'block', + 'position': 'fixed', + 'zIndex': 1002, + 'left': '0', + 'top': '0', + 'width': '100%', + 'height': '100%', + 'backgroundColor': 'rgba(0, 0, 0, 0.6)' + } + return { + 'display': 'none', + 'position': 'fixed', + 'zIndex': 1002, + 'left': '0', + 'top': '0', + 'width': '100%', + 'height': '100%', + 'backgroundColor': 'rgba(0, 0, 0, 0.6)' + } + +@app.callback( + [ + Output('joint-title', 'children'), + Output('simulation_info', 'children'), + Output('charts-container', 'children'), + Output('network-graph', 'figure') + ], + [Input('network-graph', 'clickData')] +) + +# This adds a box around the node that the user selected +def update_graphs(clickData): + # Initialize empty figures to handle cases with no data or no node clicks + empty_fig = go.Figure(layout=go.Layout(title="Click on a node to see data")) + info_text = '' + + # if clickData: + fig = go.Figure( + data=[edge_trace, vessel_trace, chamber_trace, valve_trace, junction_trace, bc_trace], + layout=go.Layout( + title='Network Graph', + titlefont_size=30, + title_x=0.5, + showlegend=True, + hovermode='closest', + margin=dict(b=20, l=0, r=0, t=50), + autosize=True, + width=1700, + height=800, + # width=1600, + # height=950, + xaxis=dict(showgrid=False, zeroline=False, showticklabels=False), + yaxis=dict(showgrid=False, zeroline=False, showticklabels=False), + shapes=[], + paper_bgcolor='white', # Set the paper background color to white + plot_bgcolor='white' + ) + ) + + if clickData and 'points' in clickData and len(clickData['points']) > 0: + point = clickData['points'][0] + x_selected = point['x'] + y_selected = point['y'] + + annotation = { + 'xref': 'x', + 'yref': 'y', + 'x': x_selected, + 'y': y_selected, + 'showarrow': False, + 'text': '', + 'font': {'color': 'RoyalBlue'}, + 'align': 'center', + 'bordercolor': 'RoyalBlue', + 'borderwidth': 2, + 'borderpad': 4, + 'bgcolor': 'rgba(0,0,0,0)', + 'opacity': 0.8, + 'width': 10, + 'height': 10 + } + fig.add_annotation(annotation) + + node_name = clickData['points'][0]['text'] + node_real_name = node_name + + if node_name.startswith('J'): + if junction_info[node_name] == "NORMAL_JUNCTION": + junction_type = "Normal Junction" + else: + junction_type = "Blood Vessel Junction" + + info_text = [html.B("Junction information", style={'fontSize': '22px', "text-decoration": "underline"}), html.Br(), + html.B("Junction ID: "), f"{node_name}", html.Br(), + html.B("Junction Type: "), f"{junction_type}", html.Br()] + return f"Data for {node_name}", info_text, [dcc.Graph(figure=empty_fig, style={'flex': '1'})], fig + + if node_name.startswith('BC') and node_name not in grouped_data.groups: + real_node_name = bc_nodename_to_realname[node_name] + info_text = [ + html.B("Boundary Condition: "), f"{real_node_name.capitalize()}, ", html.Br(), + html.B("Boundary Condition Type: "), f"{bc_info[real_node_name].capitalize()}", html.Br() + ] + return f"No simulation data for {node_name}", info_text, [dcc.Graph(figure=empty_fig, style={'flex': '1'})], fig + + if node_name in grouped_data.groups: + if node_name.startswith('V'): + node_real_name = vessel_id_to_vessel_name_map[node_name] + vessel_info = vessel_params[node_name] + zero_d_values = vessel_info['zero_d_element_values'] + + info_text = [ + html.B("Vessel information", style={'fontSize': '22px', "text-decoration": "underline"}), html.Br(), + html.B("Vessel ID: "), f"{node_name}", html.Br(), + html.B("Vessel Length: "), f"{vessel_info['vessel_length']}", html.Br(), + "\n", + html.B("Zero D Element Values", style = {'fontSize': '22px', "text-decoration": "underline"} ), html.Br(), + ] + if 'C' in zero_d_values: + info_text.extend([html.B("C: "), f"{zero_d_values['C']}, ", html.Br()]) + if 'L' in zero_d_values: + info_text.extend([html.B("L: "), f"{zero_d_values['L']}, ", html.Br()]) + if 'R_poiseuille' in zero_d_values: + info_text.extend([html.B("R poiseuille: "), f"{zero_d_values['R_poiseuille']}, ", html.Br()]) + if 'stenosis_coefficient' in zero_d_values: + info_text.extend([html.B("Stenosis Coefficient: "), f"{zero_d_values['stenosis_coefficient']}"]) + + # Add valve information + elif node_name.startswith('valve'): + valve_params = valve_info[node_name] + info_text = [ + html.B("Valve information", style={'fontSize': '22px', "text-decoration": "underline"}), html.Br(), + html.B("Valve ID: "), f"{node_name}", html.Br(), + "\n", + html.B("Valve Paramaters", style={'fontSize': '22px', "text-decoration": "underline"}), + html.Br(), + html.B("Rmax: "), f"{valve_params['Rmax']}, ", html.Br(), + html.B("Rmin: "), f"{valve_params['Rmin']}, ", html.Br(), + html.B("Steepness: "), f"{valve_params['Steepness']}, ", html.Br(), + html.B("Upstream Block: "), f"{valve_params['upstream_block'].capitalize()}, ", html.Br(), + html.B("Downstream Block: "), f"{valve_params['downstream_block'].capitalize()}", html.Br() + ] + elif node_name.startswith('BC'): + real_node_name = bc_nodename_to_realname[node_name] + info_text = [ + html.B("Boundary Condition: "), f"{real_node_name.capitalize()}, ", html.Br(), + html.B("Boundary Condition Type: "), f"{bc_info[real_node_name].capitalize()}", html.Br() + ] + + # elif not node_name.startswith('BC'): + else: + chamber_params = chamber_info[node_name] + info_text = [ + html.B("Chamber information", style={'fontSize': '22px', "text-decoration": "underline"}), html.Br(), + html.B("Chamber Name: "), f"{node_name.capitalize()}", html.Br(), + "\n", + html.B("Chamber Paramaters", style={'fontSize': '22px', "text-decoration": "underline"}), + html.Br(), + html.B("Emax: "), f"{chamber_params['Emax']}, ", html.Br(), + html.B("Emin: "), f"{chamber_params['Emin']}, ", html.Br(), + html.B("Vrd: "), f"{chamber_params['Vrd']}, ", html.Br(), + html.B("Vrs: "), f"{chamber_params['Vrs']}, ", html.Br(), + html.B("t_active: "), f"{chamber_params['t_active']}, ", html.Br(), + html.B("t_twitch: "), f"{chamber_params['t_twitch']}, ", html.Br(), + html.B("Impedance: "), f"{chamber_params['Impedance']}", html.Br(), + ] + + group = grouped_data.get_group(node_name) + + structured_data = {} + charts = [] + + # Iterate over columns to handle data directly based on column names + for column in group.columns: + if column not in ['name', 'time']: # Exclude non-data columns + # Collect all values in the column for plotting + structured_data[column] = group[column].values + + # Generate plots for each data key found + + for data_key, data_values in structured_data.items(): + if pd.isnull(data_values).all(): + continue + data_fig = go.Figure() + normalized_key = data_key.replace('_', ' ').title() + title = normalized_key + " for " + node_name.capitalize() + + data_fig.add_trace(go.Scatter( + x=group['time'], # Assuming 'time' is your x-axis data + y=data_values, + mode='lines+markers', + name=title # Beautify the legend name + )) + # Configure plot layout + if data_key == 'pressure_in' or data_key == 'pressure_out': + units = 'Pressure [dynes/cm^2]' + elif data_key == 'flow_in' or data_key == 'flow_out': + units = 'Flow [mL/s]' + else: + units = '' + + data_fig.update_layout( + title={ + 'text': f"{title}", + 'x': 0.5, + 'xanchor': 'center', + 'yanchor': 'top', + 'font': {'size': 20, 'color': 'black', 'weight': 'bold'} + }, + title_x=0.5, + xaxis=dict(title='Time'), + yaxis=dict(title=f'{units}') + ) + # Add plot to charts list + charts.append(dcc.Graph(figure=data_fig, style={'flex': '1'})) + + joint_title = f'Data for {node_real_name}' + return joint_title, info_text, charts, fig + return f"No data for this node. Please select another", info_text, [dcc.Graph(figure=empty_fig, style={'flex': '1'})], fig + + +if __name__ == '__main__': + app.run_server(debug=True) \ No newline at end of file diff --git a/docs/pages/developer_guide.md b/docs/pages/developer_guide.md index 204f6ebe7..230f5341e 100644 --- a/docs/pages/developer_guide.md +++ b/docs/pages/developer_guide.md @@ -54,6 +54,8 @@ The modular architecture of svZeroDSolver relies on "blocks", such as blood vess Detailed steps required to implement a new block in svZeroDSolver are available [here](@ref add_block). +Steps required to visualize a new block with svZeroDSolver Visualization application are available [here](@ref visualization)." + # Code Style We follow the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html). diff --git a/docs/pages/main.md b/docs/pages/main.md index bbf71fbcc..295e5960e 100644 --- a/docs/pages/main.md +++ b/docs/pages/main.md @@ -18,6 +18,9 @@ quantification, etc. blood vessel parameters to recapitulate given time-varying flow and pressure measurements (for example, from a high-fidelity 3D simulation). This allows users to build accurate 0D models that reflect observed hemodynamics. +* The svZeroDVisualization application enables users to visualize their 0D network and interactively select nodes to view simulation results. +* The svZeroDGUI application allows users to generate input files for svZeroDSolver by drawing the network on an easy-to-use GUI. This provides an alternative to manually creating files and is useful for users without access to a 3D model. + Zero-dimensional (0D) models are lightweight methods to simulate bulk hemodynamic quantities in the diff --git a/docs/pages/visualization.md b/docs/pages/visualization.md new file mode 100644 index 000000000..786270cc2 --- /dev/null +++ b/docs/pages/visualization.md @@ -0,0 +1,87 @@ +@page visualization Visualization Guide + +[TOC] + +# About + +svZeroDVisualization is a web application designed for visualizing 0D simulation results and the 0D network. It allows users to interactively explore and analyze their simulation data through an intuitive interface. +This application is available in the `applications` folder. + + +# Architecture +svZeroDVisualization is built using a robust architecture that includes: +- Frontend: Utilizes HTML, CSS, Dash, and Plotly for creating a dynamic and interactive user interface. This setup allows for effective visualization and interaction with the 0D network and simulation results. +- Backend: Powered by a Flask application that handles the server-side logic. It leverages NetworkX for managing and visualizing the network graph and a Python code to determine network connections. + +# Installing Dependencies +1. We recommend using a virtual environment to help manage project-specific +dependencies and avoid conflicts with other projects. +- Using venv: +```bash +python -m venv venv +source venv/bin/activate # On Windows use `venv\Scripts\activate` +``` +- Using Conda: +```bash +conda create --name myenv python=3.12 # Replace with your desired Python version +conda activate myenv +``` + +2. Install the necessary packages: +```bash +pysvzerod +pandas +matplotlib +networkx +dash +plotly +numpy +argparse +``` + + +# How to Use +Note: Files related to this application are in the `applications`folder, within the `dirgraph_visualization` subdirectory. + + +1. Command Line Execution: Pass the filepath to your input JSON file and the output_directory where you want the visualization to be saved as command line arguments. +Pass a third argument `export_csv` optionally if you want to save svZeroDSolver raw output. + - The program will execute svZeroDSolver, generate a directed graph visualization of your network, parse simulation results, + and display the results along with the corresponding nodes on a local Flask server. + +```bash +python applications/svZeroDVisualization/visualize_simulation.py 'tests/cases/chamber_elastance_inductor.json' './output/circuit_img/dir_graph' +``` + +2. Once the server is open, you can click on a node to inspect further. +The data for that node will be displayed, including the simulation parameters input for that node, pressure/flow data, and any internal variables if present. + - Additional features include the ability to download figures and use the trace function + for more detailed inspection of network elements. The trace feature allows users to filter the + view by specific element types, such as isolating and examining only the blood vessels or + identifying the locations of the chambers within the network. This functionality enhances the + ability to focus on and analyze particular components of the network with precision. + + +# How to Visualize a New Block +1. **Update JSON Parsing**: + - When parsing the JSON file, ensure that the new block type is included. + - Update the `load_json_input_file` function to create a new pandas DataFrame for the new block type. + +2. **Create a New Function for the Block Type**: + - Develop a function that processes the new block type. This function should take in: + - `d` (the dictionary of parameters loaded from the JSON file) + - Any relevant DataFrames (e.g., `df_vessels`, `junctions_expanded`) + - Within this function: + - Initialize a dictionary to hold all blocks of the new type. + - Iterate through potential connectors for the new block type. + - For each connector, update the `connecting_block_list` and determine the `flow_directions` (use +1 for downstream and -1 for upstream). + +3. **Update the Parameter Dictionary**: + - Add the newly created blocks to the `d["blocks"]` dictionary. + +4. **Update Existing Functions**: +- Ensure that the new block type is integrated into the existing block structure, allowing it to interact with other components in the visualization. +- For instance, if the new block type can be connected to vessels, make sure to update functions like `create_vessel_blocks` to handle connections involving the new block type. +This includes updating any relevant functions that create or manage connections between blocks. + +By following these steps, you will ensure that the new block type is properly parsed, processed, and integrated into the visualization system. diff --git a/tests/cases/dirgraph-results/chamber_elastance_inductor_directed_graph.dot b/tests/cases/dirgraph-results/chamber_elastance_inductor_directed_graph.dot new file mode 100644 index 000000000..b42811e69 --- /dev/null +++ b/tests/cases/dirgraph-results/chamber_elastance_inductor_directed_graph.dot @@ -0,0 +1,13 @@ +strict digraph { +valve0; +ventricle; +valve1; +V0; +BCvalve0_inlet; +BC0_outlet; +valve0 -> ventricle; +ventricle -> valve1; +valve1 -> V0; +V0 -> BC0_outlet; +BCvalve0_inlet -> valve0; +} diff --git a/tests/cases/dirgraph-results/closedLoopHeart_singleVessel_directed_graph.dot b/tests/cases/dirgraph-results/closedLoopHeart_singleVessel_directed_graph.dot new file mode 100644 index 000000000..d93409d99 --- /dev/null +++ b/tests/cases/dirgraph-results/closedLoopHeart_singleVessel_directed_graph.dot @@ -0,0 +1,5 @@ +strict digraph { +V0; +BC0_outlet; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/closedLoopHeart_withCoronaries_directed_graph.dot b/tests/cases/dirgraph-results/closedLoopHeart_withCoronaries_directed_graph.dot new file mode 100644 index 000000000..9b335add4 --- /dev/null +++ b/tests/cases/dirgraph-results/closedLoopHeart_withCoronaries_directed_graph.dot @@ -0,0 +1,17 @@ +strict digraph { +V0; +BC0_outlet; +V1; +V2; +V3; +BC1_outlet; +BC2_outlet; +BC3_outlet; +V0 -> BC0_outlet; +V0 -> V1; +V0 -> V2; +V0 -> V3; +V1 -> BC1_outlet; +V2 -> BC2_outlet; +V3 -> BC3_outlet; +} diff --git a/tests/cases/dirgraph-results/pulsatileFlow_CStenosis_steadyPressure_directed_graph.dot b/tests/cases/dirgraph-results/pulsatileFlow_CStenosis_steadyPressure_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/pulsatileFlow_CStenosis_steadyPressure_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_derivative_directed_graph.dot b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_derivative_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_derivative_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_derivative_variable_directed_graph.dot b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_derivative_variable_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_derivative_variable_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_directed_graph.dot b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_derivative_directed_graph.dot b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_derivative_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_derivative_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_derivative_variable_directed_graph.dot b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_derivative_variable_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_derivative_variable_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_directed_graph.dot b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_variable_directed_graph.dot b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_variable_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_mean_variable_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_variable_directed_graph.dot b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_variable_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/pulsatileFlow_R_RCR_variable_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/pulsatileFlow_R_coronary_cycle_error_directed_graph.dot b/tests/cases/dirgraph-results/pulsatileFlow_R_coronary_cycle_error_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/pulsatileFlow_R_coronary_cycle_error_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/pulsatileFlow_R_coronary_directed_graph.dot b/tests/cases/dirgraph-results/pulsatileFlow_R_coronary_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/pulsatileFlow_R_coronary_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/pulsatileFlow_bifurcationR_RCR_cycle_error_directed_graph.dot b/tests/cases/dirgraph-results/pulsatileFlow_bifurcationR_RCR_cycle_error_directed_graph.dot new file mode 100644 index 000000000..763959433 --- /dev/null +++ b/tests/cases/dirgraph-results/pulsatileFlow_bifurcationR_RCR_cycle_error_directed_graph.dot @@ -0,0 +1,15 @@ +strict digraph { +J0; +V1; +V2; +BC0_inlet; +V0; +BC1_outlet; +BC2_outlet; +J0 -> V1; +J0 -> V2; +V1 -> BC1_outlet; +V2 -> BC2_outlet; +BC0_inlet -> V0; +V0 -> J0; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_RC_R_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_RC_R_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_RC_R_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_RLC_R_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_RLC_R_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_RLC_R_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_RL_R_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_RL_R_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_RL_R_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_R_RCR_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_R_RCR_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_R_RCR_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_R_R_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_R_R_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_R_R_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_R_coronary_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_R_coronary_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_R_coronary_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_R_steadyPressure_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_R_steadyPressure_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_R_steadyPressure_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_bifurcationR_R1_blockNames_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_bifurcationR_R1_blockNames_directed_graph.dot new file mode 100644 index 000000000..763959433 --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_bifurcationR_R1_blockNames_directed_graph.dot @@ -0,0 +1,15 @@ +strict digraph { +J0; +V1; +V2; +BC0_inlet; +V0; +BC1_outlet; +BC2_outlet; +J0 -> V1; +J0 -> V2; +V1 -> BC1_outlet; +V2 -> BC2_outlet; +BC0_inlet -> V0; +V0 -> J0; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_bifurcationR_R1_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_bifurcationR_R1_directed_graph.dot new file mode 100644 index 000000000..763959433 --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_bifurcationR_R1_directed_graph.dot @@ -0,0 +1,15 @@ +strict digraph { +J0; +V1; +V2; +BC0_inlet; +V0; +BC1_outlet; +BC2_outlet; +J0 -> V1; +J0 -> V2; +V1 -> BC1_outlet; +V2 -> BC2_outlet; +BC0_inlet -> V0; +V0 -> J0; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_bifurcationR_R2_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_bifurcationR_R2_directed_graph.dot new file mode 100644 index 000000000..763959433 --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_bifurcationR_R2_directed_graph.dot @@ -0,0 +1,15 @@ +strict digraph { +J0; +V1; +V2; +BC0_inlet; +V0; +BC1_outlet; +BC2_outlet; +J0 -> V1; +J0 -> V2; +V1 -> BC1_outlet; +V2 -> BC2_outlet; +BC0_inlet -> V0; +V0 -> J0; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_blood_vessel_junction_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_blood_vessel_junction_directed_graph.dot new file mode 100644 index 000000000..763959433 --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_blood_vessel_junction_directed_graph.dot @@ -0,0 +1,15 @@ +strict digraph { +J0; +V1; +V2; +BC0_inlet; +V0; +BC1_outlet; +BC2_outlet; +J0 -> V1; +J0 -> V2; +V1 -> BC1_outlet; +V2 -> BC2_outlet; +BC0_inlet -> V0; +V0 -> J0; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_calibration_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_calibration_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_calibration_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_confluenceR_R_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_confluenceR_R_directed_graph.dot new file mode 100644 index 000000000..97e26078e --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_confluenceR_R_directed_graph.dot @@ -0,0 +1,15 @@ +strict digraph { +J0; +V2; +BC0_inlet; +V0; +BC1_inlet; +V1; +BC2_outlet; +J0 -> V2; +V2 -> BC2_outlet; +BC0_inlet -> V0; +V0 -> J0; +BC1_inlet -> V1; +V1 -> J0; +} diff --git a/tests/cases/dirgraph-results/steadyFlow_stenosis_R_directed_graph.dot b/tests/cases/dirgraph-results/steadyFlow_stenosis_R_directed_graph.dot new file mode 100644 index 000000000..93378161d --- /dev/null +++ b/tests/cases/dirgraph-results/steadyFlow_stenosis_R_directed_graph.dot @@ -0,0 +1,7 @@ +strict digraph { +BC0_inlet; +V0; +BC0_outlet; +BC0_inlet -> V0; +V0 -> BC0_outlet; +} diff --git a/tests/cases/dirgraph-results/valve_tanh_directed_graph.dot b/tests/cases/dirgraph-results/valve_tanh_directed_graph.dot new file mode 100644 index 000000000..512c799d3 --- /dev/null +++ b/tests/cases/dirgraph-results/valve_tanh_directed_graph.dot @@ -0,0 +1,11 @@ +strict digraph { +valve; +V1; +BC0_inlet; +V0; +BC1_outlet; +valve -> V1; +V1 -> BC1_outlet; +BC0_inlet -> V0; +V0 -> valve; +} diff --git a/tests/requirements.txt b/tests/requirements.txt new file mode 100644 index 000000000..0cf92e82b --- /dev/null +++ b/tests/requirements.txt @@ -0,0 +1,10 @@ +# Requirements for running test_dirgraph pytest + +pytest +pydot +numpy +pandas +tqdm +matplotlib +networkx +profilehooks \ No newline at end of file diff --git a/tests/test_dirgraph.py b/tests/test_dirgraph.py new file mode 100644 index 000000000..2871f91b9 --- /dev/null +++ b/tests/test_dirgraph.py @@ -0,0 +1,61 @@ +import pytest +import filecmp +import os +import sys + +# Append the 'applications/dirgraph' directory to the system path for imports +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../applications/svZeroDVisualization'))) + +# Import the function from applications/dirgraph +from dirgraph_utils import set_up_0d_network + + +cases_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'cases')) +results_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'cases/dirgraph-results')) + + +# List of files to exclude +excluded_files = [ + 'closedLoopHeart_singleVessel.json', + 'closedLoopHeart_withCoronaries.json', + 'coupledBlock_closedLoopHeart_singleVessel.json', + 'coupledBlock_closedLoopHeart_withCoronaries.json' +] + +# Generate the list of JSON files to test +json_files = [ + filename for filename in os.listdir(cases_dir) + if filename.endswith('.json') and filename not in excluded_files +] + +@pytest.fixture +def setup_files(tmp_path, filename): + # Setup input file path + input_file = os.path.join(cases_dir, filename) + expected_output_file = results_dir + '/' + os.path.splitext(filename)[0] + "_directed_graph.dot" + return input_file, expected_output_file, tmp_path + + +def run_program(zero_d_solver_input_file_path, tmp_path): + set_up_0d_network( + zero_d_solver_input_file_path, + name_type='id', + draw_directed_graph=False, + output_dir = tmp_path + ) + + +@pytest.mark.parametrize("filename", json_files) +def test_directed_graph_generation(setup_files): + input_file_path, expected_dot_file_path, tmp_path = setup_files + + # Run your program with the input file + run_program(input_file_path, tmp_path) + + generated_dot_file_path = tmp_path / (os.path.splitext(os.path.basename(input_file_path))[0] + "_directed_graph.dot") + + assert filecmp.cmp(generated_dot_file_path, expected_dot_file_path), \ + f"The generated dot file '{generated_dot_file_path}' does not match the expected dot file '{expected_dot_file_path}'." + +if __name__ == "__main__": + pytest.main() \ No newline at end of file From e22cac8eb69e334796affe46b50144be560f7980 Mon Sep 17 00:00:00 2001 From: emilinmathew <139182080+emilinmathew@users.noreply.github.com> Date: Wed, 4 Sep 2024 10:37:31 -0700 Subject: [PATCH 04/10] svZeroDGUI Tool (#122) Co-authored-by: Karthik Menon <40070586+menon-karthik@users.noreply.github.com> --- .github/workflows/gui.yml | 49 + .github/workflows/test.yml | 3 + applications/svZeroDGUI/app.py | 22 + applications/svZeroDGUI/static/css/RCR.png | Bin 0 -> 44303 bytes .../svZeroDGUI/static/css/chamber.png | Bin 0 -> 313663 bytes .../svZeroDGUI/static/css/coronary.png | Bin 0 -> 38012 bytes applications/svZeroDGUI/static/css/flow.png | Bin 0 -> 30656 bytes .../svZeroDGUI/static/css/junction.png | Bin 0 -> 38539 bytes .../svZeroDGUI/static/css/pressure.png | Bin 0 -> 9253 bytes .../svZeroDGUI/static/css/resistance.png | Bin 0 -> 11781 bytes applications/svZeroDGUI/static/css/style.css | 266 +++ applications/svZeroDGUI/static/css/valve.png | Bin 0 -> 289242 bytes applications/svZeroDGUI/static/css/vessel.png | Bin 0 -> 230976 bytes applications/svZeroDGUI/static/index.html | 164 ++ applications/svZeroDGUI/static/js/app.js | 775 +++++++ .../static/js/cytoscape-edgehandles.js | 1171 ++++++++++ .../svZeroDGUI/static/js/cytoscape.min.js | 32 + cypress/downloads/graph_data.json | 71 + docs/pages/GUI.md | 50 + tests/cypress/cypress.config.js | 25 + tests/cypress/e2e/node_creation.cy.js | 355 +++ tests/cypress/package-lock.json | 1967 +++++++++++++++++ tests/cypress/package.json | 185 ++ 23 files changed, 5135 insertions(+) create mode 100644 .github/workflows/gui.yml create mode 100644 applications/svZeroDGUI/app.py create mode 100644 applications/svZeroDGUI/static/css/RCR.png create mode 100644 applications/svZeroDGUI/static/css/chamber.png create mode 100644 applications/svZeroDGUI/static/css/coronary.png create mode 100644 applications/svZeroDGUI/static/css/flow.png create mode 100644 applications/svZeroDGUI/static/css/junction.png create mode 100644 applications/svZeroDGUI/static/css/pressure.png create mode 100644 applications/svZeroDGUI/static/css/resistance.png create mode 100644 applications/svZeroDGUI/static/css/style.css create mode 100644 applications/svZeroDGUI/static/css/valve.png create mode 100644 applications/svZeroDGUI/static/css/vessel.png create mode 100644 applications/svZeroDGUI/static/index.html create mode 100644 applications/svZeroDGUI/static/js/app.js create mode 100644 applications/svZeroDGUI/static/js/cytoscape-edgehandles.js create mode 100644 applications/svZeroDGUI/static/js/cytoscape.min.js create mode 100644 cypress/downloads/graph_data.json create mode 100644 docs/pages/GUI.md create mode 100644 tests/cypress/cypress.config.js create mode 100644 tests/cypress/e2e/node_creation.cy.js create mode 100644 tests/cypress/package-lock.json create mode 100644 tests/cypress/package.json diff --git a/.github/workflows/gui.yml b/.github/workflows/gui.yml new file mode 100644 index 000000000..064ba1d18 --- /dev/null +++ b/.github/workflows/gui.yml @@ -0,0 +1,49 @@ +# This workflow uses Cypress for end-to-end testing of the 0D model GUI. + +name: GUI-tests + +on: [push, pull_request] + +jobs: + cypress-run: + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + fail-fast: false + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '20' + + - name: Install dependencies + working-directory: tests/cypress + run: npm install + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' # Use the Python version compatible with your Flask app + + - name: Install Flask dependencies + run: | + python -m pip install --upgrade pip + python -m pip install flask + + - name: Start Flask Application + run: | + cd applications/svZeroDGUI + FLASK_APP=app.py flask run --host=0.0.0.0 --port=8902 & + env: + FLASK_ENV: development + + - name: Run Cypress tests + uses: cypress-io/github-action@v5 + with: + start: npm start + working-directory: tests/cypress diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c8a1d7689..12d787a86 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,6 +23,9 @@ jobs: #alias conda="$CONDA/bin/conda" conda create -n zerod python=3.11.4 conda run -n zerod pip install -e ".[dev]" + - name: Install Networkx + run: | + conda run -n zerod pip install networkx - name: Test the build run: | cd tests diff --git a/applications/svZeroDGUI/app.py b/applications/svZeroDGUI/app.py new file mode 100644 index 000000000..d820d091f --- /dev/null +++ b/applications/svZeroDGUI/app.py @@ -0,0 +1,22 @@ +""" +app.py + +This script sets up a basic Flask web server for serving static files and handling +HTTP requests. It includes: + +- Initialization of the Flask application. +- A route for serving the main HTML file (`index.html`) when accessing the root URL ('/'). +- Configuration to run the application with debugging enabled on port 8902. +""" + +from flask import Flask, jsonify, request + +app = Flask(__name__) + +@app.route('/') +def index(): + return app.send_static_file('index.html') + +if __name__ == "__main__": + # Generate a random port number between 5000 and 9999 + app.run(debug=True, port=8902) diff --git a/applications/svZeroDGUI/static/css/RCR.png b/applications/svZeroDGUI/static/css/RCR.png new file mode 100644 index 0000000000000000000000000000000000000000..fd79ea7489af15cd5eae6769e4140c9141037540 GIT binary patch literal 44303 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 literal 0 HcmV?d00001 diff --git a/applications/svZeroDGUI/static/css/chamber.png b/applications/svZeroDGUI/static/css/chamber.png new file mode 100644 index 0000000000000000000000000000000000000000..3f817428ad7e1d15033f4a658855de5663edc8d5 GIT binary patch literal 313663 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

-1%(F0b<<__^SCL+F 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%0Ddf5lh6s;?h6rT)In=}AMJ-PP06 zsnhl$e09awc6$ZF2O7PD9FVkLv1nCu_@VCvuuL6yzL0qm{t3oH@+eeZ{2<!vnYxG0bLWi=T6lAP?>P!|q#UE{KGi2UEQI7o`!0na_gQBP@u4 zXo$l|oROU`T*@$V-xR`EqqN_*66;(?9Df|#me~PZ{_)cIhcLRs{yp5J#D58p$(oIu z?b|;((@M6Ka?ZTeZaw{UYpo@m$tIpfqBq&xX12x6+UuS=3tz$+>HK7#UH8JXwutl5 zT8z$x%lohEu7^1*v2`DAw654Xa5K6R`<^?{e)R30NK-&?#Px*{q)>{2U4Ex_9EHrc zij7;W_?@+u1812mz$i+Cx~yvu0Vt7Ga;z`C0xp03$BacaOzqV9V9W~4;z|rXgd=v7 z5e0W{-_~AzY>K6Y@Fg|yqT z*I&08ug|krSN#QTGnIm+199VfA@>?mNX-Q6}}wp-7`tD z#2E|Wi|Aqg&*oIdX{Yo@k+IU|Po8QAG_23K)U$L!J?q&0Fgv2hp*HS(}KnC}UH zg^G$mk|C=E`UBZ)?--I1N@WipaXHBUgfj=&Ym8$lBK>pw_O&tBUFT9DU3}$JFh=B# z{Kese@I}};0ibz}AN?P!CQ^=fY6O402c)TrX7+aU86szZM2Hjm>+eMPb5M@TiGf;i<39&>@=$3~(ovR*r>E-YFM391V^P>KwVXq{(Elj%K_sL%eB#%pYKz{j z7=j#AT%()DylH-iR#>)!Yo4=|@e~pw(oRl^fD4YHB{_mNblg~*IA^XM3^6fNmi9QO z?c!f2)^cI88Nsx?;wj|;B!>xUS5%#@n=WsbsnSHc+ojw2Z zD>n7jS@y<<>ueJz42pmo!L9Pse~Hbp_|GQ@j_g};``VF>npzw7(_5kIupgT7S%ir& zan6)fnR8($ltCYaYHMD5mi*U?x&lNOv6o>BMMv1OZQ;7N?a1cs?dU58V^acs3ZyKa zSQ*i8DfZ3FFi)I=oqf$RDN&X~+~^A054fWE*rR&c+D+?i#y$USJ=iYE1}P_7wy^UC zU(79%Yi#Dtci0XH13zt{x@eAkZmbj#oFjY&JPCo3eegjT?tzG)-(_&8qG@A0?I#!7 zj2B*{J!w0!=Mnbk-FJI`xZ^?7LkGlbgIxDxfojB-Rn>Bxl59;YX4zv3%{23?sK)l4`AT@?taxE8s zam0*}m2cQ!={Hs*ItSiZDRo3L3AdT(+5t^|kW(IZ^_Q%)icK55?07NterJr+7{^Ho ziJ|Xz#lsWrLCpIe->tnpF?K9Oh}1N5$(OTs5qwsUmtawn8*K3dFxhb8x_VU>{WQYj zzWsCn+Y7Sfr#RxmrI4o|s?HyC!6il5df8(6A94bQ5b0$6Fu6Kq=~y1`%q1TUR@~v>}?i zy5=bDIXWM|4Wg$PBKtSiyk$@QVT>Jvq$1Upv-}*Rn>h6`yZqW~ zZ0+OIZO6RXE)7%DJTpB%*XQz-V-2D}UB{c>{UFNUk8wa6!B`|A^v?g~)i&X=sUELO z+cq}yFAt+&0C7MG6+-sT$ukP^JJohEJ8gHa-bMdH%19~HFkFlPW5k!~=OeChjq6Jq zPsNy3`H?_*h2wbD`6-_e*P%k6?qWDq`knGnp6chwsU&ZY;>Di3d3qjRzd&pVxy$K) zobGc7pE$nO5+`oA6G!S3l?UubugWU4gJ))aJ)nmC+iMWM#!C~-2VX!N0fLWqG?)S! zpB#b!KuGV7@Ew{%Bmt+3{QnIQzLO*%>>F+$ZMU#cXEUi51;wb1OP&NnyU;sp-NHhpTp zeQ6rpH)oweMDw0{!rC=y;z#p_-*KD$;eoL%Vkzs0iQPF@kAhFzfv6iXz4qEU7M9cV zP%FiDdyd5M9K$PH`d5&UkTZxAK+NHCoiw+V<-z@?G00P~YMoWUJqtmHg*3pZRyry8 zagnhf1Q<5<5qpT+-1=inf83wOK;#jh``UMh@CD1-!%ks8Uh^O=LPMOdbNJMYIYQH% z=p)FHs;*zvJki|(IXQ5a`T^;bQU~x6Rt4eWHNSL}Fc0H4+%>;;&02eL*!+9kmMC8$bPVO_WP+-QE+U+dqWiE>ha8{Y!M^b z+0+#zDZ@ls%pF~nCv0;_%%CAI(RFXF3<1 z%M0Ll;MQwK6y^5sg7C%h4TevIy%!8P0hZVGsWGC5vsz zn=9N`F+PGu;4lCm7)nYi_G9&@Ik72*uI(A^2138{}koD}`#o8CPz??8Q z(}DdZ6_9>Ny0{diOy0TK_GwwE6=S7t!R$r2OF#$f+GJgbTcq;)UxZr_7a?a^OdVezuoKVW0NsPnZ54sjIpFAA})mR4ci79 ziX_sSGHd|chn2)(BStteRe*i`m&T2^W*isH!+=vMZT2f_X{(UC%92!r$k7u&-eqXX zbxG8RxKJJ9Dt?Ba!t^cfxC${7S@luhSNZW7Bm7K1MGJ9BuaDR%Q}+nvc^p+jL`p_X zm9!7x$DQ`ief|vq0RR8(4aaN%06+jqL_t*Sod=*)#o7L!-MhD6dhdu7Q7H<74SSEh z_pYe1YwTSywrJE?V=u8sjlE+*R0O06Nbg85x0l`j@0qiExm-y;{E{z!Lmaq!&Y3f3 z>N{_ncixGm2-*-sXca%=yI8T~lQFOcvfxM|8+MELo6OsvZhKUH8ncttyi@w8E1fM z^x{4D=r>ypl=8Fn-M9(b;lvXZuZ}C3TcfXTyh9ro<|~W-uOWS$aZypeayQ#l%Fa`& zvP5Mg#wrUyhygIEcuLjrq~fW#VpTQDDk@S{NvRT)ZTK-vMeybk;F)}5NyaHZOJ_au zgq|HSTvzS6uP(phcZwGlkT@5Zs~}x1v_wM}G9oT3rix^hX3UwTDbuEE$+8t{(X^S` zw`!yIEnBHsQA6rU{^9$SO3TZ&eB}x)Sh7r$=FHHj31c;7@?%2e2(p*HW@ zO`CM?tezWfq^?~$t4Y(QYF^M#iER3WF3U}fMJY4Z1)Ie)%p zE?l5RD_3dN>QWV#SE#J2O4ZDRWGqQ*X^HzH5eG)4JpP*I=Bq`+#_Harp}J63+x!C6 z0IT`!I;ihX+pDls8>vdFNyL;@!?*rV9x3{l+R%47s)*MpmsyfvKGb9Z=SljWbR}iw z8nE-uN>)_rlNX*-;q;k`(??nT`zgCoV|5y|jb6L{R&`f(G`0Z`c;b3^$Y5Q;W6fNv zVWQ@4)pkt1viP_2rrrvt^&)T%x#>$Unt16Ktx=^D2o{zCO zPi_x&4sG%r%>vGdCp%?vZ+MAd2ACrMwQv<#`Ptx*i6?QWJ{hiwBVEXY{A$yMIA;(t z2^a37;I`L^_qQRq&UI3{q^J#bW7B!mxr8#Er(4e@74FkTq|-Sr)X{wt%8#C1a@^z1 zO+1~31fkCy=cEql8m`s8=*@=l3*E|$!iLeH+E#>-<0t%26IT#zG_Vm6gtT>=&wc0) zzHzz$22xV=}X&wzK~` zZs-jHkN|-y7KL*Y-_X zLO?1&Ho1ITrC1FFy<=zPbnK*>suGos7_D3*Zis;UINq$GQYGb5Wu+?lA}3`=%cb%@ zz$U2zlJXCPFbNUJk8AM5kL!hzU+a&D9jnvN84MxI1CVpU`W0Nm2c(aJ;WR5RTMOsR z(f7l@QJdT%wQJCbard;Lek6~X8-=;4iIG1A8i|^1HPKF_a#U7brhKSksw$;bZCk0b zO-s#(aF3Yqz25(Fn1%y4Rg}{>FGo!Z3e{_q9_rs~a}C;}zj}7*s@w)eAYE9NYRag9 zDIskff{?7H)i4&tE0$~ZqQxp%v_!=a*@^(O^b3T#oHQvaSrdcd;hGKX#`6l*7)GU8 zmo946t)mJX6~K7qsWJ!V7vhzw;+sS^{ZG4KtSV_owi!8|W4YNdr=SWjfn^m|;)vLSHCSmUr`MEmsgp>68dmpG_ z!+gzqZ>TY~63v=|{Fr+ULAXdak3aF02A_X^P=a)6(nuq(zX|dZ)!k*!p0_~bCQJk$ z=28#GXKJ~2JvQVg6Tc+VVK&!F{%-p4J&jqpGQh;$S6r!64?7S-RfE)@($)tYs5#3Z z3Y9V4arwnMvHeEC1==AxD8L5YXY`op+J*klRpob+Abb#Rh;qDh2W2;Irc_0_Dke@2 znt=eh>*#amQOVdt6O=-#Jr+&FTVu!Tncoi9LB}4Ah9Q^lO`;)Y4#{c?4p7MlSz21W zQk4tltJ%_3z$el(#61Q<3FAv;BM5XU>mKiv;Tl3y&3CDsgz{RoRH|7^Xb$JBVwjnxO$ybsa~Jj6xSM(+y>{EUi(0m9u2x9ujSGq( z=G2$E82(U=AOX{Vl$WZiR+7IOh__qjK6QE7Xbs|dv=?oJr&7vo@%(ka)vvxka=vaM z`C9t(9A!k{xsdFUqH8E4E0L?)9(`QDf9ziU?al|(e?VX5EL=vPEmHP?P4(%gqjbfs zx9GFqT>(E;N_J+<)+e|uYY`}$HfL|z6Q-vsFjZ#yRu<%{Q=h)np$2VFN_Sszl}-*7k8hNy^iM4d8Sw+!C= zM-qP2-gK+e_5DY6sV(?F>}G=`_yM8T8HfOsp7?;cK_Wx&Lwq`&<4rUTAhjW2jR2-h z4C4Pk5`2TXgKP712!2*>j*dF%WWDkJM{3@pk*2@-J`z#2a@(~5VdNmG#RGzTBB=C{ z@F}ND^QQXd>gxi7l9ld{mBpnR{`EH?)(D|(h?607@IU-9aiG5-nyKt8-TwJdeYJ35 zUtSK)RG}IPbSQYtufc=PQ4bdo{}?35W}NW5xsN z4uX^4qm!z>n*p(ot2|z=Li#+31RXO%uNMpz@EB-tAsqQdI_M9#=_AzZpI&~IHa~Dr z6~tLGKvf+>15g9}CIWGWv4A*!H-3zIwP0yy+B{X27b^?KFG#w;L~Vc|1wvRiF8wls zMc~oMnz>R1;j{*9&f|EvW*QBsW9awVO8iKdSfUVVIqb_REt|gK#@^4kSs;eth1#wKo@{sBw z&=7XlF$p7+pq_zXQKdkHqUlQ|Yg?4QVMaMF)SWBe(@Cm;$meF~^H{CwoE(iAJyv_3 zdXmmM?Nr?~_#Bm%ELT49DYOyFYozUuIb4HSBD-P#Luh6>bEZz;)i1KnbEpn&PQjGN z8aGrnT8|iYh@mb|R&s6EN_}_TRa1YMhPEN43t`%aoPTcU<5V?77j0dn1~;*%RDWm5 zo<^Ag3sQ6_WbKA~-iCJ5FYcQE4Z(*ys_o8zLtSRbv`zzk>p1^UzY9ab&(9(F{x*ZB zLq4JGsE>ao`1SgGJsvk)f*+vEKxbUULw$lzTqa3vKh-7p>GzrG64HV&olgYh(O2M@ z+7NQ|v%lq!sYMw~UNZS#OZem$BoOCCp3ZE234V~iP*Wa%`e42E##?IJwuPp=_6{{d zl0Xv6E^2@jk6ITb_55F+)ye0cqiXW+)VPtpz3#?HvZ6UP)s_mg^!2yjs-zUcDc0ip}B$%6RYH{vUOG-F19i6Q5nrwdLwE)e|kM2>bj>L^W^IyGoaE<5dHU9|Of zikFo9q{ose)_rS0&=$@Ziz@C5x9+8~B`cKIxJZ=~rYMGLJ83nviPBF3aE5*z@}xvT z1MNEGdX1bjQ&VrfTMc*LT1A!Fs?K5wf${TtcZ#&DD#|o^^l0_#)=i0-a}+}@twIQA zIqiaI7>+YAZWs<>UE|HG@IF&7OM{f*b>n#@t2K7^49!`x1T%#^ZPdK6y0-7AR)vjN zo*+m6(d=^8?`JPtrqT1~YV3^ZnzVYkX3U+Zg-e&HjEoHO1$p^u-K@EKcj=}+J-VxR zug$c{Cf(J(MT@kWp7xp0d&wiH1)?fP^{#VY=hpT1{D{)H-X2>IZ$ec_)!EoqeDL*f zoqNMo+GE>6y77|BR7eS47q7vF1LGJy`_@Og{`Mhy{i2K1y;0LZj1w72xlUQ@x^=I* z$P`RQ9Q%XpEqhZu^)M}~hH+`%R!5zCuKxPUt3hdS&@Q{`IkY#WWhHbQz!GS?(_4*i zqEC({_}qI*B;`04;zrd8(cC41ehtIGYp2Ud@=oqPkKTHoyF%%-Za>fN;tX75aMJ$; z!O!5BPzH4f&u&+msrr@RhoSjdKN~E;PeX0!3A5=27fbk7Er$E_Jo>*T_@S=U%M&Uyxqc48w@UQf%P!ZSpLtd-TQ${;H{NIIvRbib z%~-2!hSUeaDJ|D4ufMJn(*(bDL4n5H^!v~iSxhi@1~t&s=`%E)^-Lp_%w%-8{I`T) zJPE;%BmKoN7<=ry(R%xbA42ckiiCg8@kgl|3BM94b?2jx!T@cWDv&;}I^#55JZML0 z`SPE3l@T{!RfU9}ZFrNd<}0IWSiy6)C-p8O#n#B+=*TWdTWq@XeN1=L;^3btk%76f1+oGy{)z_8tR1Y zchUg^wo`)~v<@r-RF_pKm-batw`yQ7t30K}^A_vVDUpz$W4$om^$C8I=TG4y6hw5U z4q*iNSzif1^PPLLwk^LB{C^Bs|HIo2j^Jky6cAF|^Z+b@nE#aE8%zV>dver%Vni1K znNf@ZH@vDP_&kMK!=?5c=i`r@VT34+bpBZh-vr;1NM;S+<*qNmx0*5uBDntc+jZN$ ze^NnVuI9Y=vGVgET1X^DDpjcWvp~3?ef5?0JNjr0p=#8SZzkRP2jzK9)D41Z@EWa+ ziiQvWntN+4)-l1|R~vB15PW3eKvbU?H%4zynuNp?(><)=pLFN}VQskr34h0)ooEql%hlZA=5+Ds`K{*h-ewzp4tyrZhP|wGft_bvW zU43qw^>__LGm(U-XQ{_E7i;I-sJ^Tl zL!|;^5%Psl21SF35C&`2SjCrFvj7a`z$g^3HvW@9y`$x^h=_QH3#12#ArBKIKbzdDdu(q$%u*pB@;~ysLE7tXkusPVWV`pvCrHguZ>ZrDj8o-Q3MuAo25zo#J26d${ zq%&45(FmB$Q48nmyE(G}c|eB0HFoM0>JQ^d?tOan&>?&7p@a9>M;oQa8F0%Pdsj3iHo2HY3Db=oK&GX@UU0Gaq_U@??IKln> zZ4ny`!OsA9Eh0?=Ss=a{)m`XT6XU3V4ThQY0T9#i0V>n?MivHUU%lSuj}5@#yL!Xq zG~qwx1w*iN?>SQE_%=<8TtP89Y!aIcHVP0RIC+9G1dCv_qVGl#$*YIz7d+Q zl~|0A8TY+PK-`t6g}t6%1!1rupN+jX^kB)d2K?&nit(&$JvMTLUZ4I0lCkvXORmsw zjygnHB~>8fn6^9ONKKwL9po6(V>jKX13GqA76yLxgDw7(d_=$~we~BJH`f%;{o5K|A+5tijT$mss$xoa! zPhY(EzK-wSn=&gX!;nqBl;e8(uZ(SVQ>phd*3~`U8KPOp*1)b1=GLsOCvA)1xd1UR zyg7}7*U~)!f;NgfBX(v2u#waX+P-Spa+Lx%h1rFgRJBU2SyH;~?br1#OcQ*kw(Yu^ z&fQ@9~EyK*&v(&zATNSXS&^r#2 zE6SM~Dg9Wpnx&a(`sjlX^x7xyvqVy@yG}h%gN`{&C1b~lJ&X`)#>Iq@^?wuJ^$Au> z+Xyj>`RO?r@6k=!E!Z8vBTwukh-(pz=)K)GY)vdt9%D56!}ryWn{i8LwJNPsO| zrW?$CSicYBV%94(yS6$uTFV6Ej7YktEFz6AGeq0ZehR;7JQ`sfmjBF5@U53Nd<_g= zXmiLVeC4zuKf?xpeiLwGh7tz`^IN~{@L~h`+3*Rz0bnfx>E~$l0x0+) z`~fiO_%QhCdjqP0)7SMS_+h=?z(>Be><-u3yrZ)JZ3G`Q`QFE$=&+Mc2Du=izx0ZF zb%yw~K*DQS7$%RIifIcLYWrPw(9$JXokM*_U3;TCHEA4>cR=X0#qF3ge<9ZT-v=V^ zIpTiFOppy^PW;_w7(T37k3*zmsP^yq>I;27cP@LolX~&O%e4Dp2L$3%0zusBkV7=@ z#~&dwDZTl?1KK9PQ1R8Mh3kbF%LA6Ejl>KqHK^6|x7>_EFt%f{d-bR>%3Zk{WCxNr zz}5=^hT%eL*zZ4K@pPglCkjPz_AynLF&RxvcjOL$ZE%{I?nk@lU`o zZQh}+cIvsA26f&|h)!HqW6gM+Oe|icyxL$x(7sU<6<~O{yljQqY}7?X#x2-$q|ltuD)bl;o~SoO>wGj$F>J({Ybkbq z#JhB6t86Q`jAt}R7=>1`!*J}~{%=aNJ^>Pl*-^nBRh@RcXOxjQf z*Pr%<0!Zuo3{J^h!`KCa&zI4fLa38-4tcq5F3V%W{jUVy9r@F+!4v#om=g%T!OyT1 zfwS)&6P_Jsc&mLCJv)s7)d1z|`Vjn(l_mW2H~$KPU$@S#Q#6Hq7lrU1Kz9g0pJ^je zWmq-;fW)@#o_hx5@RvXQQG0E>HQT3JK=9d;=gGsjOK_^Q<+cO#T&Q_jXt&cCf z8V4_1D+fn4i*Z1+#ew^4C6?-laT@pf-_&~XkE~7q)Ji|I zDB`w~qbER|`7R^b)bCqhI|kyfL`44Uh;h32gSR#G@+*{&O1iRXL-xpLsRAkg-shiJ z(*}h)wiE7QRxJ+O&8o2mPoSz^$WDW?65b_mFm7MnO$KpgWhz9TXaZ>#v* zv}vuzjT+$?##Ze~2z#+stXQE%OROD0)8To*x0Xn4=vV{7wgD(R+`}%1i#~f#kMDD+ z2JEw&)Uji5W>d~G$WxzwqCXG+LeqX+1hKBtCT&`1@SeMCuPwGwGp}<~hjJL%LT{bp zK1KUWSmQtAseAO%q}ebmo*^*}>e*8d{_!?-Voc)JK2V=3r0@hw6yAdCwtIV@i9Xzm zJ|6ZtPNxdBN%JO3VsBB&*k)rF@%hv-n#poP$5_6~;3%@#KDqhEJ=MB33>9Q234=m4 zB7(mLiPRsdwVne`Vcx~iBBX$kSerJ=?bexbW{V@56-+La+p&YT-F+{Og~5(9-=4eg zUhT2n_RK?r0~p5rY5?-R88Z4elJG-hcokuVsOYsNe1_8bgv^{i!gEd;edD<3eZVgv zUAo-xCi)3!{jTo!b@GjJq3c7gv^qrm69k`D!5)Re&3rpVd8X_7E5VOC{rom9|gQ;nW5S-T#8yvmUrTe22A>5Vs}3FAT95h1PHN0B`S$eKKZ z0T=4|c)PZWqqU|S*e&%$DV+MGF>Ib%9BBic(Jtgyq#rVC;sdAY{>+#^Q7QfZ{l z4RD^pwj?(k`XAIMXofQD$d30)ehMku+y2mL;AAMFcc;$Q@|qQT{Jw`Uf`q|=m{u}} zvSAihqe&Y7{bao};%olC)ej4QR5LVE1AA<&eK*})2lU@sxe)vm+6qg#RVH{WY=8R0 z1l{(|>-uKqY+9bBru5@!2Og}mPd!x)k(wcq5K6u?k;Umy4ZaS{lw~8qmqL6Wyz4F< z)}xmilW!cYLKRB|lgCfjn*>WJsf64MRF)?lO!- zgd3ulYY4tmxo%PFpDp2sFQa+zE5Xn7{Q6%vID#LLO9lx6l>tfBLTA)5PGev+$oW1% zFPAlQ)p6;x+&E=GW>({x6N-2WAIMWQQa>?7P2)j~=OG_S{F0-aLdo#<=WcFMbLl z6nqSTB#s+=ie7s84G4aXZbv108b(WDcBkRV{bg66R@sgk{hd}L(HYTXdMKT2gS|vs z7=Z?e(rVUnPkH~Z5RACG73AsT>xZZi0-LkLR(kaLmvzz2w*)C|rvU@?&Rut_Y}7Xp zg$PmA?VzwN%WmrkRs6%CUKP0E&8;x;uo@i6)Px?(zI73kFeZ4Mi|6EN+ncV_(E|qQ z?A`ZP_STz|AtVp0_q(2b3UiGHI%cb_R5Jxe4Ha^gjp$g$8OJ_vuiM)&FU*TtSVwYY ztZlmy*5rYG6C+zM?3%NVR_*OaoWAgh2pV5VyD2DxOp-udt|-SzHk8Vw;woq>OWY@K)T zej2>ZPB0UdcnqZeEEVt)BATaLu?_h1#~-Sq+}ePow(ZkLFF*2-8o{_^A<;Wy!d!RIRrReE&_ElXjc%2t+Y#)1X9modL+?<3R=<3P`i zY!g?vlQ9aoB+~(|%0CD}5Maqa)Pe7nSD;*+`dASWcOSdAF{(Z3qD%Dr-(IJTl&(GJ zw>tmSQ)n;a8dUjzU#0JX@KB`DSg1)|g6{}Q4da%XzMoFhE2I|A^qb4k;2uwIc_L33<@wOg%^t)r;IROhbUp!0_^czjwX-ZB)%ruH$}H z=|^Mm_kK4Rg6{?fz~ovB>H#@Lfa&*!DFbPME$$)!0qnyIz6$T7G)@=p(s4#|K~s>K zM#P6#QKk_9TEcfEe}+TfTIClZ(oA~42wz4i(zoGK8_%mufVkETQC^wvqc;K3SV~9( ze{D7-vxJg|d(~@ixmCB^{YNaCH_@lhJcYECr2<^)S{)1qVXt;V4?X;lF1-9oGEHgl zjyvckh`uLK*jvoC8uhAGhThXX3ybC{EEO1IMiX{TJ;P))lE_r3ZUg><@8bYSu=k>= zGuftf@h5M=0VQ-C#%6b(by`5e**k2lGcLPY&%O6vK+1& zU+^Xe{IK~+K_nqyg>g*AE&2(zTLRHMg^W?4LqTn#j7_{kt+Gq9O4OmGh^ zq74zUx0b{8@+AuxFfpeC0<7D{!I?ph*qe?v!GzUnc9J;Gp5sg;v#~9>@{_mKtIq&E zcE^p>r5eXO1uPjg7Y8d%+?LBzo@TfOjiyJQN;hf4M5jk; z&td06EWd%?{^$e!IBlwq-DOwREc#JZFdT7~3{q7|Ev_lkv!8#+IRTq$?`|81?~=qP zSc`Wb1ls`W8v@PDXhWiiHNT;&nN!~3!6ZY&k*%Dq`h|Jv^Al_^n93{C75Cn)dmny; zZb<3;6OPyQ=bj%l6k%N42E&vIA#=?>1VVh6cj>|O0MSB6WyaFAaICvG{G{ipA5DOP zh+16eZvuXyo*C^=rcEK|^tYh^4{$nyT!AGj*t+HstG!T$7-!@Kmy9 z$=q3}U{v=^*-lC{wdM=|i~8NsP9Jb)C_F?&SC^@s`G6odIP#{Py{~! zCV=6A47yc3H6akn)5ayl@1;P5$Ul?$0J?p>>;0gQ`&|ToJgM^a?u1o>W zD`*o)yM}Ra25Ctr0G^-I`8(4(Aw0U=`r&60{Pg5Z=i&bFB=H{WFGq~fJ{XdK^$55H&1ylKIuk&`Hcqdzc)U_Q`)=l7JBB4Ggx{>dZevk*8zPH&A$lg ze>-ZlR&%IJWPB7&ME9=|LSVi;$u_6}LZD6ANXVbeov!=7{wnm_!}}kp19smwsH>~` zZ=pWF*+=tNtVFYtqbF|tz4mX{Udcs^03{G}z2Nmo8_=1Ph+_y?3M1C2Z!gsp=BNgD zyRv0JFd9Q66YNob@;$C~(bCLVxkQKFb*DbRW{8@x6qD7a5d<10?ztBJ_KT`D)qp#PwIgW-hioDq2@T}x$U^qwO7wgAi^*X*e%%e+%mqq=+6)9 zorz<~FsAMschQ@VKB^Xtis*AJ`|+7jg@z*=JA@k4L66;$lBlTXrBxSH;QlpT5i zZ9~#RnYeHz6vWE}h;_8G;{@(54J5xGbymjiG9Nf`mj-9+`BGvc@pVGINdc zjgpgo9R$B_ot-WOI?40H!O&ykpGil~AwK*#%ermm*>6Ky;@#$GIl`%T6VuBxr;c zCX{g*QzA3@R;?~ZwLjXpID}BX87TL^C(s5KOzcxgnhoQ*x_#v58a8cq*e3PX8Rx4_ zCw$+t4}KzB9k)3i8wrp}5hu5O{?H?8Hy49F@bbEXnN06lcYk?nUKP)Yj_s7!rM)W0 zPEs|-W31})DFm_(Qp@B8xCb@x(5c^RD8^kwjyhiP%{Ru)ZXVy|YOmj(rYlc5Q`>ZC zr|O9~34%DULLwanbLX9Z0fT2UOJ4(mOqZ2GteD@i#13)CBE5n_y|14w<18a*VXKhR zOg!T)#$inoX>+3nP1PPXcu93B*7fWyr#$=TuNz#3wM=hM`d)8MnWEP&yHcBNvxRaR zw*kH`nXH0_Amz3S~hpFUU>T*-SXViDq$bI?M{Xq zah%#W;m{liMw0D}W%$Ft`uS({m*HQjoN_nn*jDd6{HR(M72uNsI|uT%&wBgK_bHOz zrZ@D9FZ9rT_vx_*9#noA?vg7wWC}w?+aP2?jZ3Fb)y3L%1WT+fJa$ea`GZZ17SHL1IL-{YmneSnl(c&em7PxUvQzeNCVlknD79`>sD}ri zr!88vL~Re)qNT!HgpRo94t+6mdYI=2?Yy&|yZ?SwuJ$%mX9ZJ>Rv^(4ZH(9X*?xHJ z@yF}*(@xjGE&Bv5g*hu9$P>r!L?upmv|yf2y82QzhxxhT&?At{E6}Eq7a9#f1xCf& z0U`RvFY5?lu6X=-XXC$|Ze5jy9YNrriMMX;oe5)f>0w>u(D15te{L zKc$WJ!hNJkSi7IepZ>|H#-nN&3lcJ8pT2r-n{c{D0V+sTTSxN$M-qONZ#wr-Ui57y z-k|Le>h?1Te&`+g!Y~n}eey}yF3K=u>S>cMfahNc{+h0-f49L%_!)J&!6HB_hIWw<}P!k}|YHvNlC~L@_cj@Lo+@WLk-(QbC{BT$cw0bbc zI&b;%#md2__nj|1uPbl9HOQ3DoOY`Au(mRNM4Nj`<7O%|)Ml&#-fG*?Zwc^U`m~vTn_S&-Hn4QENhEiojO^sji0Dj&OS#2yKclud$@b1O}XrD z$l^rDu#`a`RN?h62g9~05bOnW=V|+aTjLtKCA%4LGrOF9{wr6hl;w)o-~Uh--+l|^ zJ*GPkI#&A*fH8>ScL43cN(k}MciyV8v*xJ++IYq3XXx_5r_3t#J&8*R$b%o4)HCULjiNhr2bn6`EtLIS#-+eKAh7LUB$l%QBh@^fbd3-tICpPuCqrUCDL7x?5l`DG?S_$;L0 z2k9mNoB@x=0KBeio$o?)=AEx~LhuS!=h?UEoYJw>g1l_Jl?lvA2V(|2YWzJ+(SkTlpFdqQ>p*7tNYYrMrQ_O%GFl%Ww<@P zevQr2_(({2PXa=T*J6S7--hEu@!h5dy4)0^@eD) zQ+E4ynzwkly6v~S-n{P-ZP%f#G<7C0jKs+}4u>HrF83iwhWmh3$tyyH&bF33k$(a; z>PjTnacFT~pEOoea01jcw@_`03Ux@2p4xiTP1G5}J9q9}mW_&4g{C86#X+Kho*DbK zhA)_=Yq#BBtqV<*&=0`81cXf9UdniW;`e%Y+BCg&?gi@Gfqm^1?q->&31%g`C1*Zh zXW|9&3O;}Q>E|^Fqr~pp^ifWm_7FSV@8+=nUQ(mYpw4s!Db9k;mepGT&wh%nyh-ZT5W4 z;07KD(fIi{;0B0yUw83{b9AK%wW@3^(=oz6N<@H2gsX#=U(WF2nFFI?-?i4>VU9qal#gm1YG}yotUG z%!1STJ$Xe$oogES%{Z(T=Q!B$Q44>VHoSYCrd# z%k^KBsdE9D8nN;(NZcR}%P;m!w(r3Q>&ua&^tV4hq}>i-Pp`dvd1;KRRi=wr%kRtf ztz{tgMyzFyA95Rh)InS|c@Up!Bo~lVD9h!o3CnRdGinTmQ6Nea79Xp-&i-EW$uIiO zs#zcCf^4W9kU|C0a3g%3KMm3Q3+?P$)JQk(@f&ToeLpqCSq>g(bndG!>gm6}5eV7f zV~*DCsQQ!RCWixSoL8{OuGi|YH=VWTm{q^@YgSXd8^VxP%$%z@=gEh|jX?gf#W8?IdGWiENkzlocTC7eesEL_`{Y{*{+?D%Qux?E4!%{Ln+VZ_Pov zr}`izpRrxTBsk&J)AZu29Los;edl+VYAYmJqwt7`Lmlc*IAYw~1&bEz`|l@$gM3Cg zEJm7n&h*)T)Rp#l%{m8!W2zU7&ekM<~>nM z`^2;Cf`mSL^a*ueUCNQT#Q_-wsVFUFtknu`%1JXYqKu67d@5Qv z7zL@%h&`Yoe%#+-35A$x#VfQC=g!AD&pv_SR|0kT-lv_c%{z6|kh9NF4JYoUyu2IW zGp4Y+qPQf0tchfBFN@)3Fa#rGTjE2x^$M!{XUB|D1FY@`Vvlfo-+t=1c^4JL^7P%z zANB6o5jts`9TY3T!A)Ufm7~gDSzV?@xTdXIhBZ6=R*64>3x>X|!+ZAEppISeYi}a% z2%e#TDwn;ZE5w8*Z29m+^5%GOUW{u&@3d?TmD9ce7Q^k%mc- z#S(xG6b-9YXrgLR?PpGv4RCRIgw zN?^-iL&K$W7V79TPgWrw75{YfX=(x-RM8&^>h9pNqgj79q|j94a&VH5I}QY&ei#YC z-|f)D0ft(s@GHTO`r-fc?}kV4(;aGS>Hw7)zy>c$baA(*vDlLOZ&0{^idy94|X;G-An{2MBNVNlxJV>Aae)?wOcqLa?X~yD3dVIonx_7sO zwIsC?%?WjafrK3D>Q9Gibw!olWUahSKFkuD2B=%4v7(KJS+7k`T)0>-ee=1l-Sa?Y zZ4XnE)fB+0fG@H7m_o572}>08M+_od$(nxxVm@i!JRNY#X=;b6{=JK?KssN6W*}cr ze=4Tft%Eg&+f9R9IN|EB~$d_<<12^RAE1xomC zbVge8iDI6KXW_l;#W&y33rP6;?7KHe121Jk>WbFovq6sA4cb8?G49%`YbU*Z@s&!I zBgKH>>|*sNYti&=KrSF2W3*YUliKxe?W}kIW-vhLxL^K{rA+&N&jb0+Kx({i#8A!V zdT_5kIs`xJ8};aMkp7=0aa=@lx+O>3Jr%{2Ul*HkcbhGI)Nh=$HjfRs%P zf)#$frkAj_tSE_;*qgoc7<^UMz$A@l``l`b>O!BTq1Kl)3};~1NPf!VrE1lzkqTLZ z$nCe8Qb_uPuewGv7tYg1&pxXPTLqeR zQ-TWm{?9(vmwdldn=bm@&bzCB-;Fu7H{ZH$h+ITq;_Mzc@uB;4@}B!^r;R#7m@y1B zm0}K9v*Ydb2|VeIVB1|4p7XBy;7y&p<+f_skYxwjQ9(NIY`6gle*whtBl@pRqkQ1R zs@t^Dp!*Iue+Y>CKcC&93%o>4b^Q#dc%O!&k|tDLP) z9>>8xd!Bx(UVZ6R4ccZPngBDuEP-IGkYF1?5-)xBU6HD(fYGSX%vrOw=i&Ql=a%ht z^HC=%-}d%l82O>T9zTyo{a}KhKd=vNfpEiYRI)?o^{>9xNf(??-zN1HPKUZ5w60zeIv>CZ>`tNjVuyVWg#M5ZR5i$RKn_Fi@ngK$!D6 z_+;Y5$)S(x_ET-dFZ`yGF>k>^Du0_kK~H@54TLUV=i(-JU>ml*fqb{!ZX4EbYc#t> zk+whMOqErFaI-7*-0$zuzFQ4a^|(<;%&31&l|a`%{}nXW|9kfX z#BjtIC?+mlE!0z*i7Au?JBsM@KroDiA!Z+pouC1Id#VwO581so(~MOs)O-Km=*m;i z(gnvKt=OosIDf&y9cy}f&a>;-2@tUCoZK*GS>#&@0kc$IiuC`~$M5R>rD%a#H`n#7 z9rtC4AZfAPlD4h-a~bP0wz;83zwnvoI4humuGxD(m1k9A8IN>c4xvOt;HI+F9gIc4 z`|@k7_Qz=v>*Qzjgy7Pf5!1+_J|jlyyTuFi@i`Z%OWWqe;|wMA6LS{$t)LU0`{E1K z@L3S+os`?1t!qu2Vp)%YXcl|!C?{CB!x*rsf#oR}QpPS7G9{ue~omUjw$; zUXMO_AH?1H+peM-YkwRLWj9t;UL40m-nPg=J{S)!m^Vke?6Q-#-ME|n#CBLq+BV9p z#TP$;1R@~#xm)*5GuCK9Ao!2G`KB(s;YPK_cyavDp-P}dvxA+mx1K&(OTxF7rq1Lv zoct^apZT)d1m z{qLhXQmxQzn2E@AjJon4GDh3N&APJqU&n=h=IhM()X&JhWP`Av4t4pKOzBr2qgsZf zK7P?cy^S&2G>G4Tw(YfdkFM&1Lzzkl$)?@9sza-eDsJ0CN8NHG+uX(l#DC&``|G|d zuhdEiYCcA8>lN7A7T*L3x_!sMjKw)hwqpF`h*_wg0jlO2h*uWt`QA3Rvb0zq;B4op z{sUBrqnV;!z4gFzFX^J&ZqKk4E$@{uz|AT`^J~M@8fxezG zRrh~4MlYOvx_0cl2~33z^r&w&Y*oBWb4#mq>Elo7airW_{Qu|mVV}Mo6&M(;`lcOW za!^i~YCHxDf9i??fd`li;CXKGGHri2`|7vbj%BJ{RKd}})2GbScJ~aye@{Y(AGntu z{XHJ-An-n@#*MU-p{mJKR9#%EYd-o=@3F^!I7W~SaVCU9gmj+Wq=WfMz(7G=A=21F zP#0^{o__L4oqyiBx`Z~Lv;DTA-+ahVuIHia%U`fpAP={rrjU~o*%=eVcrb;fpJ(~y zcip4ApMP3=Z#PJ<;w-3=6BV7@gg&^rhUka$EQ}KzA71*(9nWhS;L+di662Y4;*c)$ zV{GO4kPVSx4pB!l4FS)D0)T;#i<4$jrgI4S{xsfYT65zNV26nCWjcM`GDD*DkMsAp zQMLF!WaLNUGeu|ep#N&qrnM)begU^c`S>~H30@7EX3~WMqC!I+e(QWU!0=y1@B_uE zJBR>@hcyf`fDwk62ZK&6*sqJ=8xVukzXmYE$fliR`Uj28qqe9rB=UFj`k61*AgDDTdL7&Ztdi19@Cqy; zvVL66I&~pF)EBYt`}X8bGa}b~*qFw-Jaq4-;*S^8$gSRM1sqq>R1 zo0_mr@8tyV9VxA-)|v0VqAPdZM}rUAm$T=6zC2#_&=!>>6FTJ1n|0zYyXlbr+bDnI zPPhzi6Sgk0MuDVF9+YQiKO8n79@7SgRjQadPb$h+Ui&uG0ecb-;ko_EXZ7w|@8}Ke zD`GHi*=nF}m!HkK0!du%cF@y5;#&6IgwTg0urJv2>*E~VlI|#m|5`(&-y>9Tt;WJ#gV<4*w9WInviO(Ac}?600Oex@=Kb!gU;q~4Y0cZc z=B-*Dh+T8M<#le_TAMa#gl!knCR?-;_*-w@poN;XXs9;LT5D9v3SIit;~EFkRLL^P z-n;Ll2d}tZO<99ZVyKr~x*T0{25tTiO{k;xk3lGG1#YG+P=dOjrV+8%iH-bLvq*l$ z%YV^rM;?ux0fvR!Y^ibcmuQD057kwt4AyxEVrV%YH?(Z`vrAzAjpl^ImH6g&?%vWB zqOY5yW;T1TN1Gg;0*Y9=N3rsR<~0t7zI=#D#J+a$(LW% zgRj1%4==w)MV#=Lv*ng#>}`246Ik9?%$=*)k4vdTN|R^I*Y0?_y9f!p7Y2saNZr=N zA>=B@oxk9Q+gHel!`?Syg&#^b|e%^-#Swm@^%)m~RO4RmnEE1cs0?n3TXM zQkD(-vduK&AgXNf62;~%P@MZ3`X$kABgI;>3=^-?GKlK-ha9fIoNxvn2^;WvfwsHl zdQDZ2)-$LoXP9c z@xH)e$UY|=rJK*bNau0dTQ;83V(ck*H~7S|Y}|`pd*clna?9;%#{JY=?*qA(zzbxi zWu3lU$89+4-N*|>>%&Rr&zY<7<0b?Il4a|5)`Sz}<+WB%>i_G2R$KW+4YY9ad=PG2 zD`04f*iYX)w}FaS7p=wjT)&#!{)eY#d@AK-xPoxejubDC(WX-U!FcBAtJnU9zXzB!d}H{Z&mjoJ*bG>P;0HwK z!HGgNO{3>Pgt>LQ0&ZK!99}2Er><7%M@vA?_g_o!Gt5CC_|Dz+;?K3t#MLGEu7QIY zhY&(~?gEn>#b*p6LtX)1UFRro#~JqB4l|4nQGbNnkS@eI-wiPQ*AjdKQ-&iqFgW}@ zf^Uy<1{8xwh7R>#ks zFiE=}b(m%$IUR=4+CxX3z&r_WT{fvQtjhLA&mXRX0c%2C0dAJ#ME6dbgR$9mhaaJSy?W`5`~RdW zh*}J(7J(JQnyYcRKVGzCi8^5AJ#*%a0LR{%8HdUE1Bc3dF?))hIR0eq*PoNsPBq)^IPD&yRb>fz z{1lZZD)i#;5gPLP+d38rd8dswRv9}7yv*QrcrUYD!`k?1d+ed(x7|jisM5~?9$PhO zu50$&S4A6jP!^JJU|#sn>g+1i^jSF4p^=;@Sgi8tGZklNgZt6AKg?EdiDNloZt-%p z?Y*6{n-}T3A0}$A(@xazt8P~7#?7?X?{CzYIrDI^m!nzleT;J;mKzvzZ>1~$b^@9T zv^CT-w`Vs!{l##d$vG5%{^OlG_6R)h0YBc#n#GcirR^G2{4p5WxCy%P3j`&cIe{MQ zIUEL^aq5}cXVXn}-wDSBXHH>^f%_nJqut3FFaXUV-CHQrR{XgU0#x5CR5;(MUwF8iZ0j-S) zH?^uPo}x5>fMLM^K`=@SYoy_6&5zZNne=sm({Z)W&dAxMxy;Ph(RUHE;5Zi*RAb>G zlggh)-y2NR@W~xqK7^1dOr%SGqS{ErVw=qNw#D}ZUijs1D%3AGVCmtWxN&j;G#TtZf zbf0-{b$1nrJr@RPvc9aI7b}wtT#) zmgo7JQ&O#KIBD(ek@%tq#}?tJ=&0Z9tD7#n9K>4*{mo@d8+HL0+EpSAT03A%@AWlo zbi3Clm^m#6!RJxO68hk9>;;}jbzcDSOKd+tPrdY}&bi|T-7xqZo!5UWe9Nz-|16oo zY(YVWeK`!v{2aAy+fLt4oQR(Utn`6{C2XBL>%G@CsC6s7cG0B_Aw-Nd>AYS&*_LR( z@#MicJ1<+qo7e{9PV&9!frs?SUtiNu+`YD8YhZ34j(7FAhw%WaS1eK~e)4lzDmwe| z$F&so{>H6w3e>&}Zfm{vjuf6KQgL#ne)w^@z9?R#mrglbAF=*_&J&Mm)YaFjs8x|- zoAtwvgz^K^L2m`3=s5sEty-;`F_Y*VobJ#`VNZU&4*jugl}gwF(e03Zlw?U@w_}dc z30rNeqXurL&4*m3RSQ?BDcdP0zxyE!9!mkhK!Uz5{bn@JxF9wIu+c`EfU~0APCH45 z;9>De7?MgfLbi{{Z&0L)m1w@`(}ZD(Z)=Tk&CH?&sAOB@e%L5{jiKZ1XJ4QryLUyT zcl|w&=x3PD{4INjWeL{Xq{0R|?vji3$_F25+^}KlgsW!za|pX==zG?g0%H*odx$&-Vh=T+h>JttZd1K^oU2))HYGK1b(v+}9IsChCgCvM{ z7CdgpFqVoinu4&{_qproiEhR$Fg8qPOP5KIhz~J|Bcj_`kW<>-sgX+#5-QkH#psJy za%5{BL>Q-~;Xs!Y2JD2PUb&jIZ=p>(bTn?}OV|ffRFFji!!+9*ypQ4C-@X{CVdKVV zKI;1BEO#8U=iWN{;6t&}-7KU4rWSat4sF| z7&^WdeDa%!8lK9&9jmO0$RlA5eYc`T3vF}6A!^yY4NiF8Rv|>$gx3tYwN$o?h@l~h zCr&6 z8#`b(^YUYlYxS(@XqwpjPo}~1BJ;xn&;KRCH!%zvgnAw7@vlo%{W=;R(!0(6aU6f) zF2Ig^f|&F>zYqCm(gIhRxNwvH33)Nr02X;g`PRO#lUFF;c^EG0#yc^et-VB+uGy~y zzqTuX@i+fkf*%2+aen;}Bz$w!>0n^8wjdzj46quI{jH_TIw25g2u}t8qtC1wCDch8 zCIZinkKo=fDF@>pgSmnIpC$NiN6==FwI%0r)Pt8o@E?BUQ9W|UA2?`awuTNHs#os) zv+^PM`AzWWj+C7X;`V8Kt2h{En;mz+sm?6z-F;I%e&)F#9Iq!+Q%iL8QNoObr4uk* zHCD}80qYg%p%35F!=paX(6f-(EX?DDFSln8seM~b95qTSKmA6lv36gLl=@1#VKeRqr+(Ab<@OZ(t*-SUB$WJ+_FwJoF%eD zhAauQaPZk@YuXP}_1>kIsu}0V=K~ih+%~dm&NqzBoEfT_xj>)KoUViJy-WA+dW7be z{ip$LI;s@yNF3FFB7xlm`jl#Rg3Jd7-a);dRTR?`C!DIhu3b0`s6(*Ww}YVI*oX2> z>^*@hr%aV*FBZxp@H}y}Cvb4CWF`PlHT2oLBZlcWTMSSV_qqjWA`az1oLlxfPJM2? zh;OpB?=Cy)#k=oTb$JQpz%bGSE_p8%CG zVmax#AA@1^@wwFyxj>H%zyW`d2UWb~54Y-CPBA%7?kGU_8V2Kicl41FQWF_mP7pkCXdlP55UeeCPLXCHO8c zU455roEO>@#`{--zh-3r_jkWa_@VCrE)bMC@%o`Y!S{R5;s0+0A4C)mkqDJ=MW~7q zN}XpvFjqnynK4nCIs~5&!bCcaEkA#G=_T#8{UAMj=N&p?@X6W{HRsi5o-eiJq%saC z3G311pJeTQ%Cspu?DR7GfH=U z`lj~iw7CZFz88jn=*02jm%9;50!W%wc}2SIt~)ew>==z7KTgFkAuA!I6;!^;2oz~E z&b{Zmz13wwnEdXg3VrAZ~Nh`H1 zXrPknQkCIfeGY!@%h5a(W0+^{LsNX0+kT;G+_djB#?xleNTW+B}Sx@cTYcuuk z);+BE=afM_*`8LzwyhWh-xlF!5Q7V67_)HrjmN>2b>FA^J#_xR;K$4whq1zxlba_%aY*?(E;M8!SC}5rt6+gtdk(aAgp|U5`6f z@fEA|8vF2@bndJ~hb~kIf{%8{ny8hNCMauZnf7CA-F)it$UaAF%={nJ4GFm#)epKD zmR(Spvm|6y_`6dl>20<({`JBO)V&Md^fu`N;Y9zEvLPvJ_Yh_?a5=z14Tn2bW0;r( zuB&;@v6ml0#0;#dy@^Jg<(#L#d|!udI|ze7TqwcN47u-qEnZcoN51$37*FclBahN; zS6-$X)bu9!Hma+hG*wAS2VEsN}O) zBJw4_9?Nv~Q0}_#YWSDjsl4&!hYx_Zi=%W&Sdcien-jtmkJvykUX*=>^*f7+q zfoVA6oZn)|nbO;@{8d%JbQW-#;CSFlU@h0XIjn`Sgz9-02qJ@2FZ^7BpOJzi;UZ!n zeh$IUFdPxFc4g88dp#xm%=f1HCjGw>{CWfWFL?Z~CHMiDto96@Xo3%r)sxWu$^_ri zt0`y(AOmVy>)Du}#Pz-p6UT(MmgqX0^_TF&p7k(U)=2nX54W)y#n*=QCHUbZKD1+y zs`5%*ddsc4?};ZcS}WApH{ZlSD_e)MR)6=cf6$h_dvp9}Bh=-_VK`@*Jr`tDuBmv? zJM@gxG<)tmZMkt5-E!FR>eRNS8Y1x(qXj5tkMi5-`0v`neIB^SPg=3x`R@- ze#e@;2BWO6#(%HN?zmG^K!B|pHdO-#V3X!8AqLIWm~@38J*)IfAkM`Vr8t>crPZY+ zSd^D)F;?A6kXS2_q>~Wva)^TKn8SKwTeJr|blh0mbZD=37-d;??L%5BK%Ql&|4UXB zD;I}3Gw}639_#6GOXq3n(o!vlAbD*%i@dfO&>x0oXKmT09kvE}&@fcT5GWgIxf}<> zi@g@w4XelAFcO_i2*Cp(dkyzr8ptjMVR;yX#~)@d)SV|Dr)t)9mo;ml0Y@H&#W?5O zKmDv4OrMGcJK6{8mw@n0{C<+=%$bjMKI&&GY6ie-`9L%$vCYvfUwx)$POv(^4`M$#VFGi+hc58W+tKF1`0Ri&*_O>)>9NyKR(_W*O0?|^0V=~)12R5@ zwfNib^yQRk97lVn4%@7cPUPU5St}QXEsl27V>m1$Kl6c87Z>Y>FW%QpoZxue?gvPl zbPgIFpGH^B33UngXOMmw2ViV9#6Ay(g&OgWYT3@fbqqBPL*h!)4CXC{iBAsySVwHN z6Jv;zA;$5unKN|I-M0dZkyLrdg%@h@$;YC(K{XH1`%Hus+b*kta|)(_Y8cd9y*lh0 z4SxDj?LKgT{(ASls#-8lxlJ3f{ex|O1x09!ApD%IAnxgmz!aMK3ugi__f3S)KKEQb z@WB1L09$~ojy;~GkS@TncPx~%{8Xe#l)2xjC+U^f-&C&-9sVDC?*X{w*#7^&KeJ6k zgp5Sl$;wDZS((Yoip-26Gb$3LBr-xYWz&?DibzA7G*!|b+VeC2ulIS~*QdMWtH<~G z{(lcoSAFjLy3gyp&Uu{2I*;Qxl?B0ve^nO!PlwTUXy8b~|Gy*nG0xgmf*&y*bh!Z6 zMerYf?*hROlNEnZ2HlP3&gBJ$X19bN56}PR`)^C|-RX#+nrIt5qAN->I`d^LnYi=9 z_bmVv@)&_QjYPgk=YRYfKUwb19VFaf)tLaokQP4tZd7k5&v_}+DSp>&vJ{o_FA#he z>noJOyJ6cR{7RGx!m!~|I6^cukDC1LkEprf{m_CqJ+#sJ5=fl9&Ta(s+^essO~;o* zTR*_^xK_2(GiT9^op?f3jN2e`?1krWvY4e`t3OweV~g&+R|_OPyZj zcs<X-S%23V?< z9OXNI`7)&TE#c_e{gC)ev#(klq+9-!Q*{7FP=z3LJ~A~Ii9CPPme7a7w8?t{CKQe& z_#4D);j(2K|I?2eK6bRmOqzhEA%`-H>!^M9*Da@?p^LCyFM?Je3%iDV7>zu;4Pix&wPhWG3&aJdRC*z%>J`n5% zO=dpExJ09beMKBxtkQasMzddP^hWz}KCbw*> zvX)MduB<|(%E06SAco}tJBB^}3^Xu9b{a&1tr1fvs}6qUx1C;HtuDF@*S902GJ7%C zIoixZ%Jcy{bC;<8tL-#k>JRF6&2=gSfwmgjMyHwVL8n1PZL9D8Hvj4??ah35Wb5Sc zvujBN@?p3`-ENP^A{gn}r~sRZt@GzIh0%!9EHpNuc~LvVYi>6e?M}h1tM>ZJFleTWHvVSB}B>iEg!4G*_uwt!F zc(xhgbTc)5*f5o0JhuF@n7#h3$~@!%sT9PYu`XPCZx{ez&tu5=8{Vv?v3uJbw#BLv z6)_cc{%8(3s=#(gKCuNH^)MT+h0E@~OQ)P#UC%!MoHhXK`DmuXe!Xot7{9QGZ%u-k zPk$H8Qy8$&?Kmww@-T!{K1hht7*7wJIoAY^iSruE`2B!q{GPKET)dZfUXbLQK$PRM zJ?yTL7ejr~JULsa&NogEUs2%!SBAV%y5Dy@f?Y;3!6$p%m#B{}j20!TvoQi8n`Y_UfUgsDtx>@+P-6P^(6bDJxf_r~RN#Z+BHY zkl?|UFydqHFbl-vU?I7vvu(NS=x{&GoTg|c z^lbWLe36ItA(uaU0yxyF4@dDKD86@Wct_mxnd6?r<;#|8Fuv@cemz{@&zhmt5X$5B z+fOYozecAVR8fU+^+MhQK_i+14e|VMKL`JdU(A*FW@${+ewZE;jbWTk@F2lSu%@{ZeePt~eOzqYIJyc1`DahZhAxFhQw5A(K~e*Lm&1y2ch z1F?9LJ{Bd4U_Z{HM-#6!4sP)n1gYL|VpwK83_~u{FlTVeMP1#jZF_Zmw}(Ev|52TC z@PR6XW+06@%_2@f2GaZbsZ-SR^RM)9pAU6;m1?@@vxt6|vk5N*{{8-x;N93d#VFrXV(tyb}J`zdv=l5Ab=q0IgFS2kKR z!<>Q842<3Q2;rbBF0Z3Og9fNI3~!@)*YljX{4kQ^ewwb^S~Sy$uSVzqY%(_DZfHg$ zFbts_*d@b*;g~Y5(vJv~`)gQ?x*n_N3-F}JBG6sl2}8rU8sWi2@XQ*IHD0k_SfOsubd0*eGO^^UUjybq1ZCS8D87nz@6f13q zt}TS`cM3=^>!30!MsS-H+^=qU^Z`wn_@hog?PLxrxlA=6P+K9IMayCgml-WUt6NRz zKt;h4-+PsdAyhMF|EzN_IG?Ry7Ayq7d-_(vn+&Bx9KxjfrT8*pMHO$%ox;7#gezg% z`15;C_uHOF7zHB+dkGlfW-X;(-{no1jCA$9>1JgRm2G*6!aDx4E3i@6qEQ{+ z&>^(BFc#t-6aP)cl7IP%CZXyc^TQ-^XS8Y8?4P?+;Wz!(0cGj|6P(%L7NsNI=fW6d z23VjcjD_7X{W}MunnNG5GjPweSii#+ukSe7^PGyC=cB#e)f08DRxyZo7TSdc7-gRP z+|w9f5}zOK)YtF4ql#F{7xG3r;Dk>i9~jCZ;iqg^$B02#fg2Sns+w(|(GT-})r&2j z(2X25U5Iw2K+VJUAEAOBgeQ+WY_C$Je0j7F%n1xum{(vhjrzKE@1fi8x>ePWt)kDn z_aq$g2I2(lrTX{Yt)>q))nR9ysI+-YwFT+k44B8jTN=^5eMFhsyP zBSSu~7pM7qTe+c-f7r)Air{wN~i|B8sXx7YW&mBw9SE zd-1Dw$kQ~CW-f$09YUJTHb5Hc{DI$mr@Nas(~Whn)S>0~)2+BSZQTr#L-m=l=U%jk zR+%8%AP!ucO8HrYXSJVuD&@`jb-rdUny>TEuO0mEy+|$S7zdlkK-FLnD8&n&|8^7H zN+6artMl3W&qunq2Z0Ypv6N+^Pd5JewELe8uRtzoloJjmVGlMKZb8)TX6K`VpLp>_ zjl#9?D2(4;#*OV5Bsdx!>f`3$c3GA+fwL@yuLI+ptCeg$oYB6OT3>Rl>ayRSNsybT z-tVGzuXoc?M^w-^PqbG0Dx`OJijOQ*)8BqKD)e<5Aw&C<5v=qu?gIS|+Q@r8f`<08zzWy0C)Ufs? zDs8KF=F8q1^A<1Cd*6-J3v4x1DqTu%-*~H*FPz8tM}~q%-Z_lFnZ7FWSFl+8m{(~+Pb0cw zgHErgL;YK|2ik`$2=F9aMbjz z{AjK$na9FNGH?dipjq*=|7Qf>?V}xrv4Z(x?Bd^kh6G@($xQ};o1j+Q4K3^tHx}t?Ecz^I~X&9 z9bIOiG$3*l-mp+XN)GS?`DC9qUndbFbOABuAGooe9&LCZhta?+V2qWvPdNgZ5P*d` zQ#e}HD&KUDX0>&8J}1tl6SQSBs{K6FuycP~qV?>*S3jXzK)_ZX=Mz>o4T5hqY>43w zg3kx3+wwY}z5f&#jx7+Ow6G6OGmSrEH~<5>FX7N2OH90L)wvO@O{Q(LkcJ;&HtuRg zXvfx->-2WFcl78h?NuIs>vtY}Tt}AWs8$g8zx84`VN+1MgW%z1axv8U0LJSn)Z^ox zd``uQ3b^HnLv&8P8!+HopcfywN4FeK&>Q0V+m6J2T7~ue_z4p+T1?k*#~!0HrSPj~ zyhe;34?$uddDTia|Mn|=(dbcCIe`fHMzOyE&!?|^I;KBRp)cW->N-IJ6n*wd~F|fH9=sA#&30yArA=wkBvz-JH z#{e^Me7_rb_utJ=taX0maysPIFFmiGgdQ#i1Bbo4M*lKPbzbZUJfx_2;dK4fyFVrf zrK#5h+hq{dpCZy|%a%z~P+XbFvi}cr-0G7)dU@zj)jYGBK6~>mGC6H0I0O9dN*b(0E-qK$NvEKTMvat1qstRxs5sy#9usZ}+^49k91H{WynH z46zFU2EcHDV?^+Sgb&g3c$oNy?}&Vck?`C{1fTq2GPmKpn2)1{QQrSY5`JLlXo2U5 zsVacCZ7q$SS*0JC8_(sxNy3i^J|oJ!d$O1%k8bpxXiov`xNZNi>u)dN+wLU5Zv;7k z2ze^~=gIVcV*oD%AdDaWX(=Z94rzYI70L>Ce$5%2Cz1r?-+ml&^G-6rhBOv<03JVM zy#>jH+)=GA%k6O6TyUZym*>Q!%lQMrH7C05?LrYED3FYCDKDB5inCC|7i<# z1#5Jdfkpf2#A2T?eVP@Pdf=`*)bhUjKyq8L8aC17AQ4o=ow|0>9d)l#5hUc4y|DHM z**Xrp6)8qQ4my$p@^G*f3%p?P>BBf2doM)?i8|Fd0>=hvlzfwv-cruEp zSGN!K&`YgV0yXSM4>r>wwo#yZLkcLEHc(z@!FCnx@(;J25oH+BIDqKZK!mP&?m1Q1 zzr5bKxxUg4uAs52maERKcOgV(Xaqj)@xLKNVwn#vZI@{uQW7*X=_k;Z-2yk{ZAc}F^RK$$FTBPJ8G|CRUN)#qP- zr6bE7s5Vz!uagelUz?V1P@OI>tMNIP68j$JD=S|WIl1qMgZ9TJActT-vyoV_Fh|gJ zKp(r*rK2IrA=u8E4Owb3e26YNw6d-}?r2rL>{9Jr@i4{^BFVhMMTPkcVPrl2q~~&E zan6kSz$DubJdOzmciS!lWtautpcv1`lC_(4cemH|VUvdln+pt}#Tv12zOF)JlLL(I zQ8ZIidiTQ1ujkKV~L)D3F|FLr_>jSzX`vq;a`LWcqgm_I-f}K^YAROKAbyBbE@wR zv)l5A5%fZ$ol(w^J^CQs_$nrf1?$QAT|T)&U7_eWEvXdWI&b(&;3o1$xYVmA`5Ec% zr}MiaE`ND-@gzzQcceHeAd)B_zoNFdt%j$>73y()&I@$JS6H!$KE!GN#P7c~!H;G+ zF)f~O7JHCNm`hJ=L~xz%88)Oupkj~-i!o_NVZn_~&~Q z5!b&Bq>|p}d9*4LUy0wLiHQb;@<0j!*j=|9>^>&02&@x;z6%83?^~;3rp9IGfRKHV z%w4!6b^Y`c@N14LLQp0Q`kYX?NQ&h1DO`CF^0^?|3_{?RT)JEtL{!Tp1Iu2`7Y+-|GCJGQ$qQ%8`_`!s`C{C%UIO=f?NztIEW&4@O6HCSKg3uTh8M?nPq= z0W%^p^Wn#qUT3hi@FT?PhFkA|ijZog7@iiq8g86Fo0H1ej8_gv&RPO9^Rbhx+rPNu zuQ2A(z;9#>OAs|Mb>F@8e$V&Rkm!RaA5=m89&bS?+vUVL$Au51pN(YZz4pI)d0ewN zq$nd5*F+lp-On?1^{a2FbAvl{(Q!wq$Z033O{eZ^-TiePSFuvC&M&b6`w1g$s9Xwr z#1qC((mD*&99XF8@kswLMjLWBYx20Cuu$KmDN7gWRl)_oeDf`;0HLdRa3z&GoshhY zc^;aU#lJ38?_opKV?b{$TDd}*XiM&4JEq~;wSW)zkBNubXxyupDk4E&RQ*I9RPG=G zCT-SI_Qw}5S{&`!102CX4^2ZV#&J1YQGKUns~3CvgR!)KuGYCar2M`*z5dNAf|da; zPI<(}&nMWYsm%Mfkki{n+9V{8G4Phbrkss-*3{ z57Dwki}dspkL$6fO|@q39Ho2v2`xmS;zgqn)3ygNv4{9ss}a6U2pQX;+V^+>@P-v% z#v?HSkJgq)#c6!=j5kBR2&%&yQJD;E$nSEUmq)QSEY2I!$rnG5igNy_e3#}j{5&LX zhXHx$s{Jf{QHLipai9F1NDb}s$i`P7_`z zKI7nnaSEYs?D5e@x|5jQ9?CQb>UVwn=ok=iIP)IlmV>0__}xnvE>O`0OO&|@^*blY zrBy}6Z^I^-EF&JXHe^RKw|})IZmZi1Y3PX2dh)gQnmqFtO&!=@2NRyu`{ZGzxzayb zRl(DN_8NiPvfh$?o3}dau16kYs{xB>3Mg3ENwdc*Sny+jxOtuOmJmDzBA8-z{h!pA zRK&Jhx0B0ZYHeeX!oI9e(|hcR=6d$wxudJh1)oZbZ4tK?WYe;Oz z@ZG4<5caLAROv7sd=Q3XXlJr;NgMb54+xK2G;R43b)GUsJsRGtg)0{7$N9f%-lol3 zizmf0jMQ+%)LyulRUnewDHRUaxrYo_wGLJLl|+jBZT@n+ zGq69PUeAdoQyc0zLShb*bn@He7Cx_|f}9g7P6?y9Hi&1EZfc)0Go;4Ecg zd5Dfn(^jlj^|nuf*;i%n&f%o&tv2(f@D)p;dt;B`3CtliQeF{qq# zi4c}Xz#Jdz8MFvY&iHu*UAgW?bs_xPH%JSdh_rjOHfs z=|vf)D=-x>6p6W8gfZTXmA~l%EYzd8_1nEx@FU-ZYdsPn?MCnp275`kqafcd-`GY0 z#=)9}6vEu4R@hfHYn-p|f10FkA8)BjdlV%dRe0F^O~BbM7rrf{^%=H6-;x4x-I}IT z+dZlMO7EjS_cT(`!z=2$Uw_s4cis-+OVP(qw@^(EJ5mv&MeGh3&{ltLKQ`l0nx*Ha5+n^=x411P>9cv(!wlBivvU-O$>eHZ+4nL5P(NK(R7>ErV zW>c|gWB3Bwe&nn3vrp^l^DbZnDZt~9beW)JEkI+zHi@51=H$qWo@+x$T}}*qvZZdg zmhnQ{!O4tvfgC&Ld!2dqnGmvkU2)23dinV_!TrxJ zsy<>l7}ha{e_g_-Ue`^Z{AFg)-@dj%C~2g}>x%)2ev@aX629lwrSRWnMB0Q-h=)t-2>Ew9U98QIFHY1D8v> z>x$YJ<&R#E@`pA#J6BYCbpKEJ{2NR7OhK6EXad7TGMRry@R@PH7A?Z0S@iq=4Fo?h zMIJhg*sS7Ti>kKf<(FzE>eW05$n95OrRN`gP=&3sMGDEs$jPU9{jzW&D*yeol_Nua z26*~$mWGf%!hUCB0eNI0962D>rAWIC*e+;H5RqC3RM1gZU8%FP=(LWDv#FJLcN{J?t-{7elVc!26`2=)7yt!?1ocWq&>I~8}qJO^+2A0$I^ z|LK)a-z+(L3>_;ylk?*H5C2N_uzh&wqRaH?MYVCK&VsNamHfU*e_DQ=!Kc%uW-<1h z4L@Mq1l`)>Ew!&(Pxa0_N5u&Hd(Tr(t4II7+Pmal8b@%JJ(0{qXlSHaZ>RiBgt&S0 z=Rs_xQwS04Gu}Nfuz4CkWja#)YOO*o|K#wY8uVCm?GHguhiS7Ngk3U4DB4W6C-O?O zr;U9=Ix2ggM3>1}JG^f?!Ef^BEKnAV)FmCB*J%|hs?i1KY22uB%#&v-x;!tI@FN3H z<{V=0Ga2q5@|lh;yN@0_{VaX@%WU1=x>bnmm``})+}~De>#|iEI{ABDa?bgj$pGU) zw7opyE@Wfmm&eu&M>x<8i`sx#hEXbYL*($@8E4lITv3w}vK6MLV)tOEzrQSx>hVn-01a z+mx4Ewoo>4Bdm!icp)AG+8DG{zzn`2$}Ck{se9}hqFOqfFr%XTf#Wycc%7w`tLK|N zrrThi^00@W&B7Db0H5$X{S$GgKZOiDg;yUAU zCh1YjgM?pDgj+{W{)f9j@Du%W$K7FH;VZh2+ZO6^yTgkvBFZ1y6ulL_mbm|?eEqEn zeloCFS~OVfl;Ceil$cxtgSqac%W3}|1m9hUfFgxi#qGmB?s(vSy~qB#)xp&XsXL@s zPvwF5azQki_IqP5apKrXIvRJdbkxD91C)YF+aXr-LH;S03ca{&36GTHlh7`>_G(o- z^Bi?#UvmAJ(L_2Mrpbh{eUAf5@{stv&cZ@Y%uPs0nvbv&6N@%pxAA;ib^Y0>Q9A6@ zlXT1pCs9Al$qtt#`Vkd?cd69hX9~t)NcQQtBwo~^mA-etoEB|V;>ZeG%{E4@E3YQB z@j_j3$>n+jKk)1Xp7gJUG+RJp) zbq$ogXn|6(L)bd?C)D}t^~vaOb^S$km3wRyVmAvWCgqo3l|#ISbO?DiaOY!^cf1_# zI0MN!m#rwm6R7?huc!nrrndms#~)Ws#A8Ck!TvZl0dJ1}PLF^1Vet9izkF%U>N5nO zF*6#qKM(G}|Tac6MsX4;3} z(&{G4E3xmszzA{iF>=YkC^a1e$rFyPqDeDms3h(Fx_2KPe853~InSA=K*AvSUSr-? z3R_FQ|34u3?rtbIz&7`Z0gh)fCdeU~hatc7a?zx4d7VZC)d~N{1U~^|fl!<4@wi0I z*!CF`qSUx;QTuii{B48uAAA=kExCO_U09p}*(5(OaR&kMJeu=u9AzMQF@*Ap%iI~k zk5!y5H2^*NVxS3W34n7N4?wEyHPeor8SVLbU`(ht$U+CIR z{YHMPJ}8!;Y`%utWAU&ETRAOS7K0r1C;X{_ul#lYcQ5_-|oo z)q;p`-Zyujji?Ly?r}pkypnB&5+GI|rRsKi4L>QK7vz51O3G0e`&y@)%b(#3tw!_;* zVcjv2o6uA&nm0pVOr5WnzWq|IYMrO@FsP?iJ2_}FEFs%AW#iUVo$}NZT0+306l_l3 zdbW+Oy5u}%*tpY#Dln30Y%EQ)#ge}Ux4@}0vZErrl`ajuHuEA z4IwB(?D-lOT}%x5Nu-IRKR;I0iWRhB^k}7&C!!lGV*bh{oFaFEiUiE_yFrHV5nT*K zIce4`U3F^%_3QPqj@+k|HjSO2!bpciZBf%c?`kya`4h4J@mpWMf*>n?-EHA7fx-Nh zin@PSt_VLRh|-_;E*AZC^7f{mCMK`Mu3Lp9DYC5=Tp5o z>}z$p@itw3esvXr@IU{?TWZ<)EtTQmoUhuwq_RlG8Ae{T#a8Q^H*eLqW5&_LJng&B z-a6Vb?s;a!7EaG2BW2ogE3$Pq_@2qR`C?9F$&Ue>l;+><3@g~2hYc@1kVB= z4{L+d^gvw69&Z`&ZKA&gZ47i7cqR&CZyi_svt zUvq{J)4nB3lZX5fVC~TR-~UX(kTI?Oiv}PZw`>9!h#=)z(l_Dy4=4D^MAQU7{00`eEr9prJjv@I*e!&-&Yj5b+dm@s zj7jnpXaY4Qm+!R@gs9yFKY6JBv+s@EA`sZVo#80g?UR^am;mNDs%0R`%b)L{Mh_Aw z=EB<1vASu6co$@yRNVi3>jlhyDA;4xk|kQm*29ID)lJMLZ~+30=Gb$aha1{xRjFK= z$Z%_kr_ZiyE?x#k0(=?)c_??X?`Z%4r*Zx5Zv0%e$weQzo z9dEf?H-Fq!kKR;YrI)YOzBZUdlVnYU;Wx~m3B5HA)M?|u$=>J3JL7Y-0X@c#MU!x* z4x(QfNYbYhk02c)X$g}-2_c}nemhc4Kl+e11UsTVdeMQgKdCaGAkj?YV*=fd}GGW&gBt8mZ;@qblp$ZauYSjW$GP)_ndQ>I0s?tS~|(HGljeD49;8-$ti;|zR_w_x4Pk)Bq*V0<-U`6}Jr{S|%F z?{n>m%TYdVR{0>joe_!TDw6M`{b4Of(NW^1G6uO#7qq%EVYDkku z{#RD|ZinL(d^u~5Zs^!S#~i%B`aJ%$N}qU?X8gKXCtr3sW^<`(a9M4=z+o`9pYUJA zCZuQ;=fscWSlSG>SIQ9~@#rHCXD}kom)j57(v%;6)XL>6gB`-_-+!aiPdY`7&#r~l zd9I3|bUb~F_KOSVnfH8{Pd0JrGZ@Fo?A>2*&#fwnd*ZO>Z8dM!4;*x~5|^?Ju{|C! zQ1PH8zI~i-qc8gFyo!}on0WK|cf(_&@}X+^cym=gq=IsYO@H+{XRA=jlA17Of;xXT z1jh4T-PQSJ4e8QV%W&`9llsFs4iLGp4Fu8-eL{tADfovUe$cPP49LZv;r_w>RO_IM zy7uT}Xb@KMj8JvXi!k92^Js^we{@pjHiNyvt@B$mjPF z_hDub7?!M3_UzfZkkci{&zr}4c^cZKn@&6GsK|#uftPmZ{_lSJ6vT}3jK*DEjd8`@wXng^b-ty#U zSa$K63wb<3?ptD{!n40f@Z)l$!i*2%QYqZ?W5lqV;3r1E&so)weZa zNO!g`?Rj89E#_pl8rNKYnJNc z4jqYOZf7PVvRwo`*XJz)T*hdqUi`3^8a~pD^WL#2H^ShNvzYZuh0sl%I6-^wRa#}) zGY!U0AXghC3hxB_y62$wPY3JzU%}60D6=VHVVqzl^Yr!T7g7)UZ?h&h=JWp*WI9-uf7r&zzTZ(opFUz_ zaa~q+F9;dZEoyKx2{{m_mBg8!{KHQ{!Y{?K!&R$r3@ZrEFcHux12h-6zBv#pvk6(7 z^7O{^3F_7OVeM&EK1aJ|vJDUgNAh5ji$>+qA;)R>iKu(`JlR}R7BAL|H{Yr=P)kn- zPEzf{XM*Uq1Z(x}JNzlp>OPn?P1mDwm{+Q-zU=#v=6^R%_qBOaU7l&LryqS-&)jj3 zij*#iggc6p3diW?hwoF{uHE#(^X-&1k!W{oI4giYI^?bcMTIDjRFe;3UV^R2wCU5S zJB>L0Uu*WdjcRw+nJSD&M<&6atl2pgkA{@D%m^_SQvo>zgNhep+3|tpW(9h3%_0n-i9m!k)lDrcDoM~|%{?k?Z z(Rz$vFW{s>^acqKMHNM9yhrU1j-1A}YxOcBEDvv=~*3Szm)5vm%%NEv!vvocO zQjHol(Us?bC@o2G*)1uIwc8dJb@F6xE60e=LKUvtgv9FO{|1~q;RNtv>Uy`G1QUM2*^V-?_p7VUUBEOBajVQof& zEJDB6!EDW(zf$Kv*Gl`8D5fzjUr@n^I|$+Z7hk5* z5WTeGdnvOr!Ft%Lu(~{z7z-OWuF{atzfq%CU)0*vEZtwNhU%So8r}lGG92`QKKeTi z$u$QCDib2MK0RAS0l8vn#dI6eeGX+DRpC%Q^Ga78UwI$hbj5Y5j+ep7rAw&I%U$*2 z?YF2*`LY`P-FS_hJVBSWYOeRX^weulwa{7)ddi%)SQ|2lcIfky8RNh`Qg1e@{L$Zk z&w)X?`iTg7t;T+%8;?9zmsUCut9SzI;91}}_*JSLt@Vy3NEW?r^(qF_dTQKc6yj@`=oz!0YFw?D)_1CImXo;>M$lp<@2-h1~w zH6Vnt8QVu1-K(b>H&!;9H^IE*lFvsQ=NqQHMhvU`3;P?M;RKP4;Vj?;)=LD|iSNWi zuU}&*N{LWQ_)Tei7vQ%<-l(4VNA&HkIbWPNehTIZx4%nwbNw$dKGB*W&G^;pFRXdD z#W>6PB5jNt7t-8M{(BAo?xK$&m1o<^bxLwxO7ZwO&HoG95oL>i|E}zRP{QBVXfI$n z&yy!D0T5oCzAv~~9RBD3VcL^`VK>3wp5S}z98vF44253l@|Ip}-ai-dzrKsI)*OGQ2EV_O%mT&c5ex{T z8cTj=9>5?F`*j@6Izd%WI8m8JON15~WWrhx#L{gvQsPHWd-%Ef5li^}u(IB}Y#GW6q&C#;E+k(*ku4SK z_>Yh|huQh%^MGiYq>rsuIbNzLiF>fLJ@&{{FoA%0GxDbNj z_6O(=EnJQt`(y~dec#=eGfqDZhRPA!EUiX}bPL*zaT6zp?Hm)nT%yhOs~+#`{pVj|D`}%1 zXjorm$p6WgBlPo%r8@uN2h{(Q-fE4XdiKHv$|Z)t7OVn`&}f_^p;ZtB=4{T=#hN$$ zXRU(aXgX}L4k13mBWKiNj;J3P$uhBKl&YO{A`*TPG$D8lkP;LT*pR&Q?I<;Vw;PO9 znvOo`AdTt!DRB@`*3&ni_mB@v`Fw#u@F7Z@XU@_CuXNNqBMCIb^Hz21>cIzyR>_`M z!AXM!lT6J_kq>kVHWJtecv~rtvk%fB_~tzFA^2eiA?O4^&9FL*3i_VSUyGgtHOf`!H4!feBnWDsD#)>+p7GwMHuX z_S4=v3=Kdo{?d6^sqgIg(wy845TKHvtSq%2@s(CVh+ZZNpN*-krZp0GIOA>3GESjmsNTFB`GJv>$G0tTnhBb~lTGv#rqRnep zap;Tc8FL_+SaU$+(i{%Vn=lu zGMuA!Q`ETDIeNBnQ>E?C!BXB!iU7)k%@x6!BQRz&V43^ug@*(Ij210Z=DryE0ax}M zFr?aZAcfNz9i^hiX{T$-pWBVE$C%4&$KP=oz9o%MrzS26GJ+@1j(J1c&dQBn z{fB(-CipQZ7-9Vv6MPe#G!RKPh~u>n-`97;zS1H49|}#~qURoa40R>3-9a`cbl!Ii zYYF7Gn)~XPU#gRjt*UPAp3&CtY^_a5SPSjmu;1ZwO!ORwN8*c31%eyV7bHOY^nb&?{WY(= zfSaK-=Bej($hn+!mtIT*zy4ZQ>071yR*Po3@_>USm@wn{pp+%uC~*_>^eu7p(xdz7Xuwr0?{ z6ej+AanC)()o~N7Makp6LdzZ2U zso@>B;GT$~AlnmetG7bzC%=Kc`5(qi*7z06)#^L^;Zyg}apm?zT~FHxUbF!?bEw{} zFsFskE^H)nq)+Wz51eeu-lXeJK3#Q>sjh3gbU=&3)&$JN_kDU3hW7xZd)H%EM31Gn z=wNb8FxdKfszV38`1uzwOc|@n_Utu-T#v$ ze2 zevu-jRQHzaH4x63EYMJP;65vmGxJeB;yz zFW}yvsdinus1C%T67GQOFdp2rX@mAhU20=4OFiF@9;suFsiI_Q{% z-+0G}!Eh0t@ofn_4Wf{PN_I7>{QDkyNJ9pHsr#<4r(2IdQ9lg-8sZ6203q*<>b437 zb9oS$&>zThR7YHU^c~v3gIowo7TEvF*Iv@7SwE{5lKBTMS}6@Xib4?lrX8Nut35ts z4>(;zUVBYPBB7=s?FO3!%62(EpvIMbH+n2Y&5RkUe8%=T{L5{?7Z?uuVS}$FxRg!7 z0M93k6^7y10)vArucD}wzn(W+2No}_Qn-v2VJ>Z$=+M0kJI0bkxI@~6f-0M+cdpln zGK>>2uU|cP1%1RU4Qre8a?V8m1G`&`1vQ*E>>EV${-;lW!p_KpSCSV zoAmw9bJXICzEoXYP0pyU8LO6R=Hf+Ki9zNDG$OY5F!PZHb65L5Hvl-p0I?RS96 z;bF0I)h69F_*246dpxB+uf42uIji1`l(kI}z!@$%`H%6-Ahd3~w$JOSL7%~_Wvb4p zRrJPPk0|p<4s(Jz2ovtHN?hUS=8~n@>LD;O>Y>6MA)Nc$a;23h%@`5^((`7G0t{(z zIiwLcTvtyY_x>a>iyyu9mTI4I2E?9q#Uuo6*guTmhjqYs?I!p!)coIk|Lq8VAk4;~ zRGGR<)PNJK^!*UsGPI)8xqsqy}GJj=N>RzSy2s0lD5eT>bLmC z_}duS|M?3R&PaUy1`pJJRZmk@{K1Q%eqD|q_9hPdIcUEF1EQZkZHo3SQ%Ma|$8; zT?ZamUI!g?AWV^`z|a|$8FwT8w(2q$!tME7(vhMvMDgkB@Lf7d!FVmAXF{H&7o#}c+N>DoX8y8 z5*@h-f^P|T?6~m}14O=H(?S_0?v~QmVi0J}L^0yMXIiRF)Zu}N>IoG_gUM}}>o8O> zJf2+$#D*F&j9yL8-ye463&u(rLf{LVsA}TYq z_!-!AY+=09VH%t_4XsW#a~}*!(Okqh>8?9&SJ$px!|&&b)qe*Jku@v46fFyXdtMTK z3Gijj7wLxWxEwQTQD5DZFhTrwhoU)+pOFxl9VS1_bQmFCb(P_*xvTj z42*WcFY2Xc+7(~F&mXOgux;i{p>LrDp)F2|`{DbzJ?>e!+{Qm_U&x)v=z&St1vr_X zZd)kvkIG2A`A_-!`x5*ZV<%=JAfZ1Z_~Z%ClV)wFMthVQ04J=Nh+qdpr??J(^UP(% z02Y@U)$jedXisxzp>>_df0m2l_d<~o|Kd76sV8U?0-=dpo%HQ> z3sT6XJ>F*cZsJ&Fl`605XP>PiFd;eXw`j~~{Z;L%E0~WA&0G4b)-7D7s%M@K68GH2 z$S0adrsQ{5m?y@<42tig;5M8o4|jT_Box-zV@*0@2C()XAaI{_bPib z9Cc(RjP}X}oapzdiF$umO+fZ^H@w&G^MPtR=yL+al+uW2I;hMEhXHT&6D$5>EQ!QB+TzaV~+O80RpbVZ;M2kAf0;{M`xvp{*g0 z=QNvr^J19rH5}SUi`Q)8Nv_&F^q}s!;d;&m@Vt@H*EfG=VccM>G9VYm;fr;Rn8Y3d^=9ACu_eJmN4)2Ds*any8r9-*S z#N}$t8bnq2;SSfoO7L9-WyZL(pfoB70+uWD#7u@o5-*eh1QDYDZz1?TYy^)m5CqE! z#B+Sjvvl2g7wSO>d0HWe82-T~!ahVL2T3+Py@f#+2irwZc{b#YKTnM8oyVH-KzesOQAEUQhzo5c4$b!LO`4ue0?aJ_a_9Om< zP^PGNfBJcr<|3Wdz3Lk50&ss?_?u?D^R5;hR$doeS6|C8&KlIWk8ZlHLBL><)J`FP zdKm_ce=xeU4?gYs2TsvTPq$P`>EdAwHf+gN#dFWrW(?pe zv6njtU;JXT=c3++K)8WBUf}ZCv*+MzKOf^gLbyV-3$yi6wMrFEV8iGOLT7dVn6ck$ z11^-7hCQYQ7iHR3!1=5WPm7UhL54rR@%%Da+Kh^((Py8B6Xbf;yGrwj7+16AxjMe; zF{*dNHM+TSRbAAgsg5eMzutcGVU;Ira~4N5XU~|X!QW5O9ev-|Z*vxMjBL8vKk<|r z)TyJw3zlfWkO4ZO!eQEf&oV?6T&FAAy{I48Em0eS5FJ!>Pt%I%iiah+Up(kfmgmcWBDAA2h0K50zt2*sA($<{*Q;+eif$*SPK5 zQVpat5EG~h<)PX~+Nj^7lV0iYn)XKB=@70d5Y4cEy6x59-??wJXW`Q28aaK2>Vc@& zVdK2Vg5{d>S|^R-fSp_4=)_U+nQHOEvwG^m$1sLtpESY_+u?^D3kL@W={^QEGZ*VO ztX1{u)pf!VN9wglnrdR--dZ;MXArjurr|F_IKDmM_~Vc|i@SN@`XhpG!fPX}F}T}Z z-0^vshFra0|88B{;CkG|Xe*<$8jVH8b89m0Qe_DKz!%zS4r8=~2qi;uy(CE+mtM?19scFC7dZ@>5iT~ zRinbedbH}v+DJbln4t}carc**7hlm>(R(M-PJd@X@b^e92Ep&6g})IS9~ge*w%hbL z1m7zC#7lm`MZjblW>fY0i?8XCce-MGk)h)&RnT`FSDd$w_g!dIQOF-Pgf!+L8w#I} zEkz~ zY=F}C-isjlsH@j3hY+LIhv?+9=R9}WN}X`|6*}v{3|UTGa+nGxRn7hg>rcpWKxYi^P)&}L5d57yS{L< z-A4-6?pqm$OI~WLv2&NAUe4BJTpSNL@dOAJQXjtY>*>>B=U<>roJDXD@z)2w&{pM^ z62~2a5v1?!N~A4pYj|71VUT}en`NJU%4*s2m0_&Q@3(KrolWqWA32J49U*VGV#S_r zMvJ-dc=*p+fp~1ZufMCvFi6C7y8pBp>N%Zba8Eo#N7ubf`*Cnh&6;QGstYbtcf1TP zs&_5MeDn1whKYL|dzhBYU#t^2!LJlj{;U;ib$-V-YS+4*8r*rO`o8iJmVrui0p}igUVQ z!=Xs{s|juc%r(O<C4`g;*;X!WQ9V#W3!SF&c^xgMt>;y{fMI4d`zULoFY9NDth8+cuTH z*HD08Gh+rS;Ml*Jr(IF$voLulCiuK(4wd)+lL)@IMw71sf*<-DJqhq>jyg{BcRc65 z_s~QiiK5)k-2{Ipt0FNz|AAjI5-ONjw~-zMUz;*Zv zioWE&InDKjr_o3F4WR!i!AEkjr0sW&phJtSlEwvT$%@sgTKfWBbb58Y`}SMPLlvy$ z9DuV07ceAIN07@0VZ1YNpzZ=$x4ivU-E-1OgdD|93TZUxR8jrguq}?D7qu?>%;nv5 zq?_QXhI%;!$bpMko0Y1joGaeGbsO!;er#Isp~lDzB_R$=BtQIX@q-t1z-^i(Wk7Bp*HC_oh7&;cB+d1?pFc2;fVrN&i(@(C3 z;WaAU!~_{;LJyqBe>@1%B6B>E*atOVd`{_{vgdQHVWhu_ zv^jI<5*B!A)CadS3E3L{EQRjsWkOq+@oYJKxF)P#qIWK@r$ZjTUwuCQRL{fIeDLxc zI%qwIC_VL<_JrW|WuLn1=L7Wky$>jNIuQa_{DymAimE@?Otmk%Qk{tL@bgbobWn-1 zY62l{d+pWAV~c72id8xjqtXf`i|UCQ7r?9%dx3i6wG<{aj7S7EaeA01(tXfPy4?y> z9SyLM?i|*iJ^Zy~PSLZC?$doY-y9kDF+XPhqA^7~<+TlS)aj*H_1HVz8JiSUz!-G; z(82I#c70^5JU7V~zXLfnE}@NH+CkG&xR5e&M-_1p3}ZRWv$tv7w%Qlf*05niDJ4ZO zKJ}z-!)VW9ZczVw>X;+<#dEmriZnD{9#IphHPMtPZ*)CPbo0mT1E@Xd{f7kJymF#!niPz4}~+d)+Y=|%?p3q~=#zcYd#TIRNgLK0stD{gZ9 z?L5hKgIeNu5?MmM@q12-$7a_FzKIUyx_0*&lK1JrVXFV=Lu%XjUfj+e#Wx;RB!tsw z-yU^VF`5A1@zhi5J9LEJ#qjEkJs{Ay4E@zB4=F1J0zYcT9QFSB2X$=K#&k1`N!%wR z7avRNaIr?f0pU@h8HQCL+Adg3H)`H8_>S)}dzPks+Fw&RT~2fdFy1PSi4x^*=9tFM$k zbG9ZA7(l*EWkQ^=v8Q57+a9 zhT!X-tC3H(SH)VVgf=+bsz)IYEB%LBJ*~I<^ig(pjvlRZg_@pyE|Y=H1Pn(ilD;jt zP3FBFl5gGru3VJw*aRCeIQ$-K_Z+PFGazPJyl*e*wAJdI>fejN=VAFsY zMwh;Y-a@or>G-mm_UsWD&i%^mt2sjk66?UYV&`M^yH=3RvH1({M+jqr5~Z@W5Gq0| zluaAXB*gE;3FCuypl62{b;U&&p$TA9&7hB!Cpwrg=G&Lcd?qt%o)g;cE5>2I4}I_r zy^7LV)2u1mG=zCH93|$Hn1Ne)HU~$2d0#0xr{8-KGGmz73T*HF0??$meE+XNfWr_s$fj$8Y=-zyH1j z-)wT2W6ZXKW{YIPx3qc|>Jhdda2ip@IaBWcjnI zGOX6bZ!dIfLHuv&nhpA7$RIUn@(|~tZ`Gdo_OG8h9f@s~=EKp~L4|CGtM{=rsDI0? z8Zc;pTDN{yT|0MCr9&$Pqr^})$aFm6QeW-}8I|;!JwXM+;X_1BoX&dIi+Jg|J28_5F7rt{_ zHrGtX@|4OIG_b{UN~?STT3@2Xq3VYs2Shb$$`oCS<+cyI!IMkx-hPkHz!M-HZHgsu zllY*Phk0?h-d(y9$dT#P^cl0XblLLoTBJ>hN(h=5n1EfmJRjC5Od%>>%aOx%?J+0m zaY8NsR^d?9s&$qgzWyfNUH4j5zy1oXU>jk;6Hlr)HXv=AHivQBr0GLOYW?yh808(R z?!dv5L%-03?@EEz+P~@9GQ~NN@k} z5=OPGHG&TPoY& zbDsY~3Ex)cs|Xu=+}URZ)#SAAMyl*V6$l)&Nn7SGB-jc_0Ya6BNV$qV{VIgt-3#}k zVNbMF@l9(`y`%d7iNSKVA}=u65WfBr%cn`U0#RquTbMB znm{x;rzbpGrzqV=E0vJ38bLvX8Wee&6=)A|YB z+lIaN(L*)4cYlrf>O0-ozNOADbFdz~=MGKJ+Nj&Eyat%tpv!N(PF?SNNF|x)xg3IX za+~IQp1*9p=>$DI`YUzC>*B$xr|Lvh;`Th)LSL-u4ha9x8tZ%> zeZmQ+q~~hM`b}ywc#yKNP4Qfg?A8r$f-2G04s+l=?;Qz#+qUiW^hY03QXa7pN@?NH z&&lUC5Y5-0HNgbmryQo2Ez5p>$uJMrlI5W_vK9Y<8KSX{&NVvyTn4-ZovZ-{^$Pzd}4qg>u!Q?a+4sM z9vzU{yM6lWj)xyoy$df?mrk!K!&bw2>>)$&E#&1gekQtKe=}AWfrM+Fc%nW=(#$i# z5Ante;ObwxaXW&V-WnQI%v-kRsmqw*s(;5F>^T!A)zU5!P{3d=*(;v5nBb@3_us4U zK$ScA02L{-w~jsjSY`D20vAF;r-B^2eKSIjbbebYNQE!G^pfty+WFmgdT`GCA^MR> zb64Jcqx#bCde_}R)V#sOSeWvVwcG8LAOL_qRac!(6n5^$!W_LE@t~7PvujKsBxXkbsg&8B3Zchu_cj@ zgb$VWDE;Z>HDPT~u*|2f$($Is0t3hlm?#r@OZslRT@r(B#vhd!)>-t>Q`2GuXCx5z z_a(L+sy)*}Rn9t3M<05ChWGhMH(hz7dQTdoXKP-j@f$YiiIxvwfVf4Ef81RM!T2>g z{~|lsE5Fztx&R}|!u#y6K_iE$|3`hbY}!QKc*Kc1u2~ahVA%H*ZllGDX0Q!|cL-ZA z4$6~Q>3`JHq;$^+d**CejbFGxZN3|Ybf2rDjKfc#_EkBw3Wj%#_QTrPk>Ef5^wWB- zUtbuvd=)RchZcN^3t}d|^oC*H`?JgCv7+c_F@o{z6Yy3z=@FIwWRCegrP`@%*T4kx zd-{lPv=`R>4(sc~eBi36XXgYzQt5;BXt$g3FH88mWE|>wkBDc~mja^dj*%1yvfGll z;`(-#;QKX~xvkuPk>JM_yDjdhuYxwmY1`UIN*D`gjq@k>FM2&We<<-E_wlzT_`jQ^ z9SJ_DI83U6Kgt~a_I*Nf@@=>bu?2w6qD@@+Mtli?3T2UQ91!P?ZbM4Y3n}I2)n=+${{YK()o0BfL&-wp~O5f7WrPth`QBx+W=L;|DDy)PF zqK?rr;dUV~CP9u|mWH8GYoxAcd-c%6H{GbmPp-}rqJ}vr_+Py2rf0)ByHBOyhd+Jp z9F;=V`RbRS>A808IN6n>V;z`;%S0aDBuuD@U`CO`y6&DvYJp+Xgz2+X_v$*zf2TJY zwkj7!;q}2^sPU_vRIL1ddiL2?dX$51dScLb{K1Fmdrr|CGwUZ!pEFNm&0n7J)hOalOHa5#cP);a*`FzF)LJbx{p(CbmJfz4zA8S2{@t6Ah3^hqe|E$Qn2Z z8V=c{$#bd{st9C3uE7T>kbMaBZg@Y-i{ZUOdx#b zyN%w`3l%}SXEvzQ44C8W|MCk_`{vL89|?ZEE)07cAyN;1K3IDavi8L*F40~$+@#aa zy-@exT3?S|c!^G|f2~B!ga_+gqdv>mXaGL=WBYxf8(!%^;0N5o2bvh~{7Y1dqMEOMI*&j z!^k;ou@5dvBi2QX8{$IU^@!lR8O8;CC&nW=@3z*&1UDk?hMj;vyvBGh%xfr=a`{(q zxgP)iD+J%~CC12g#O(?Y>xKm;la43Xm;8(8+uEPV&sVq#+U#*~d;J$*y9vHW;%`Ur z-RJ;_253)c(wv$&?|4O$Vo*P89K!5P~;8=7(2SoMat zXu`P3>ix`fs!O zB`6>wNC_$+NOwthNJw``$1a=y=Q;29?tZ)AmFxZ8|GifnmhXGNc_+@yoH=LaoHJ)I zZ^wQ#t5F#di3s9sUCD@PmSBDPOcS!j2rpJ7c~;vp&7ihIgI!>D?QZGi1ikpVNgf4eg@nM_xL7 zSyZdz<1u{xu4p2CG87Rgj*AGdgI~G|H=JTMj#1p47Y-?s8yu?BQ%)?bs!NMd2WnMk!7bDM zZIG$GZiHK=2Q~*4_`@FfrMcj#%gy5U#r zAVhKzMe+7dar~!ez58!u_=4LAJHNFEQIIwEPt+5>@?Lus&zl#kr+-WLxV(mxx>1Rg zWx=j%ImwRcd?pmRpMC` z)SKaJ{416#OQSuBj2)UIhELkdJ|_X>`#Y3~lg4f}V?4ui({ot+0)L^P_dAI)^Hd3#MruKEUJIvrsdl>wz6ZFtY=A0K*oX zf?Kr-$6cdCefyD7AN}$u5qVdiO2J*S9%JQXU@Q=?mf_F^a#9EzA9Q5ErJX5E#OVW^=$L-0iZr8Dw^XM zbuR|Z7kvl%{o&1O+F? zuit-*B$;V|r*stSL|*=l5}9OV{9N=ssB)H}9efN=dHAH}qM3Sp3mmrr!)XxM>th>} zoLMvBm$mE3@Iy_aLj?vUSE4iCBK`m044*KwnJ)bk+%CiSX6}T_aKt;E`)uRHLe#6V zpFbdZxF(GPr#UoU*of{CZX0db@6G}&RE&Cm$LA^qr=4Pah98Y`Wq2$vQLr(2(LFJINomxjbfJe)YgVG??C;HDze&Z)81W$)UdB{r zDCW;LGe`W+)K4yIVv=x|mnIqT+ihGY!~6W}uP}(r#wV0(GiJ+9TZIMPdLpxo?s&pN z5*ax^?YoW+=7 zAIsZ8e+2{R$G?5C(&)cr4xW3hG4|}(j#YE!qI~6wD3~n=2KMTU-8U|vVumcJ*RmDL z6nG4SYdwd_o7Z61`I9Wq4^?yI!|T;+!+Z^zAf^V3|3HD`DZ3 zUa(FD;k5hg1>)~Msynq?Kl9slbX>EDKeUyPLa#b6;KTksxS*tjgNBs;oFBq}NA=;H zh>+;LCJhWX9y-SHk4EaC#5g$qOC(`CFhiG4rl18UdTp@_zN79p_Zsm(>@Bd$h?;y3h zC2r1(;oCp2xLAg-m984+8KZ<_rE(Ofa;;3xtAzB#yDq0QmELQI&q$4_s&VZY+&Zo5 zzZt%D+usb|x`7`;IFEQzh^ruk6)|^yDT$$!gIFHqwRC*8cZ%ab7oly(LsZw zeFNU3DiD#DMYoty5n7|4IClztsK~&<1Kofd2FaK zw(}^`?O6-C$KH6 zA{Fvv$;w@RYTldvEppOAx?+iv*vR|EU#w6HcfO~HoV%n;sREJgvD`=%m<+?e`U3BE z?}Z7Ir=TIvZErdB3-aeHgj#iKV-t7xQIt~Dc=jpG`eHI#5ATar-_9W+j>Lp7$6)Z7 zFDYt&3GJV&i*28Nj;LVjb;$(W-M!St5?#h)_-)I0a75Y zUcG9I5fM#?*t)YIt_1CL#WW38E+A>zj}^2r_;TM~^nCJZe8>e&p(2G)vS1N3f8%vL z^WqEWPX>RO8Q*@hF}lCo89(pafw|qfVfE^Dn6Y&edNRI1(scN04-Nm$Uq+!EMR`fh zw^;x4YD}6q6%*))XUY2?;0h%h{=vFDNImS#zx$a&9IOeS)aC%{PUarmhe`W)nVKkw zYMLcON1;^Z((t9!B$|EgODT!A;;KhDYJJ7NFZIfcIDCrUC24bzjtu|6Fsd3#6=q)r z(gPwphMo|^IldtU^EeWMgaEKS6BX$AJ$Lv4#A^l3$ECCzsr%e>)~`Z?Een>QAaVH~ z=~Iv-H8Rd54#l-s?Pqc^K;oGjVwtESJnKG6ikBFU{b+ux&J2&-yl`tLgBx6_@3_go8fyp!Vu$8VEAmW9chf! zN%~;Z*3EdT(Hop^QJB-VGpbju1msM|ojaAu5_@vu`qMZrh6Hj5cQU<)497Fi)W+YPN$a<< zY{LdrN|zM}E}uu<%9ZfU<2A8p-W+5~k{lIlRiU1F65jf_2d0kx5^2(A;B952v1Zd& zdI1c_@YmnKA=);`A9^r%%;D@8Ik^d-E+LYzdNX`2?#h%bf#iglY{O8?MEa7uQ-8mP zMsSVEAa0PrWuX*e^WgqS!M6F(>OLa+4*Q+zk%Z!=*e)W$q%ojRYPw;K;4YM-<9q8K z28 z74MIjL5uk0>Q%>!p%$~U8{t3Yk)2QkkMR|G?sFlh0oQvp&t`KC+Ft8*!}QQs5ax9{DD3iJb@d8aX0_{~&Q ztyrGY1j3{-;fVzE#n1LS;lGdJ6Cyz$kKwz0;4*x7aS%IZe=~fyi~eoj|FaC=MfG?+ z!wISL+U`8y+%S6JBAC*~BA1wZf}ks76%189ubs2~_owyF8k;^rnO2u<06YK*9+j?1 zY_q{rh@0P-hLz#e=eT_pBNZW2Hjw~H96ZF>DUF0eZFbT)-|>z1to_D#oN~=rj|KWt z-xxv5+z&qKjjz6$OoHu;BcFVRbd?{&z0=p=Tj((a+Et_!ccx7RKk6ABW2no$V7trYOUw-$>827kRt~=z1I;fS~SHE)F-!mvL5n~ zS&p7I1K~RMH+?pyz55Q%@`#_aQ)hcPPOiRE<7fED2D)|;CFr;(RZ3ois`2N}*BscW zkNlIM=d2$vk}xSx-{voLiTS$-~_yi?IRH_i%xN;N4 zs#P=V{SaPW)R@MLeQ5+3KwAvc`x9k^Np1;d%u0C0r;i_(CH`rO_Qk1~=s{zdpkDpd zVnFjvnRJt2V&6mW;Aq@PZtJ_Wj^;R{c1TAa0ADPz+U0w#7~ z@Z@)1GL=(~zLoD$34b$uuaR~czM_Pz_D6zkSmTv0;iH>YD|GK*2>YiQK6ki0dv5o} zd(is-gyC}r*rXw)*Y^z)m734h$A0>0FGHiX#l8CQ5|C>M%9R^F+0yff7@N-t;YWYr z(X=Ff;pJDcXvJcD^x;S7(W)74^MVguxMO|b-FQA5-=I!1nwH`gL?}!K96zDpFi|NP zjy%4dImcswMnG6M3AJXh>4=%`7O7sTT2EjKMe)s>wZoO@P;6Sg3T^8*ps^P{{?UTD zGfxk6@A3f_j+=^V4eQ|;&$-jQ3wd+q$CNRj;k9S$A{|BgZRk4qnR-v5T#4d1ykRTC zX!W0xR_?ys!98A~G=_Zr4YKiux&A{w!`S9cadYQR+kuH6OZp&UVk!?0)e+%v8Ghjc z1(1F8}x;&)HnulVTY ziI2fOig*KgUGawl`eV%0sTAJ_pj@8JSla0$UPQ$E#0QgR}1J*9}Il~_jLX{?ofECK!YOr4-jM}sgE6*Oqn$N$&aT+}K?$HsuckaSt zGzOhKegbZU-odFOC-7d+?&#g370#Z$i20jWVbP~Fl%tsb=;6b(ksz#uH-d|Zbo8O$ zXZ>=lJ$VEf(`G`{?Hic(>KnL3k-0n;K1{I185xf;eGjwJV)y5ZXEAi$YT_OxH9ViU zeEM{h&70e^I3VLue>=!YSmfA8whoavdGrX%G;VCy6$_nE&}#q6jT^|%>x8e}p#x$36jC3Z~k*bLWb}52NBg4(PHL? z>KXvH$C~EJuTt!t((r}b6E;+8JKx8pXUQtU79CFg-Z*XLSbFE33*TS)`)`KtHM;+4 zhHuDhSZHYL*%d0*LF@kuhHrI{po@V@r+f75IXuDRc-N>8?nHyVuFuq?u~9Gr3Xw>W zA<0@lf{Y+2BX3zF!+-qg+Ssyn1BMLv6mQph3U^npB*Uj;9HVkxovBC7HvZS9#%Q2^ z>PLbgn9Qpinc~)MJ8*-9PP-&cToGxxYt@24>GoeZj}mzcV%oW*nEJy{7&m<)%4Nue zyxB5SXU)Y~ND#X8?~kUXD`Da6xp-(6$3|WzUDVh7Uky z=6$MWb!592jbWdU!h2o1Ve!hPXxsQrd@^Db%G9WeZoT`XPlM;+bCgC}+|i0a$&IZT zi4iLS<_5wkf|fsjK4hh(y6Z6L7X8&H;o0(KycO`}@uRqq;=(0gPAu*CF`|p-M39bL zStq##J>0iM%$6-E5w=q#|2Q4-L~`MjoVEtP_8yMF5YK{@jKsB*;3ybjJ;7c5k>e)~ zUY)^?upOqb!n;BL7!KQ+F}WlefqualxNbRiUp$XZ-~E6Y^dh*4%)Ilv@1y&B?_=SD z#n`xa7hZj>5l@5U!@wRr@In(_zSQDPyplCL_S20nS0?1Ffe5G9M?WrPLTKRl<*sd* zd-MREB_^j4rw_iYLx1|*mGerVe+-=Gt;R$8Z5uD)k#Ph+^x%a#2kFm1ZfeWqdkiaQ z&w>DnKz6?`7bLMv!KR_ZaCEPNH2J#uZqJr&sQFHN>eQXzm2>65f-b!fnIwQGEoit$ z%X=|zinb7Okdla;S@|p}m^w;*YZHO}PDvbp`_V`;AVYeKXB6&o9P$+{N;81V;(>VM z`4=#T{wTC~q*%hk@C~@w_FJ)pPq6^o z)ATK-I)BwFy!KWrGgAAubvx9mTmb=jv-3tWS{So#xrhl!o|1QU)6*9TaT#86a)>(B zapT70mBPj7pk_1s;=v+)s@_cus><$>00t_8I`I2~XTpZ^sNGgt=to*VDjfmfJ55+w zlgl^#+M~asMxNsM5!Wzk@^tPXd*JQ5wQ>E_8KiwIJ5q!s$LOyoAk)e7xDt97Ie9H> zmHKtj?86T*neJF?RjGvjWc;OzmBf2vMsNr0i>IG_9A%QHKy&JyCyk$k!F230l*gia z^dEp)FV@EgT|Y*%;w6yb)-CQTWsx3fH{r?anHagO+%-Nf;m~ugoH>v?S58Vd9Q%en zd-ftvp1f%H!&J=OwwrwsgQhjAU~rp`2*{U}aBu;}cKgT^45_d%;9-JvzO={VS?<)h zMcabMN|mDPV;bDC{53uLp>T#|e6Mo3J0-*LHTqhRv0fx4 zKQi)DaB%MTp%8gBOd^H#M+`=0N{)W&_A$21{(-*ixx-~Ykgd^AK@jnuE{OSW7HtBi9^8#! zir|S*_^NILB&OPe-UfajIIlNi3SzEe`jTKsw11k$p`8}~$ela;o1NXQWefDAp<@ge z8pd?ke>O>2jvjSGB&GLuR)5vpMQBJzPxr)GIA+gqaXgKS8diXyGKFcTp?cWYiKrsE ze4A(Nsl&HEb#TP`)wq)C;G78H0y`6>L5vd~$ZjQnF{(l+=@NLgs#L`fUw^GuP_;m# zQI#d2TmbdNbow0&JAeJ|4xfpwdHPoK`QzUr(r4L%$DJ2~P<1^hj?hwirlqD9A?gu$qq6ne-sq=#$fEV>iB(xzNO(3HZZzL|=kp}~%YXgN@V$qa#6Sq= z9Ui2^H$)+#x#8c<@HH8n@UJs`m809tMEnA|EBv5WFO2$TB2w`9&(EXBAbZ}N@TCD! z4AVr@Kf512fBDmhN#5j0j#0QwSzI`I3{xond?rmsL>}DBNle0K@_P@Mv0vm|q{&e# zCl&pLhqB%~w_@MMdtiTFp#FBx-u>L*1(9HKM@0f)qI|v+)7P$g?THh#C(Mkna)r?R z-S;q>N9aCm{2Ib3q1Zv|`)pZr;3P%WOXyUmQ2OjRNcBXwA^p)|$N;oz)*4f%e1lTC z^P+yk=g@t~P$W&A8M!j2LuI<=ZQrRAW{jPTp5J_dfz&k*8aoa(=Pf>p$PXp|xUivDn{9Qt3Z6dsx=sm3<(@1wO%CdRuR*G(u;O$vcafD1j zjO#}l6jph?AwuZ?K1!}(rDoxR$QVMr&iVZx+#_}YZ1OG8KrYW$^!pcg$k!&ys7#MmtxkR?kloIHO5U(~LPwEjE+LA3j4 zf;&d~UUKXRChpkA9X1^(5kKein%*k;@|jf2%H#q;3t}^HC37(kkIWatMbXqz(HARfshE%2x0&9PN-`aT{*6w@P23J=flwH|S4 zjAf1ca0-w6tta+JLM9%Msd`dtF`;(5!KIV7<8~wY?TiZ-F)Ek;jN!ZQS%19tX$%y{ zwDzsvp0p2U_b)-2qW~&Nvf5+@I4kGJ--#{B7`N- z$Z97kWKdofV2I}-V2V*NF}lq{p`w0UV&|I?ign|xJj>KCU{NiuW^j&Gt6RD8M?_RvT! zch<~UJ##uzl6li|fKEe_z?TL{=DVBuqd0p*Nqq9tn*16W-0bhBp(;iBQM}RX_jdRO zwCz6A0tK@3d_2AO?b&0@+i5004MdhtQSSbOhj58!%WX_JF83%t4O9jIAamKY2GuH7M9Y?Mp$R1r>y8{jlXp7e z*p<^bbMqF;lrN8Yvu2~`>&@}{Cm-VFhRv|&*nZS2SO|j$4#Zou=3jgA1fD8i8f$3v zU#d(weEY*fBsqErPf$M_%&Y1u&~2`E79w&xckQOL9*Tv%g8Dg4`ZOqBh`T*r=^IY* z`fghL@4a{#-BvB*?QRjgAjTKFhJKE;JW41Wa&XfbAFrbR@X_+|n3yjaXkfOiC`2!T zM-Ki%e@W38O>cZJXUheD8o+6H@8XD4DC<&n*8dJ}N0Mnv`g7*O1zfrE8?N!hgn~n$ zwfoW!`_z++(d`l;z0o`gArtPfbQa@dux0HA6t49wN<5Ys>3Mhkkng_7SG@Or^2pH` zKXweBdi6Cr)G3L{uf2sMdw0^E@^Ly2k_1A6b23R)WB4C~?H4X$$i~$uU$H7SY*>%p z)oLPts-zSa=@f|rk28Px?EDmXv4Jzjv0tE+D1tyI_D_nB*Db-e(`RkRoIYtVcFkLW z*d1Bw^q>479< zTF#t}CL=ZXyb0kVj_8IP?gITnIhzxhvK8;)3;Jh}9x7y4pGEeyPIgOtMZddJy#Fumfe z6jjJzY4uF$otxh3)JvAD;Kthzi{OW+em71y#)K@}5xt9cIO-z7=4R42Gb)`TofnK^ zTKyDcZk#1`(mD$Xci~~Z6F23}5Y!BD2@6W+yIPM9J#a z=>I$lkC!Ncx%4HkTi1f=v)zZfa30QPR+29M7ooXv_b&1mE`(b&YWwl~X{e~pE5(k# z$M8jNB6vr5NWr{_OqU7)p^*ruj$XUU*fAhL>OZ*(-Mn?1-OVnMr6m91Bm%r6hQ88i zWJcyXjhC*xSfM(moIZx0eQ8Y{9gI`kwjyBtdW5o!thw?cN%8!+NH2Li*KfrY`be*o zIR`FgOpOLjnqoB1aQ7ZH0v#H+z-Qfipzf5QP>1#~dkTPBY|I80|6c>CEG>%N1CpXGeu1YD% z9%Bk4d3^27d^{U|^SZo%^?tKT^;wuC#J2(iFP@Gn__W|c8~ z8tt`THVerqqF%9d1q#%whf3KqqDiKFDA%tWidU_M&NM#zVa^XYe*7#}emxEuPXC6B zmoH%7{sTG$iZC)bS;!mOvmfOpaL;d7(2p1Byvjwwciic|U7`%C<)l|TbC%=4BOHpI z^RW;*4_Y&`%ZYQ2SpN>yIPWg{9#<%dkf{9~I?)+KX^}3gk+1rMK{Un~Bg={5qV@Go z?@}$Zl@{}Kn@d$ypO;=jyUNvA7V(uQ5PW&e(-v6l7agV3QPKN?;5CLHY3KceGH2y9 zqQ^o`4Bb~zvTS)AICRLyF>lr^*tmEp63OoXRWf47!Z8JBI2;D(wqNk-g?dJ*6z@r` zEDY`&zURC97`~@3-SU*f#>29TB{Mh`|2c-Q{0V|+f+~p{PLI?#8v-2!uctjb##Duzv z^M^$X(6n7UJ4gO{?OGU5>vo^aJQGYm?~!Cw=JAdFq+Le1<)zEpaNb@v z4P|&V&X;0%*Ko@^*!x3tj^g>ik_Ac3xI1C`@U8bVe9lN*`t3LD`{e+Kgd%57a&9&0 zPd&hM&Yg=m8o7PCZ8bh^+!F8nG>2E!eut&&*5TgjwaCUrh0ZjGaDn1S z)$v-B#^_qM0*-PY`f87l(SP(%x@P?XT|2ywAzgVZVBPxY#q-mj&7FaA>9fNB@G*?v zza5jmpN-)|2BLb2ay+ti2WQw<7nd$UUmEUd(;}jK^wiX4RrFUSJy%ahF!E zVma;@qwGSO-MjXn3r{!fKYNLy;0TO+r7;?{egpoxk?>y%WD>l~z@KgRrOV-R4eDSw zFA5>qPb&_n*o1ZnQTWK9lw|l7gfiO(Z%jjn>*eFRpM;jC@10>&G8B$ z!+&SlY&xPziUli{BUhEm7~8oc(wx4I+to^;Q>QLy)4mNl@dU-74xP}XP*EJ)u@y&8 zouEo7h3#e|s3@1&ptH;5TqVQbPbWZqc;`Szo~qD2^!0P)#+zKAMrfxi!ujbkRofo7(Y@L4Ehnr4~S3H0J&G3a579J^vZ^VH}V8}0I zcmx@~$bs4&K`!2zI^Hj*PUZyiMXz_-pxe705tSk-chrGW^pn~vDf^3rDUcTC7s-?# z^Dz8bQzxM^6Zp`>ok+CiTEY;+Is$TL2eM@(VI>j2bC)}O9c@dn!>4F;8@=mYm&G&- z^4ELTubpu)RScmNdtRj%x#ee0qHD_*X!zL(`oG_XP9JqeWl9^8(D_XaEeutvE2?%9{3{00pg;B_8nyLM zm#tXIu5Z@J=189o8y)2dBT})bV+VNy5)%eW3kHf5JlsnL?wz)N6FnM%Za*k6OlXj-pBAST)sl$ z_6u{7G;&4#v$CbZ#VrVEdb4I1zXo%(D?Ws2}uEnAAB4PM4#`m66(u>y~t1>oHI3lz8Vyf|$O z0$5iZA&u(+*-2F54nKe@l1LsQ`+VLkGOe}j-2miBmlA76j6hP}geHCWzaDgX4VeZ- zzXf@Z`md*s(={ycMZZt*3LOAN^XQ#+L?V_C6ZRiCL_hlMZ!#A@jbWlhWd6hlW%eSd zVk7c0C}t{#pEMvT-dQmVS@``q`)ks~$>`qUZ3J>hKKJ`M*g;GC5raoyB8?@pQJr-0 z2;t(W5?p3Fr->-o=OOfr%n;U_mKa1 z%@lmP+($iql}3s0Ecuc4AzENWqf^sn=-aLhch<68A;Z_UJYf*6P`kPCoHz9cyfSL2 zvwLR|!p~il5~WKX%$p{;NtZ}JWgNp7)6z|l_Xoj4$hcUG6yB2IOA6+Q^n+2NOj$}* zel=T+96YkOVcBvdNgQlf7W;56aTdoG=`wov+geI^ZLTww;+@nk0=REj3g7*wcK9y5 z){x&}_=Mi+d$vHsU_ZH-ww7p27-?-&ve>kqu5rihZ-(#b5cUxXY#ipqM*nv|2xObw z20EW@;57x<6fz1uIq2?*V>%^u5zLyb2ohyw6{=X759kTUaE^NrC!v$hYG7hdnO3jz zvON8>3C8jr7`X#f6`l}VcY?Z{Ho1wcXsb(ShgG%8aOzRHo@XUjIaZf`I6+ObdhDf> zT02cAjz{fyEbAsc=vA*%2dBueBWRJob>2@XRJkkyr59B@s6>w<5%i}8u`iG4$s^cr zya_EI8U8JLbsIBm5E^Erp%Kr;i{VQ@s`je3C=xhdQZAn~X}LSjMX99-8>I?7E*4E) ztr_T$nVSVWx%u`TyX>-@Fv2Ambp%gs_9w%MpyhfX*AvT*9Y?|7CEP=Py$nieu`(ggAG4H=FLh(+#e=T(~Vm+ zM3jBPRW7D(-@awzAicifDa%nC1-q>OC3e@IJcP&Qx~!OsWE}4a^Jilh7jX?}KpB~u zJJfAkQ0ImEC|jf$mVY@B%RU`Oywi9|9pTS|1hgw5!;?fw!El|W>IS|Ov?J)UVgY)0 z?2L5TvZHTL-mv#%eHxK+hfg@Hv4qJTgM@9=Wj7IAyh@KRL%l)U)-w-x$~^WrhX#aC zmMTpgW^Uq+Azp$4RI=1yk-WE{+ef`Idi4rBvP#7VvZPFk9dse=>(66}v<(O-N=tv) zz=$Wazt~X@dCV$r3c?zeTB zm^E{|CAc(DWyaQLrK&Ec0_AsLvaF0(hq(|KII(b8yzs((E!eCeW?^vP)oaz~CUV}{ zZ>9HScJNBc9+1|P<*)qpzsvABV20R41RFe#x(%if!$UMQ^o9)l?dXObWKcfKOKcUI z86jlcgBIdqWO8oeB9a}`@gSATa1qZf&p~$XRJHI>Ixilry5L36)e3at@S?i-apw zdk7dY{1QcrBW;=_^kx`=7lwU`otLf{J~Vy&aeV$M?IoDU>>q3-|J;Xg*M}}&eM0Cr zfoHk1(5UbVVU(Eo$I)Z)M5YV~KXb-$Z!A=Jh#;KO7#UM%`C8C~lR4j{bVTR%Z`{0r zI~4gxQtcw23BgsLzm_ z5|0xbD9$$`p8z1%#|kY{ZPVO4O@{v=@2v0sW((AN<25|NdmJXzd*0G%ZrGgQx0)x^ zN*MfTwHHR0k%_6lpSW)q<{mm=`u8MU1?^t4l-~T3nWQF$Mti)fFJX44eB$plN_OhK z-2&UsTrdf=EYqJWTN+=#*_8dw>!i8R2`rWmF-hsSLQIhTV}240;S&}sNVNK7odPMQ;ZD3V1u)An*SSoi z{4xes5d5MK-T=h5#ej3$>H)$Q7?w5e!-dzAUN3BJs8IV;Kj@!Rx8A#L(etAc{(=mj zL+2ur9yP@LdnkslQ5Qyd1!MRg0%XxbTu*QbjehD`%X9q`0{^!%e8H*fOn;(?@b%WM z?TA=zdO6!ir!?UK)Is_LlK5ogr67FfIeqiwMxrYn?mg~qOO-2)(?@yv%WE%TDDS9` zI?i2)XCm8NV?q%U8D0gHF2*BDbf97plo!umCQYQqU?tFL%>hdEQ>f z+a#IElRFo(Wl4`~5z(mKzYmV^n49ovWUIDlMM;I@pq-udF9aiuWN0zm9fl`Og6wqI za{KmO>cyk6a?)g!=0YHnMtfS2#9{6qS7;|QNGYv+_NR;M+F|Nl1l1XL=-BAS_1n07 z=`yZSFQ1ggdc!uZ!Ko{kv0>eMBubqY(N{0yIwdQ`XgrxFc_J(xHVPZ2P6x4qKxnz0 zAP9*PF#I!IymehoM?PGT^%y!B>2v19XEmQe5~))Nn<%<7?;hNjnvYSGBqZbIL~U2j z#W7xqOOAw^WlH16@n2Hp<&nZYXvNRcRfB9qj;-5;$2+&f)w^;>mtXgtr%7o1;Rv~dP zrEP@U2@ccN__&PAx{fcc7xcsa)HhCu$M8LIV%DC7PCov!^eWerMqke2z=?6|Q$E3G zFnFbYD2C5`N~d6LlA6M;kkKkrb@IW|xcFyjJaKyCwoU2c;Ib?Z!&kgA@lRzay}|1# z!%6w*eEzi^7Zc_NA`)CXM!X z(waR&;su-8)V$J*pG5i-Sm&e>gRqggr%joTmaX5ymxBl5ZAuv~A3JHgP-b#=5MoID ze^aUp8c}6TpBcYUr(8a39`2reFptD|{PbyPQnwD?$&wdeT{wZVCCl*2)%_@VI}-hP z{29j%x{Fp3*pp=e=3kr3Kxlz7s-SR zRIb9dYatbd9XxH2hkX!9se|{WB!5)A5nGm_*KBAa8uuMN za~$V+)Nb0LeOPt;5Du>0f*^{beYgNs>@S{ zyTd<6z555tenMC7q)i=F^uK-5O_CEp>6 z(kHcT;-{bDr6+6BCxx>U7yHsQP8hT>y~lrRr!AlgXb|p*=ThjGn8UZL&oD{|D3Kz} zK9qC>@*F-5UTlFN&wRpthb_i0Rn62qQ3~7PXU@WVAUNMRkQe9!pAcD`5VV+3oc`S0YSBaN@L8~_Z`Ilz+9@Mq3huh%`xrh?>CsY?!KA0xLc-{TCL;gKp~&6P zFdR8@l;^*1@l5tTibegXy9~rQo?{<3v@doLrkT9|{YCn^U&#CIU(1;n7mpotCcaB3 zG-_n{+P6*HzYCrF55#-#wZ#WzA4jqfUrab~6w`lRg;tH5qH*FB7{T5Bz>!~IFx~Vv z;EsGW>w3Rqdz`0#`$&3Zt4epZpKaKJ!L^^p@t-&1@ZP=1PIX0g8p)kKbruJY96=>Y zK9VF(jKf?c$Va^l#ge2-j`AgoV*Qchcz*O~E)2q`r}n|Y*$a>^3vVCfB{$Z7A>5x0 zM&YG$^2Pp>XHf3B24*=QNQQd&rv*sK-F*xfQYLkBXy+f+B<5ucG9!u{8;*c0vIgcV0t0NH?lN-PJ1}g^-Ll_-4 z2m1uE)emU5>SP@XF2g^6CyWe#9zJT)0^N8GaHS`nL@ioF6w5$QkJSAOR>AapL|lur zAgVnUpFNH-ymW~|aikzTdsnVPDmp-tZGtbQUJ}7e)pTDVOfk1_;)6Z|FoB}=Fj+)W zO;s#&S}gnM6FP<>o~mC`r$R{K{9OF94RVppa!s0LY&(9bYNj!K_F)9`hDfB(MYfpV z4&qnE8a1dgk0m(pWx~TubHBt z@#Ui-j72yf`Yogt>NpdD6UZ=(@s`!eZ!F&k5a08kgEU@c8U{M$i}2~6A*&U_%BhF; zB(aJuzlzp-2lx1FubjAek1UNlMQ`ME+M!z9z$X>u0PRMS{wRh1s|9MCL#VBO?h?w^ zd>8;TX{QL%d63iqy$Wj2}h4t3R#sNsF|JbK0y@*ja7bzKw}Ax{9EPbmP$B z$WJ0=4dhvPIX;VFhG-g*1sCJxJBgDbhE~`j zopwbijh1fTyp8Ljw{V5_0%6=Gj{JEuKI_*VN2qU|Jbn`DH+cga=gdXJOxbaPOxf)t zYoFU{0(^iA62Gctu$haE3S5ZfOA>?yhfbm6%!!yb?R%u%u>%`U9>XB+hC4QGjn+l; zV8qI`ypOyBa#pE9yMyDXSL1Q?o-r4L>et1QYqyUin;e@Fl-mMw)J>3g8Xlqqar6tbmGg9D3~5moLv%+kh4=(GOGH(uug3^X_l!SO|l;dkg)x_S+>F?zUKgufn!ASOnz#9*YR(Aj+Tv-P#% zFL6S~nKarAr2$+p7iWWcrhVX=CD`@j66C5?1LwHoFHoX98q#2|d(EeDc;0+OBoCnz zCYBsWx8oYG$zt=3xWs3vl*I5mFQ1Q|O>c+7p$4Y zPtD5+(g-p97>crFzcPQx5;S<}C8l@i%@Y+X;m7IU@`MN(J?VkDoF-f_&fB45yn)NA}&NznkUAt3~nhl zFIlhZCX`I91*6&^hOY&icWrv@`R(~uez$HG;;D=!u_*gxadGjgLi8lI9OiIgP-d0& zD2D$@hOdEg5kRYR=L%WIX_SRaoJ4V$;5^z3y<^Z|+fGH#o;Z7<4`C34;vEDLQjuYi zAaH8fJNLtdLG@ZTue@#=qO~z!7r~r7T>P^dIBwxDPkuMAeVcgO1B>T{ri^zm zIE?_PEQb)ND3_U9zoehXR?mc<^DE0Qf6w_)x zSZl33wu11Ak$g*0c;m*6c~%%`U+qbJ#EVS)XrZj5d^)zIO)JmSA*gH##{h~V`RD)& zviH!b4$o72ug<;OknmYd=O!8J;r&N>s^A7jQItNCcc`Dumj^=z4Z#~cZnx=&S$H8U zJ?YWt@4mpMM*2rmZ<`3;oH@qpSU<*)9-YxBOD-Isi`!#G^W%vs)$o1SF36rH9jbJA z5A)~GLf67&FlzZC++s&H>cBhPc@F=@`t>n<`VZ(?`zeI&+E2R#XA$GW6AXubJ%V#* z&+rId1!EXeQEb?-k-IYzX7)u{)-il8kC81|XuIT^G{*XY>XQKK*|nq7BGCrrz6LyG z1hYqSmm17AeEZXUG;7m_xb1^9X;a|D!lek?vYBHen*t4}jp*+e%&`_UMmxEHkeglE zd&E#0BN*>c`f`xR5ewwc&r1n)jLu1aozj>KG~T>J5%i{G$Ix%XN-Y0s8cM&?2%FZ< z$K$nMLYEG$@gz6U*VtD)_Q5)oSG6Swf|0nU;4=J6p`mzp=|X(kq9xuU!*Ac>ZQR}U z3tq~Vi%yJ)?@Z5wpA@>Y&mF9dS7;P(7xIY?L~D8hymc#_{RK3uTOVKa@6V&6Jle5UH;aBBVTg$q&hlfDRJUAmY^*X#CrxgpwBtU`3B)QouU zU+^)yqfW+tCeDk=^UsX;;z8s5&`4-Hs;^~l5tJzlg$6u^8XSUN{rjOm=cM{ato$|J zmN$;aIK@PDag)&u#ye&6SM0bl2cK<}`K{j7b8IiWOxP3QEDjuoZ@9sBS%@vq`KeEr z;VYe$X=(Z7#qf;|DKQ)6!sLD{T0y^Us>Hdh}GlQo* zp-)_yD(k<1;Tyt}x{$)C&HH)hc-g0)CgI|Q;7(-4_^(i=bV&qdp&l_YFU}#^v`$d} zs6Ct@5|N9ToaAo0V5t(gcZ+Uz)6jX%hux7TgcOt$m>WFq;7OuLTm#FMa3(Id{n3$h zh<^?LOPF@DNING^$CvM!h zj!G3OaHqn?k%;Nk!I{%M8pry}RH}+j-+YZ(bgL^G*Yf%2F``dzP|+!b%V@-kIe+>H}& zoy9R9*aun!2PR6+8zOo7-~x?IiR5d62*0KU#>cj24c<1sDK0>JsX}Cb(Jfh{Q zU*?R6xJ%y*1#@x%zyxGaTsP>Rr2B%VK|+S_L#Y~dKB)V`i&(mHC1KJ+8tBe`?Aqa7 z>lYJ=bCVOtRJ|D($AkT#vNhHkOFiq`LIQ?w_@MMmiN2l;TsaUX+0R?AiXmQ^c?%!E8Tws!?$*E;h|f*6y`2phSyrP zCNT*>2(R$`dD?X3$;ms}sgoANH`%<+2~R`x?6!%=k6O}rYT6G!^6YdN8t^im5p;K( zoD9Wu_@cPJBwXc7&|{w_HHj#_n1xZ?Y$8*G;Ez8fxrv}|)SnlT_(X?d@WNGS()1PJ zvHW=9m4+D5;}gu8GZQWI7smza(C-U^hlD4b@?G3np46^~c7 zaF`L7e!GetJ9p75a)<*TVU*5T;@E6l6lUjnf87))Nt$!ZnhzHT_i*y$DIBE=rOi*X z(62>1wElE3rp=g&Ce2!5LhqgweQcuEh}SH0p{boTJ0M>5_Cs+A82&XHBetQloiVN6 z#+!XV#)t`DV-wrioTp2|wJ1?~<LxBY$VeAY;H68v7b1vK z8clXv)Jge#l&t4{g!+VGCT;MBuU>&Mzz5Q@p{<_=GT7 zhDYS%Z-(#S2l0dtL<~bx4+=U+?J#l?X7MsZBo|>l#KlD*?GhA}&JF(!3||)VHW5T9 z7>4l@nO*}1kl^?sHC^d$BvZ?rHXRv$RzwFUrf0oiBLte5YMUmONS0jXlEUH`E%Pf; z1#s=`Me0Li@I;>c7}L5PQrg5KBV!r9G*^qF&7arkCfF*Avs!>sNH|Dj{FbEjQ{FKq*ga6xk9*ijR|zW&TJ7}LBp zB2FDM!s@575Z?ZyK)99Sx2xCb$9=y>i@!)9xuf;vIHXLT6vc}aA|g0;B{JI6j$dcT zeWkzP;GR5x9yLY`L9^;lVc-ulFm}Quw5KP#iQT%xm$nUwXj?#2Kgy7}!?*Gi03-zQ z%p)-b>C|s=7v5^|TzvJ;J9zQE_c4QK=VwqV^#N~4yz|>NOBdC-r+9*XF*rb|m4mH3^i3#u@ry08T*8M(=$FtT{tkB-I`J%qc;=rsJ1@^kffyb|B`d_Edj%HU!6aRtOZ#iO4r?~fQhi?v|wR=N7+f#dfWz5}NizS1*?r;xuH zKD&aQV14Oy>;KNDz}CS2SslKx(-6kf`q*yplxsL*vw-PHfV>&LdP(UmKcC%+@ZZYt zjnR^<5n#jp4n2F|D~fw{>@HpEB*W93vaaE`+fL~@K|{4r zUjDLr{xZDSv@ycDB==|h8$8oIq)AJ<8s*V5#s!xwMrKP7eL?=XwPP;=r3>Z4<9^cj zV4PFkIzbRgLhKt8irG7l;&xhpUUl0E#VeJ;xBW)pgQ30A=ka>Da`NPTg~-irA}VX| z^1_s05{jR8?m>~(&GF@wFEFe|JzO|^35N=1MgAfMabV1Nti5y!bC<5e&$N(U{>4b- zN|hPay0yol#jEjj^(vULVI5x1loftl;GUkouMH0qp|K6*#V?n_Bax41 z@bBE=u}6+`=jP4Pxq40bUAt^Vndllz_V_fh}tx3P@(F%0U_lXn}`z)d>A(OjmJJK~GO z#O^DUO z@%h?qgqi0H2wyUu-q`xl$4Hfu&W>0%rvs%vV$NJRMAP7vmim4vQ*s_q?W4Yulq*3{ zpC)AZ;q)u8Y}G2djDDFga3R9QPNpc+DtR;3Z(DP_{-7NZ6J=%GD*XPhnMtT^&rQtYO5MySZ2L($f$n?iF za^GwKd$K0n;k%{SYn7`)J!Qu+d~ZB*_=3`i+F1@yAqF$!e-E|?!TVQ>`=4d_?m%b| zZ3F9t8S?sO*lvkDn8as8bj1l7n9mR(Ha`)81mi(LgiX}ItojX+n9ly3Z{=|jJ{BIv ziFmkrP7xDkjSWIp5h`zKfWgBQn$WU>ReH0AB{6c#cf^N+CoaUcg;BBT^xE=~FpFq& zvdiDOb}}!uYL5A|6xS9cCq1#Pobf$U^Xkpu>^ba6R{$BlZn=|El=PANAHt;mx_1}R zJl8GS=to9Aci}v=XxWw`?0Y2LwDxb*7)>gaBjKgoGf#E|XUfj|PH!W8`#$%w(NKYF5U~e#7zRM_nf z7KO9tFJnLT+M!Y5Xghx{ZZo}hGxJA{#N(6(&@`JnagOmH^n?4_(h*tg$QOS|6dOh5 za10F!g3_eGK{^B~OX){Ay&-CR#?aZ&%W1N3T!?3a$t~z1zQbv7c>Vfyde*y1DaJip zR7X+;kt=s@q+lBrVu(xH_1mcmZh520z3y;_yMwBXX}fmg68nDP=ASYByIE+_x(&uP zYl_5l!V~11gfLMIuOl7*04jGJRo5-n-E7$+%4B$JQ+{s7`&{K6y^a zN$jKH9Md{#lDO7t&QfcIal3z^hrK;!-;lphe%d!oWw&TvsfXgyb5P7`K7dYc{E`OY z{Ho0;%^M}JhTkD$cNP}qa%IOt-uCCRad*yXLFdEEc>>GQ;S`U)vQr3YDob7tNYl?eTZ3_+g(gG_}YSHqRdmBHe9^AJHJPk+$`mL-@~r~W&EEnpQc zQ+A@AcOq%=(>l-yf8z416wMcv?Uv~&nLjN~^*K>SH=Q`A2UM>c-2D2sRueEcP6fo3 zB6tOZ0r)Zj^T^BI*89*0TEw*-xX@V`ZCsU+NzZW^5w{imEV5HT?=>RIdU0u*O5HXLmT%1 z&hDP+bVfOvB5D>w8b;se*Qn3rvAJOr#-kVg)%$UAkTpX}tnU0Vl5ltJ@6V%G6-y$D zm!yRMdeU}3b|#rb@u338h3t$(PD_bMoV$7lFN_+5JzP9I`3eo+x_*Q=J9WgTHJ(H$ zciJvdaT$fIs6~Kf%%$CFD*E9cd2lltH+hRU?X5#4T8fV*!=AWiG2VUtWu%~y;H$h7 zy;QwAgf$ZD7A!^pZ`70bxU6ZCV(Iq1s7(?6wsmW00iV`f03YLSHjukuxtJ}=v(gzT zBKGBCQ!v~Pi^R_~n7d78)sAX|P>zK^8UDgAK1b!UrI}9pduKczsy{3daaAmw#hdZ;;tLqVn0p2BR{MOvsQ>qFWI>hcy0iZ90M{nrq@#KDY*LBH?C8 z#yEq4V8~%oBo`UNnV;!&DD++^cAPnnMN}m$UbhM>H*Cc#JSsSfu8Pxy-$kH589rBE z+^^AF)vAvWUVilo&Ir3 zb{M`7hHu`E6{ikczt?=CI)0>aV+<|$ycxdD6)s$2xPXzn;(JtA4e#3zpUj!#DUU#c#Szl`@>oLB9J5}KzBaq(Pp5HS7rj*D9uIO#1D zKhy^Abc%P=@H^07Bo&a;>RDks{qm{*U>{jkS$?%oe^Iv7Ftl0Ya z9Lw;T%IaofEtE{6q4$q)_?zJiAstNTx1p$mOwmfQaM@*wKUHAHf^C~x}u^YpM+?>_iZlUPJX zZO~;rK2ZV4-?J??t=Wzqefppk)d}xWtlPa*SsDe(v5e)2EzB&VdAv%FSw!?wZ~-#o z$bPiy+zAtA%|<`^;eY?5foMHr3?>iy9NB4!U73FRt2BIx?T*1Ow5mVz>oMM>R|hA4 zrOV%|H<5q;A#C}1J+H;39|1N-XQu6#6syjaBL{Nk$VSRShRZ&Q;eul0mMyq?>n2+A zTHG)re17dQ|a5|NVZeP?|sHfr9AUNRoV@9#!wycsS$nRly>&IYI*;GgSf(Dmts^m z?}nl8niW{JVi9(qy@Cb}8({F$^^q-5_YUybr%$-U@E-tx%gk(nqVXpT;jE*{{2#G& zV1JaT{{nvFj{Vg-wb8SDRfOHR#r6>n!z_ur?`Qald4#a{s@2$X=?s~$585|thJo+4 zr_?7t!xuP`yqV~nHXOGuUPG<78e=a{Ea(EBXf6c&xR_n>eh(Dkb+}?6#%S0t4z6;i zPUA`cJh=%E4I24g3yuc{!XcGTG^JN8lKC>hCv^%GC{zeXW%I&u)ME8ZE=*qKu{=rV z{JDr=QU=aRVPGuI$1!}Og2AFM1muHF@chFAhUGJRO-3O@U!JGOLBQ4^X0KC`Dd37GA4rV zS;@eq@-Vdr#hu}iG*F^*oJbPfO6SXHpj9>3z0u}9)!=FgWbD#kO=a|GPWd)diX#(2@>JYkUkv>6(~UQ ztaQ^1bentN&=DLxbsVkc&Bh%~Gv=Gz=Myw+P!~So>=R=YPV$HS6m1g`ClBQKkx`J8 z`BKX8*|cf+aL^z^r9K7@&-e~0&YY#{g`#s(Q@g?NAuG{B#09SbjpA3L_5esTN3I^_}k_?zK#0yql>qK#n;KkUyzA0gBKGQ(F} zjIIY+xcTCxIa$bLwHGIGA;agPdJ}s_hTb*< zI*H^(_(;<^S4Hfoe&bERkdw4Wxo2$Z+`WPuaQ{ z|HA~01+!5H&ku^`BS>6lu2_YD8r5lFm>f5Gwtqb>?Tb>ake>Q*?WV+}jG(aswZXBI zAj4o`K}i!KiGLz=*{~E(mwy}$8^4BMMt+XLv<;|Mr7UVDPlaT(%r5&@GZK8@1V!X) zcm9kwo43cRWlK<@crjcUKMA|{?IDqlLB72C%;8QL`%^SD4c)4iWEwdia)Q6@cy~}z z&~C{BE;49L$2JV2(OLVqThbewySsPr%#-O4ztnqX97@;60W^TScliRotq^MP>4^6lB$3RMYV-LerWz4suj$^G@cU* zgjZu?eMBh$3gtmi>hzi=&SF`w;y2NLDb9)w;ewHdGCt|kmvA#=>H6AH9#iD8m<1(qwj!mH25xFN`n*_l&dNo5+nsz>vo~od;2zoO+=$tpF?6 zDbrJs=gTeICWMvcyl~=$cuu5#+mj~Fed&b2-uWDu-E>YqO?M}_Y26b7LiIQ}2(#+Y z#Ab3`b1SiH61FIRzzNrxaPpI0+IkpJT^%j1FF#PY1`CN0n> z(t`Z;H{QhB<;!uJW1Nm+_VibH!=9uOR5hp{B;wP*2r{44sZt_u?wq{ME`<@58Xxz- zGcPwnDq7(;PM-p0Kk7xF1TBz~l8^k%`y?F+>7ta=beH?{wq0n@;tiZTc^UbW1>)k& zdDymP6HjX;L*bI8aq;X4>^*surxbkY94HYg(iktA`fT-$M(Ez1aO|R;K(FNsu$ecs z`OpV@L+YKU3>(U0_%}_guZ77&^^T_lMHrPMlIP$nSVBO9+azC+cLFf%9AudiTUX63pdBE}1V+GlJcBs)3OBZkK)M^5uIF)11 z&bTP8y^WXNyM{;S`LD(BHL47TJR}58@L-~bTz^6=_l*#NlgVVGLK1uBNyo&7G@i6( zLiQhF_+sE9LJlB??%r+iz-I)P&jzz+QkX88&kn=bS{4BuUJIS=XG!wB`)vfPpow>zZ-Ru8OXKU2|5lfJ%-6f`9}8$$9d;pKtX! zckYb1qU-bipP$k&_ngzAy1Ki%tGl|o`cPZV4QeHg#A}O;Pa}J+XoDAfo zX@44pGuQAZZ)fnrL3zjZru=wksI`l*e)sarLlAow+U-XiZT${D*z=9h`{fVe4Q$U# z<usY(_0lG*2k>Fes&YDg$rwrXiLI3AUW zq#_rE!(8+Z9>Pv}PS=h$Z{bq==gBA8(F1O^-YAu=`Q{rtqCq|DbNAj9T!j?^%X47WRWcW*G+aSyK-HS<%=nh;} zRmI%OHg(zzdx(pA-v4$16Okh8*s6_rwBuV4h_nx(QzP&bimhIAE7dx~;6FZ@OdrmDBS`G}qh~tt!=-*7y8wz4Xp{Vz7(lRiseTZt!|-*KR7Q9D4SN@u z8P=d?Rh#qKPz)zYG!6#-6Jg>-;F2gNHZrR`3?;-oh4WvMrYo>cIp9x!VuHscLV0;| z0!5#^i@9g_=*Xm*^ZPzUPzH*(y}DNzso0K5=UC-9ZfNX%_~E{K7c}Ah?4yIMFB55> zaD#{HSY`9_Dh|oj*4|Hm7C*fhdPY6PJHyoPVCZ@g{>R zn#}_bJIXFU6w|$N)yEb7i=KiU25zm`b^bV$+vu*re*WWcy=iydal4&*Twi-{$jjFJ zn{Ry(6L{fR8KWmXu{0+!e>xMFe2$jM2K?H!YtS=Dv!Pjq_Qi}T_W9lS+fz?JV+Gy2 z*|afZ?IJYo_ec9Xle_I#BCdWP^Q}jodID$1>sf|G`I9Cw(5qfp!LxeJSi06e#m2iX z1k$*;7f185S$V6Tz34FFY3y&mHf@SMF>yRq#;s_q>gEg^ZndgmoCr;DK?{+8rgEbC z535+{mPAEtQ)nxun0@qjkUX4sNk1kv+(rnf_wT&hx*>JQz+S%(#+o6h&3>f|18l;k zW2fNz1`C)j2JrI`FZIr|(&dso~^LA#nkZxSt2yy(|kOJ>3vr988Htj5QzciGZ^+}^)qEE z_uVr@K6B1_c3jskexxp${jYdY`-q{q5fX4uXQlpEETr8$_$B-6owwWd*WO}}JaWJ7 zzW94LJ1V@gQFLmHlGE1B8*CG0l>PT@m|x9fYr>7Bpi}qi##Odx?J|4m?uTv8+yAyH zO`F;KZ@+JM^xntz#cXd028lMIr1<)EyK~HNuP0T*sFz={uI*ZTcoD{8 z`rF%R_4_2(>nzRsA9SGo<#=weLowAS!V%MrQiVEZa+#$SzF+-|1i`tW7*Js1aoq4! zTcDf57Fy-DyV}0{?}wS@ah^sK)kAt8VDC`I0w!~Eq3NhGk_Cl7_YRXe4=-)oxF{ip z(u6Q!;Tr9lo&JQ2<0gZDg5hs3p3=nr@i^<>!dY#CbAQ?)NGYh97!}%Cg^SaBj({P8=foml%FjUimuh^Q}7B9_*0vkMsNcWcX@uI=k<=I~C}MCf9!vR^&tg zzkh}w%B~KlvMyM>*!C2|-y(~6>DCpI{--YmhM&dJpc2kiYbDA^$-o^~6wj#I+*pR{ zP~WO%Rz!2=&9eg!JJLhqEV%uwytXPT!Mq30|JK;Uu#5X$ zXVoW-wKvkT>@zH{UDK((9sK9hS$$SQ^qgm}3?F4DpLUvUhIuuZGQ+kmoQG|cN=zoU zSk+D)Y{i5r7~h%fD@9Ev_U_e-{9t-w_zdz=Ap2&)LYu;kf7fHjeG|tTi=ny4IZk-i zF@JLLcNm;XY4Rs)%j=s}JzECS>P};Yov2-d6=^m`SvF!^DBU{jwYM$({(G1PjIBp! z8+_j7)SX2BBo?jf`D-0wdNEctxiN=I$&ppR(?%yvke2GG0 z7uD~uiIeT9i!SgZm%7GT<*Q$@ntgD~&DH{mimXU#g6B*>Vq!59lCd2ze6EKCDnzGo z$d}-8M~X93EvgH#!pF$fd``RUvH!kq7@ z0vkN_2Gmp+(!~DT)8sD`I|YvW)9-|9?3{*}*a0>63iab3biW|t+VaZP&N`66MFLYdaDXPO#S`k^~CsR*i~W>77X1c4{l@r} z`rt=76jxoZY`9>?F61l396z4;=m!_dr?m4IE_6Hin_>7IK(Y>P+t|>T2BXY`iB^u5 z73Cv3XP=X()E_lKhj$psWq!y{cJ(#zYkYQncIuEK zN(bQ7AtcmqjI$#fI<0V~x{FwG>AF%KmC9vxHH9{kDtX+IOY^vG=Caa4NI&7Z76ZM z0BE(Rt9YerAzKkrwv)fMMzq?kg#Gld_Y4{MG$! z#Mm)>Q(qby;JBxwpn30~&$X)1pU%!}Q1FQtIxq$3WyqSN_S}on8>xU*M)hi^@d%$- z%RjEtFs_I$6IQ^)t>3-(+4C>H0N5ZE%7KwbKvIG;o~F2S=D-?H&ilKkObe;*7#A}&#r2rx7> z-A?^kVIl%K5sUue<)SV3QX)E^66w#K{GvC}m_7tclL$Etw!qYWp{I@E6XcyMhUbxk zpP;04PY3Ul4dSHo(y|Oa34lS2!H;~(h6`q?6Fi|^3NMsZd8^yV&0FxT?Sq#7W|Y`u zO>EaTt!%_gFIgq_B{LC~7HvWCjpI`+o1)GhR!qL{N4b1u1GoeOUjaDH{ARB0xewRI z;wPoLXZ!WDV_PAv=2(+&CVQ@>Kf=Q6D8iKyz03q4j;SiuTr3k~HW|(9Ti)lB{Fbs+ z>o(fOAG~9I4m`-N#^mYs1Mjj++U;sHP{b0`)u62kP(B&}BpJv>tY3k>(tMQm_T)bL ze~cSvUE8#_wXGW4NtNr^Uq+9xx-FVnb;QHxU4DtB)o)^3zh7i8q0N2Fv8UL|HA`)m zxr?lD^IDX>Pynoo5+8f4MN3!N=m}q0J}dXSSV`;Lp#$wy0K*bfC~~H-`iBkZ3rw~< zMvby>*RO@ir`s`zho8UiUds~w2+{w+$yPx^CVi_`xA{z5x-f|;h;ESk+i896!hQCo z&9s_EflU?qD_v4|gY+^2Ba#w5%j%+5y>tm@)Jwr(Hrp6FH@+1T_;A%SdwKXUJMOp> z?EXWJv?_V)?d$p9+uGGDoQ8_T;G>C|P}5)@_aW_9>r8*Q&fV~Li9g;!UQ|{;>&C+#&D!xQB2vg0Q%9j*IVZX=xp#Vdj^5ya7+&E|9p<{ zWg@MRZHA)Sb*xg`R(}01s;`g${e^sWR8s96#)~laaOT0cht{F{(6)DPzu?Iy_0Vkd zhK=p3(W98uLjQ!veO~mea>n19)FvJN`trKt8LyyY{RZ{iq^*i5uF_H(cg~ojceMck z9A50Nc!HsCEfiv>5y$=TmrKSMZAaho3wRM%|Cq!l;|T*rRaqh!o)AxYdpzYCg?ZWi zTd_i(A$}AmrA`6{r8tFnf9&7i9m7|12DbMbGkj4GgSb15Za?9iur&asL~$a8d^JGE z&cQ_k@Q>rhv7#sNG~jC05MagOf?4YRJHrq0w8Gzuo7A?l|EgnFZCW(9kuSe&RZ%v} z-brmYq_rT*mHkdHD_CypYkjN1P!Y0-$Ig7rCqhIaUrxt6wet>68A+GAL&JLx1l z@z~>S&~yK^e%SAy{N~#XzqGvu6JTp)#Q(4r!0IlOEsB<04%8H7yGK76YP&aUWec0v zwbL54wgLYdY)AGz)xI7(7OBC_R*+qZd(fBI>uB^Jc*vh@;k;SaWXx z@vDF`l??QJF=@QzVsxeh7SePCP!mZVRdj206lg8C!7mGR5r zr=(E(6w&rtb&GyA1{c9B6EMq#m>F)|q%p@3r`VeH>$%1?1AFon?d7TC?X?jj?EYt; zvy2(D?Sg&xfNsndFPd-PEney?P~8_H5xnb!0917-*qT_hYT447w`ggvjU8#d_B+Tr zoq^UmryGjDUuR3kjdr6>t5+_!Z;{$$QJ<0siC|>`v1+1%z3}xk`}eHr&QN+WA^VKU zt?FG96-hqSQPn1E=?@2?_b_+SQtx9r`B0QrXlL(pfIWKp=^TB`WkO57l${xlhh-9n z0)QxE4W~g84I7|WQH{wj5(b!}=r3lHPTXoMITg-dOKb?b0v8V8s2|Ff@=s?HJ@DpR z?3&9jbBRQlq=ot*0#U*k;2`vq1V@;Ed5-dRcyWCHjQqm8M-FH>jF4Ks-tU1epSa%( z-B1>dLZvjDWcc2nV;rL5DSZSZIc^CqlcQ3&UP<0QcoI8y%8m4@Up*D3J{>-ysBwJx zhRKjm9Qg8hii?Z$3SWQh-`^L*kJ?g=Eo*ze!cT2qCm4u^2)}HF57CguE%=F);*OgF zTX~B7MA(60l?Dc4|9`>oH5M@##r*=57Jj$bdL4eKZN^k?8mrBwjT_i#l!Iz8Xs5F` znqUQ+4#W2y5z=af;No1~<+O5;^*R}0`E=NDJGt*^wiSiAbPVgfc+GWoIEq=UvtdA_ zMY*lKb6lt+;UyQ^0R+8chqh6DrOO^biw2g%o$TqHq2D&=TTB08Ip>x$?Y=kOvWmUB zTl-x*+L$R5?9#pVwkiJ_Vif_N4+B+OF)RvMw4U>=DtEAV<|eruCN(Uvv7bNITGXm* zbL!W$OZV+#XL6+QFAv>s?_*%+rUAEuJ<|K7i|joH<6issvH6oH+P>SkOQ4X63>T>Q z{xd5ttyGqAovB37_3GC3!AY0Oh;eC8Uu9jxN_6~`@%GZRnfAegxs*4 zqZAX;KDh>C9fh1Rb2b+!ZL%Icy8Hh2%z2!M;P__(d_I~z!}<>#XsfVx_?N4$vbXy8 zryfODnB$%M4fY_=Ie@0TvOrKeBFabgSck2e-P*Uq=v}r=LTZp+vzG0Fsar!2BZEt7 ztbiLBk*=gcf4SHNnEdf)wstu>0`$*(CW#gDGwibA@7mH$m>8x${&6SUKSv*l&chZ! zFkz#mwdyWLGyWg1ziu}?`~bJoF?kZ%vgJ@0iPifz+-|LEaAmaW*zwZJUW}hUAO!*1 zxmbpWkQ!vSYRa4n9S*fgV0Atj(B#%9g5)KqU!quoQxvCP+0Wh@K7ul9+a=BF)TnM> zjT&wBnLrdWp>`b<5~MP%_}v*Zu=FjMaW@aSi2j0)e>E2;;*|Iyv= zmf?Gk5`l;qV#l}t!|&HHd~rc1+*F1SF}WYGz2hkly{F_Gi2eU1!w+2%v~0<;WzO)| zaTA*ENUx3k?r}qgSObo-73ju1Rz-=1b$s=&agQaP4{F|#ydD|g=-RRxcjU3h+Q`p8 z_bNUK(eXb}reoyyOJZ095!)ens`w`#FDadAP*xo|+XuaiGJ{h^oO?d%4{aN6vQHLX|M zM!o(T76U7L{J3s@)zih{)HU^#hj@GqOrk4ywQsR#)ZjcGQ(u z*wJU7Y0n&WtW{y_B^x+0y)%9KbX$utD4hyXKM}(hE!3@D%XZzRbvWx!xfU&1W*cC_ zz0P0{KRwGb>eOVTLUaROi0?~&SY_K5d}rg|de8D<=y@>wX-k&cyJaxdIE^~4` z{aXZzFM2Q5xUproZq8O1ZK27l#sG~CPIW{ks=q4?nq(KizFW82_B`?^+r)&Uqy*;9 zR?v|L9%yg8_L^;5x6UUz`Lw4dlu70doa8%M2VSOp0)9NA98(yjJc+BxdwHjHa`D*Z z03B{fubR;R&^8{E&r&!s!w+R8T!RcQ#xeNg7azw&iuTlv^Ft1w+Y|`gZ$ec_Ve&hP=@6*9JnwHO?sJ;2D%3PW2 z0|tX1@aLfw-?=Nd;gLrUN73HB`3~!WGF4hOgBjJ~qI&OxDHxJ}W}6nA8|N4od-2-8 zO~(u@M+O)uQM8kbI(Qm*$%32;n9+TA%Uijc`_xgKgJBnN>}k+~+4jSlE!MD26FZ94 zd*Qf=_5&-+E#R17P?l!8EcDf{Uk?Snc79KMC0z(ap6_rrK9_BWO-)3paWk06u+c~Y+O@ZDKObYgy{0uV!|Z4?DV%9Al&D;n>144AmExAF zT8d|x68};UtJiI|Dbps}xMj=j(XUYOgR#}FQo+W)`nom7&`;?}l2H6#{woHiJ$f}d zt5X!*ZhrI;dlbVv8Q@d9W(AvZ%ij^ZYnm22#no5*jQxN5=>xYWG%6r}E1;vVXU_$K zY9r97uF&m;O@r*}RapI&*hG%a&4&@MgDKwp)Z_Ll*X1@EKh1VWUqWVOstZX)x)fOIHL$FpTqs78H2O&iX|5S~yFKx*SJ4&VWDISniPW=$2H7b`9p!fT1we3I z$|hjcv|t5h$-DOzAyJ;;s}>b6q*r@|iD>W_I^hk7YR~8!h~X`Qt9wQD(4FdPN3= zm&M`9JBARz{*ixw9}Hh@EP@iP#0}23H#&Y1DJqit@u2SoB2YRfW}YE^L>wMB2`+?b z-dLXD$Hb+)Q(O$!i9Cu^p5Y505vM;>(kA_rsEFYUKL!^%OblCzqbMPDgmXM0QJ9xF z%11W3S8e?qa-DY(e#0s*}_J?;DvWju*Zq&2lJKn5*(%SE0 zSxhcu1fYb~i)Arbvtm!H~}4Te?BV4uBv7xv5ZEe|ub#jGAPGAr4mGbh=? z^_#8B9^I@F%w@lv%C>aIOq;)wbJ?_0HuWU?0JSioDnmRA7A&wH-MU+)suk@6H14y& zb49H>b}{?2r=56`9eMesHs_mpb|)6xiZG*_j(vi0Bgb03CJpSH;bZKuis5{HYBTBG zha(tHQ9evp13H!N^hVw464(`3oSXgiH#UpA;O`nelDbT{n!uX;?8{br*Jj#b_@A8e zD?tpcd)4{Rjcc{-d#vyE+;bmWw|NcHigf$W`Bzwgu5Y*{S1hVFJbKb~*PQ%v-g>`p{0r*wN2K%A@Ha zyX4e)SS=Rm6b1lu$4|GhV~5+~b=&L~BsS}~b3u#ne-HYH9nP^yRZ_8V25ue(nZ|J3 z^4QCg%dRkUCcHY%>P(F^ zN~Q*K2fdR=qGnAiW{YXn3JhTFe}JuA&#^+)EiJ>m#Aa}9brVj2gv6AO^zk3SB3Kbd zQCQ>|VHx5FKPH_%^}$ao-y|+^3VFpagCA9s^z$&n)%F@`ysjf0l69i`S5o0p3O0HZ z{$X<95Ew^X$`Dnj@=8`w^b-1iNM2fQ_2^Q(6sj=A4d??Xq61F}EXPkcg$VAw^M`t) z(xU4Bzg->P_$fuuxBGeNN{c9ltr7<^3WOdye84ALh9klp{^4Bznr2{C+r zk^~%@P2DiX#W*W2&cpc8%1M&|_@b@by4m){wC<8+OYuT8pMt&j_!G8&&mJ0m8MLx3 zvuR_lwB^d#s+Cv~QD*#2D{(rNpXmnNHMiVigPwfS^VtJ?{O?|Im1VM@T2uk8ag^C~ ze94U;QJ=y!X84IFO)ar&D_4F>AbJ%8&x0u>II^bR>*eCZJ9ik z)fQ3#q!7=4J>6!mUTeMobeMfVX{w#odRJREYnClwMX9S`y)3}d$%aBn5*YBrjH=eG zW^WU}Axvj>g^G42EBt$|yxO*52uD`(?%Deg$_icd+0SNvHO6vG^AaFNaUCtt9J zo!V%D_&+)UKs=3rTSKp`wq-Y{YX|o})P{{4N!z8_pV^jp@SHQFNh{G+uhh#gaT?Cm zCfdfB@%1eGfjxSG@S~3as(`_!E}c7~Ac$Q6R^?fgvk2z8g;O6-e=*7i47|gNJ9V_L zxJanlxJkD0haX6v?tA~*|Ia}}qEjD&S)*!Ylps4G($4Zczx;B%H9xGkwc>K3BBVY# zc@a8n@)6M(lSkTi5{7o}8#&a5&0XN)`Ce_?+Iuezw#v|eUq_3womSY1S~cy^(@wQ9 zlc&%(A{wO@o7bskpZ34WYO%#76S|_E@~%h|Pfnr~FbB$H0-Dif7c1Vt4U!l`a`Chh zsA(urus$fsRGL*p^k2*>|G8(MwySTt8A%g$N;I`y-{X(7XCHfllLu@y&@YuPgL({1 zE8r0NM}X@-s<6ljPSoq8G=bpg!VlplX_i1OSX!*`||$BUmy$l=A~ z@aho6@S_QULbu28L(B-T6qqr?$15V=oeV$J@GtxQ-7#PGKuj@%!HKaX?M(so7&Y|r0ur=5J`qaB#;TpT1@rrl(WvVcRu-;A{5(+z4o$aPwVR|fnxSf6I#8is2V7Nqxy&$ zzOk2DsrR0i1_Lj^o;{q=@}|!E(F#ALQChUXo3^k_R@xh<&$LV=6zMRP59iIZ&rp~< z_LNg>^ym?Ge2sdxdiE^avaQf6O6V1TX4D!(yC$FMf48;Ak8d^GKO2gFW;T&gEZ!{jK)M(~r^U3G3Lnjt#%zmLMkn z#TkSI(#H1znx8S8W)QR1s$P4iGH}$nQ)gDpTdg5mC|PXrNP<%c!_P!a{_f1FcKEsH zS@ll4W1QzZ8*$aGR*lJ!+E^=m(T4h!;M76-)1+}jYtW#9Z}}``618Z-V(ZiYLMvnf zki&M4CO4A)h_>Pm64O{7rhi9&Imu3V_Ay{09bzK(=HriXJ6;bz!Y7g}VWOMH4TFPT zdC6{m=s}d@pfUUlBQ4(-&bh#j@If=?tW> zUT_y0{P>Di?}8tk2Swk3kxTNUZ4&-b@DLuy4$lxT#ZUO^zvHdCic*PD;}_$in(;W` zAyO^i2!6S*B?_`(AqsSH0PSB_DMff=?pA}sJ0evWTcjyTUh`t$eA z@YU#|IOjfr7?K2>q{Ki1^8ZPOuP~x%pEQ;6x@SyWPG4p7i1X5T;T^>Bi1O3Jaf_b8 zJN(A}fFr4AlbWwOT7Vt!N+ui|xiU z&a_)O(_EOhnH2>q{3eZj1)k2p=nw(t+Y#ie^@yy+9eezV_VMTuPQIF~d(sn?18f7t5?s%L>^CF4?-p@~6%)?B6EiDvkGWwx`)lw~|`* ztwP7PDD9!8zi@$zuBV|8HfZ)_>v!2z_V|m>+XXFlu~jptqofBz;M~1VO!er|1EyaU zHmI5aZ^XWgp!UMpF?L|9U2OuZu^dFi8DCAd`^Jp3IX`Q;-CRSS0 z*$>v<@E%A;bmN@k2DI31+O*jwV0M=&6+x7l`qkO#&K)~g72r?$YNBmpRXX;&1@?E0 z^r&7Mq7O0R!GBm2G5i?NuYS@vOx%iPSC&<47Lyw7GynauC+$|OwH2jhTHPAiHf6w_ zR*{JY)c~H`AN>C-3bf(8`SaN(DPnh}z_wvpSCcBeYeJ=Rh~cZ;bui#0ZTEa8A+SQ5 zxa2!)gYAb#TxXjGBb)m8b2fj>NK%Ma60GDinIKg~-=aQBq_q&1z!aEZ6){7VDQLFr zt@G)}5g)u^u*%CBn3%qt$|G8X?$$#~m!iY)&eUlR=OFGkcPJj6ru>)knX^o zCEwe@Ocpnyf1%SVqVHlD_)%TD*vsc%;wFGIQEF9vZLg8M-KdjoOmK7ZC_@h>2$aL; z1|Fzn;YIW>TLsyih>?!P=uu6|hR|gkF2t3r{@7K*Qk2K#htt)@2dr)5)dbED@?E zL+W(;R=SfyLq|>4qwrknK+O7VMUWO&Y5mcPM^a0?@Vh>9Sr;XAgjl|dO2{V zfOqgs>5F0XX{?xw5HV*rX~OC?Vb5cip#Mb|*%nsVwX0>>gd1+P8dAK(`2eXWe@+|n z{23=Jg|dbxiWBKG!g4XrBv>}CN#vmy9fgzMs8{}NCv(Jdi_X?13haI8djH+Kxnf@tw4~#t>>t=U*Ii?;fA|UW zzYOmel+G$M85wfbb=I>f=jqv(FCtz7>w02#5>?XdC=cK}@FTQjpCAjH~Pycw}0dz@@NUmR8Lhs-iC+b|)2QNUQy9MbZVb<#!iRqB zaXsFSFnqw1E>0ik8AdTp0F-?x9{z>rPKK|V_<8sHWB3{c0#$g=a|Yr)Fs=+pC$&Sy z-aN%n%R3){@YMX&Nmq$Q*vcnzo(JzS!KZ#JN?`bUDsOd)vT5V^$+!+*Ukv8{OBx1P z?db^Nj0^blugmYSso8N6E1LUNUVqt8X3B!lksGz6%&A5-?=Hb~LA&6-=9MMO)V} zNN3y4pM1nkY}eZ3=n_0|#IZJK`PtB<7Y8$X(Y);t%NGgQ-E6lE9&kX&@PG;{w2S?&~iC{tfM@&R2GaV9*$Oh&2;8TIR0G4|O%95KvJIQ=xsDwHL@benMFT~@ae zm%BLg3Iik!OAbG#`R!$^wx9+@NFkU?mGYi$&yxb2j_K7yf1p*1=G04|H*FZXsGh`` zXz!<0u4t8*>}*}V8pTdbC9hs(>ECkkQSmk;OT-n$QJ&CV)Hn5#na_9gMo68IT%<7h zz!2z9Om@f|Nk$1r5jWToXI^O2mwxMg?V{sOvlvLGTGUQXedS#n9bePqrPXv8|kfF+`zqs!TsZcki2!+-t z{r33as zOTbMdNJ`Egk8DLVJ~>b|5-zw31AuUopJ2uCy@ZORgo@6;xXel`R~pwpcmAkOXee*% z|Le8k#SlS=Jfa47VsVN~Eh1#0&+QaDX84|*IEt3a@Ks03$5$dADxcsNKb@!}*m2b+ z#{f^O4pfRyfLHphAo&H7jfZ2tBZi*}KY$5w0|X_G((_a~v=yLdoR0>x^D%((%G+;= zYq8=q_EWR%n`gKpch}Z_8IH{6vWaTBB&@<}xtLX4@y1QImHqR|_0S+@rFe0_{`TT4 zulPReUaec(oBdJRV{(vSB_rfnA5kTA##ASUUyb|eJG4QYxgx7^h7MNv`7=4*1v4(& zL8)iqj!prxW3zV6Ey2;JlEurc7|}9kx9piO#@ntZ9cS--_<`NH*Zx*>BN77!cAeFC zsg5`gc}mQ#`eFKGB^9dLV;{V0N49Tii#zOLH{5_Rm^a?A2cCS&`W|tbJ^IAm_6kyi zd`>NBVsk4D#rH*RQ6I61MMdZSAeQ{%Q#rnQRhxqovlLb=L%!lt+8dYJV1~zuIZlw-p0UGK}N(F2)bdXd zLk6ODj43Y?fCMKVO7g_G6E=`r@E&~rC63);PznY+^rcs=4hndg)nT^KW8tb*wrI^7 z+Y2+l8`zSN1Sta?3h5KA8`QM%xBiVf!5~#sBi?`27ezd=MFP`A*FFguz%!YKdSgg3_ptO zcxe)lY?%PKD?v8f{^MUNh$aVW%bMon7( z!Y_U%`Mdn^^xNoC(#GjMAHp3@6dteeeL$Dk5*Nqc5r!X7Q@#wt&Op;`;NS1F`yLM~nIZ=Ezdii0 z4ZQ1a9}L@YjOxQ{Z?c*?SLFRtof|x(G9({j_=tNm(TJBa8R7sdX0?|$_uDWvh&w+C z1V$G9By#mr0u50HYu^@o_GtExLp085fQd_%+p6}h?Yk8#?GVJO&CvAs?7^=%+Fp?U zLI&rx#T>LsD9)*5kAL{S^=#45^7rmz{V%)Fz8Epu&cfnZ|0}MvCm+4fo;d$<%VC=% zhY7}|7hY%sEenK~!+H!k>w4fYoc(hSfd!#;bfWJxw;mObTIeH-9$F z7H?h8ikmHvK7H)r>#wym_PXOXOxDpaeu3U-TW7Omna&<@X8ne?c*Qbng;spJEGJ@G z_ub2`u^vsEz+fl`25j7ZJngRb-x23|&^|tBlb`;nPv|B?Uy%VsVUj}WQl*&TORHa( z{ABIkSrLdux`f&k$&sq4FxPU&PP5_TKMx9`__-xV;$^@n8#QQRyB%|grK1EH>x3xZ zKwBIKmPuPb#u@jsFbw4ceg$H`hSqD zkTwB*akE`XW}!WE#-HtIBvtA35#i~KFRGXy(Xq-3Jrq)Q9r3H!aaSwB@Q_cGlbt(_bR(QwwFP8}@kjpC?g#b|=0bjrWsqI!th zPFhey&Ee<4kBB0(gT*}{8bI?WcVp`;0)hsDIzE+ zR&V9|uoyn0Pcmi9fa5_i4$!w&J`#qxi#ml!GyL(3Uz}cXl$XQt1aV9{FE9j4E{-2F z3qcR0uEZf+VWN9wDSSiLd;sUgH~x+J)oTy~GvLCbrHTK~OE0q%j_2x8j;kf|QNqdu zZ_W!F+RWQng=e90Ud+lXqh=jeg=zM|C!g7gi1oGFt$|kfhu7RJ^wcU!yW$iaac~vO>e-3yhFZ3E zILu+)8r#h3f0*{mIqFw$%@4NACRUp$X60c3M*G9M=}#A!s3Noi*NQWZqj-;TH+$on zIaZTxfa@+g&)$FRIlFzxVC#F}q4u9K!|ZmB=G8o8f2-K4t(|bxpX`ZSZnWxXi088R zEL-QQMXy($V)!dK3K%;LGCtVB%`(Aniwp{Z|5cxSVym!rmjIu;PCdgeyXb7osETa^ zHIhS&A^g%O>4l8I$N?|CKC4a6hc|22&Q`9*tSnXd;HjtESuh(}rPF!(KO{3unqz4_ zseh$orE=S<4OX#dM-F@qE16BZ7y6if^*P@Cv9>BEcY&^<)Ir2%mtjv2l~ z_P8N^GS3Lf_}lvcNccBxS1z~G45G~9Tl18;Gxyj(hU@i_f*25ln=Ds4-sBZZ9hJo& zW#gA-`p13S$?#L#o6>8g|8dM#P|ms{U_^x z!bw)4^DbBvV+z3Py8z~t)1VP1%Q=(3X`LnNHZVgOO{>?1OP5)fZrv@9z4uHs-(S7t zYCC8b&euy^i(;DZt(Gndl({p71n|;YHzrTS?yRs1zn*6$h*>3C_CBui6IGHGiJtYZ z5G!O^h5}W$-7LFtGuyg$h1u8%wwVMUt=(XI9C@^@9Y4l8Y|dph&&mz|48-_S<@LZ00S=~Wjhn3n&P91E)YM}g83K`Ymynq`Ry7IH3wr(5N z;%LZc&%4AJji>ZU-zSt55iFyb)>79cFL(y#V)+;3VZ&Q*I6?zAnFjTSkuD{V*!jKE8KOJ_6nOw+9Sp2w-bO}_Ej@e<}IlW73*9{1ECsfE%C(C-0 zCDQsZHF&^|2xB1XNr~eO0fxVUM|ARl!|Y8 zlo`JiJ&KfM_-bRHc!U7OcX;wwbis+9?!|X(t3h;8E>|V+_zDa8LnY4K-8(rpmag!F zzkW*@J}}74VJIL42Yv2zr8V%oVfb;8oO#mtG2!Xk8K{fuAgb`+X+k1yAB038qE0;& zkN?4i7X``1+jC<05)}%r%(yyyVCWgU_+6_YWhSzAk|av7xcB3@sS^ti1)kEyPPj>w zEMqdkg|fxro=1d3fTeJShIo2c$61EalMdZ`a50`dz>UZ8?6E#~>baKHqn+jDRKcb` zL5R)MYB#jPExDH1xXvb19RtB_@h z(PM1e`c?M9q7`=VHT`VHTkqSRTV)kpj0_0_(gSTr6!TOSNI6dDw~Nv$*$ZEO#!0(e zjJX_Pt3DpWO=pem(6dgqX=5f@mDbIzX+|Zk4Q^(ubE1SC%F81CxvcDVE zS=_#&Gp#fw=~#@UV)k4vd10kijHo;t4epIhfHI47?6ObavUO;Q6WJcS;0pWm#b+^t z6S|^6Vffp*eA=gS%QiM_=x96qq+={WJv439&?en<5AC*^y1+0H^;CjxL7KSXZ|cIJ zu5QH94h%Q(#1K$+n^xpSThQ*soI}s%X1M~6>uJ>9%>Mnj=U)jES|$!fx#+-GW{SrI zuKh8GTN6a>MY^qybS3C>Xl?8&2(;;D>Ud9dEEdAZrMURmfSc`{lTKn^Uo-_S*xlDL z#jEdsz#f0$U*J&Sj3T2Ly@N_6cJEQg*abcJMLN#%|1qWD7on^Pmgq8QtgElfr_^~`Ji=%cAUpIZQph*Ji|JdJJ;g4_ zwnVbftZ#0K_6_pl^VtapZukho^0t|WRGcJcx_@u`D zLd~Ssk=}Q@vNiCBVE9fUbWrDPA`WOnwD7+&d{t%K$(+yxIC60(5R*}V;er_A>0RZ{gXwffygQ#&x?BdMXAkb3A9D3I zR;5a1wCFpa9W5LQYt_<9Hf-UHK8zf#clehNP#Nr5-gN7&cK<^U`y{CargujT_={E1 z%8_(#(?Gn8424sY;kT56Q$6tlm|wnagW)GQlDA!kPdb%DlN5)^>OF`1-VNqe{Ovs3 zhEbb$zL;!(`pYf$C0h*pY{on*W&2_6Mzr-eTXUodu9=N!T@r^v2IDle`~UUDFx!fC zw1Sq+?GQxVgJ;aL8y~pC-hJ*>>v_n*wnfqlOzVza`h$J?>HBs^m!8aUU?7nmKwKtD z;APW3qP7gQpZn!kU-_1TG_z%sJx>gP8-uPH{+_MeywwM`zg=(%BK>oGMOvnT1@O0U z)Oi{Pc=9=-*p7>bRxMotBTBP(5L@qo?gIRXA}}dJyI&0Ww{@af+8m&g1fl%S#WF}7 zL`TY){EAQ#&7lnomtpM@lf-#zSKHX=bmAi=!j@SB?D3! z+>|F~uB&RL9(n2Q18wjJA5e~BJB@3fpS$-y!gFB+niQa13E_PF#W*{QEv!6@G6{zg z{6$auHELonqHJ1&v-C6`whR#UD_{qlR`VHbon$aE6tnUPEE7H5q^OeX3fLl)IxBD# zZ}rB_)@{$dZ0Yjl4q5e+&5^%1o`2E$?7g?g_i=)z2uw;0PEqxvn&hdz#8Y2oU0~4i zi`ly~Q~?kjq(t_#@=ozpTz64iAII=!dyrv&+m%pbE1&_1zw4OTh7rJpdAmB1^mB{grp8DSD%GSUifZ?makccliM1p!%hvbQ0 z=tq3ur@$Rr;j4?ow4L}#q^A>_U_>t22|VA}SC|NwFscZLWIQEJO|K+^Tbk74{xXJN z3P0pS?!e4~S)Xvm>Gr{};Vv-{b8b?rwhg=OcB`ZQ$tpLC!A$66pe(1sE8Mn*{c+A$ zSK!`vnL+(>(j+_Lm}6kBFlrF(#hhBb(4WBT{4r4_%6>D}&zF%pT z*v#FRK{kP{ew5hRKgI-1{aW_j)Y&#+$pXu7)YRr+Ykpvx-L3!75AEUm@3JQzdcsaa zWBMBu?DpArAA4fh2sRRm?2IbdKSvxNA44i_W#P$|gSRKg6%pT#pD@wQ#ma(O7Fy|I zA_Z{&TZX@H-?EP^=5XF|$J(O1hm~_?4Y_ zc|T|14Y-H?lff@wrLK@jYK;k^shDXdaR~#Jl9qF!Jf4nz?Bft0{;g+9Y)^|vs&8^~ zK)g6l(WsohV^O}o=?OM&fUOY|MX@c0gc`b^1FkUdXDAdNf52k8a*SL_!;Jgt6W zxQY{(qddcp<3t(85OzLOYTysa@HH67{gw!qpZ)dWhkVtfxH$|)!>_%?+BT{I zBY-)gNngOKy+Q_iptY-GTOUhvTRApVs~UFgbJ$l;vvurO@7L!*Td-)M@8h1b@80(K zsb}$?%b?93J=-4Y)XG1}@H-(rKp9Y-zGUNi%jXQfc;1gz_@oIPn22Ji3@t`@X4FS21H;$0SP|``ReKSqD>OJ4ZdhkuzVw=3 zpySdKe5KsC3&%a%or)r95z+`G6t1J72{gDDz?hFb_Z%CG0V&n{LpR-M=O2G8+ZXUq zCVM$te_V*T;D$T?Vo$ux@ll9eV)zo^WFm#S{-7i5x}%O};<^pJ0jvUoog@pcJhr`J zmG`5LGdVR<?I0NndTvmyf_UmUabCfC+4sl<-nqq7aa{Vs>pi6d#Xt4YC7d%h?kHbzm9)!2~dp0ujz zm95>S7usw0{?)oMC@;p$?}^Qu*$X2^*qML3$HqPUm>qf68Fv1?_u3=ZU1u4?N3se8 z2T5zA!9@6IaNEWi@Nr*$<%p|oh~=x%91`RcuJicW;5ug661yM8!fejrSF2IUzFjPW9as?*}5c$LSYFDdi zyKxy$#l5>)I$I)Xw6Xe!>b;Oj(o1i>VOQMoS9D4W>?m|eUgrWR(XE(Eaka{pjdJNH zpANTU&+H4cWILdk$rVa^Vy+#kRkZg8-eXm`#3%zvL7KJ+d?Jm=ANtx6SH$G6!X8~X z=7~ZgY4h10kr`oiBuOJOkb)(Un!Why5Ig_Ui|~hD!94>hKou?rnt>_j8XU#btSbZk z0atR3XseWIM&p6}qp-*)peS!m8F~bj-^{42H8wG`M{d$^G-{gLO1Yc2NhOhpn zEuR>lI3NEeehek<3voQbkRM#xC%^iRop2JIIIhRTPbX^Rk}&;C9;Nxam&3&m+yvj9 z#%z7ZE~PB7*Uo3Cf!`g&SFxM`MOi5>saYQpo8ovp#Yu_l1Sq1CpJ*r!lV6Gp=^5bh zcT$Vudis=jdJSbrK1UyA>o%c*&$qO;_u8eUeQ-I)lNdM?9au%PD(13#%ftwe1}q=cRAj9n z8FZyZKXmkHJDT&(T7rmiKYzx#b_7?}W+29v#=i3N`VmUxli8&UxA0X2Uk1rFtF2_# zx8gkBvH30QydZda2UekgME=E?KFw~?RGNdfaK-nwZsjtYmtNIQ-KU#7RI9O2yHLasb$%X>e*9IJZ+s?wy@@>ons$8^jG_0+En}VRaaZjdW~$*OV8Q4 ze}CA9{q1jd;Q43U?GHU}4_$q!6%HR8?m}m{Cx>!i7jzbw^q;Bk5DP-GS5rtZc3P>{pSFzSXUd z=$k!k>>S+v)U$RsCT4a0>tVZhuxHP`z_KB-LM9@KcozG!Pi2 zdkiI24$UYqRHEM*kEJ^u!7D)7aoJZBY$}ttiflJ^#U6iUm||LXMa%Bif%rh8Owwf6 z1ohihYwchZ_10iww<;5X_nv>&y0;|{=&J~$P}wNSEnmOh4n5*eHuu~4Y6RMewxi$F zf%ZPUZh-BA0x0JhTq|Ez6WwT%R@yNWNiD9@3uj=cZgs4&fbE9LUD#Tp{aMR{VqmuF z8`?g~V#{JJTQ!rPH@KmnEla^=jk^fDq;jX8PAajaFcM9pZq-xUm`1hh*~agGSSW#)xhtP;X45^ z;CKNeqEKg#Md>0I@5B5!c{o8wgiRvfPlJLK&l#x`R7_R)^G}^1XzFWV69I~`mcsDN zqaVf9pW^YR9Q<3b11|ClPVr)fFCPt@%1_SW@bsI)+^6(MkYkt3Pv!Kmc|GMDXvJrU(kMy#F2>a|)ClX+qUcOw)&Iz?cVp_u=iek)oN6)W>3QK&${_e?A+gP`}94@UVZOV zyQo)JvstqlppaN-54s$ls$SP;_~Hw{SVq#5u+lFrjp|&CWDxe#M|{7)PYkqe-NMFj zBrA)7FAXL^!#MMkNLb9rC#a<$e$ks0$1-Zyw>xGD2gRW@hw{@a17$bC>0Cq7)G;_Lkq-<=KtBk3RthMi5vT&Jgm^;^|aE^WxblJRK z9c$O29d;mUS{4&e-PD&r(_UL3Vy0K$bB{gqpMO)&Y1Z$I(`;b>ew++Jbj&0)LyD!) z?KJ~#v41@Ag!g6NQ&+w)^cxR9(k?m-I}0-YlZwlKdH4P(Que+SR`Axik>xaR?B)bA znUJ{62aP!ZO|M$b45`?o&pd}E#~VE#KOPEuYs$X<=np>fJ|8G z9YW|5%3FUa`G%wcUH~9a5iC5C@2q6XyC~=2O&b04%#z84Uz9rom$sviN8CAl>{vkt z4^A;tKQCQ+xgBxXL6(g%60JD1Fw_ zweGngPNBVW(WQ1oyInO}1sv2lNiHUqx!Z2seur@%7I%fKR$Afg`B-ApOrm^=w*T!S zX!cxn4QwXnar0T_y*J`Bs|N#bQLm;|A3ue?;5Amg5{h0zRLl=iuA~bx(DL@oDb}k; zFMErlU|l(y_m8P#?9KZhv3#ruzVz~|*7y1w?1NYT#dWV8Z2<;#`fNlypW}Y2@l@K0 zu~U`GTHfTT-W-Sh#N9y@>gtKIf?Sl zMb}u>imcE%K7c?!iOYX`aoS~KQpAcq1L={DVdij>C7sDGr3`Hb{Yb*V!3-ox4QwrO z4m$L3n*&`GYSQjyFR{y5+274%1eFl?lYjUV2H+a?(U=*BDoY`v2vMgqrH#J*5lMwY zULk;NqP$ZhM(+Zy{~;6i^z6$qd<8h)R(?^QF`f#G)5p)i@FmU{L6^ZWbaT8tV}5;{ zN`VV71(v#U-(DWU#d&^s$SUjmjJB=qu$I`(*B<_mx9p65m)WS#$67;_zEHKc zHZ$fRCZG;o1nF!)uH@vi5c>l8FoUngkN4HSR{5%TQHY$=3U#gt$AHlv+jr|w6oVt4 zcH9y6#K6BeW6ER@lidIpb&E~|DJApxB`+?bR^ve@>4><~P>`E2W4axR-GN;4sLD02 z?_GVpwXav5w%IYJx8wO!2Ks@nP*6+gW4CX`a^&>-j*I3j^@q~f%_cTLP=V?cBaE5YJqPUm*e zv$g`n@M$h4B}Lc>5Dlgyp?LoFf7@kDo|RUsSY=p~ZH+NQhguUPW-jduoez8T147vrqdWgRJi6FRNnh0xgQp2WuErcAO!jz7-eg+kKzn)lwllYRQ)V0b(G z?g}>bQ8uMXll^St$&zW1oF1q$=d+CMe(GOs2pkkK2*za1~ zmz7Q^TZFgD%PoAF9b0S6#lqfNtk=O%W#y+l`eh4K=1bSl3jacs|0=O3J!SS>tKG7x zEk(l6eFL`k7tLceh-SA|h3uP_FhCR_7T(M@!)hic+gk045u6RSoXc=dI`0CriIce8 zrL(;}?n{mM>#sR7 z#!3+BLOcK}w(3EH`q0IT?CCGRfK<|~A&PZlpLoXVV2DVDg|wG1I|6Qt{+Cop3OagC zVMmGT)^S_~UI;0^|$EEyN%mnY1 zk3O=Cxy(p;9KCNJd;Yv@ofaPbclrtG#YVd^k#fkzS1Nf)tx5p9}{k)a3@ygcI~y6Pd|z$S|s6Jt6}Pl{+e{EJHiM}dX;%8$M8L7 zw1pPO^RWRSsdN~JIatpi&L@PZ%2F9Vy@#j)e<2iOl&X4WX!0(gcQ_y(t+DSB`FEQufAJ>E^ zPLcIf>a_BZpOT5uC0+EcP7o3*8Uv1h@>C~Gffb??+u?;I0hK6?cczde_$#jR3^^!Y z_m95y?#?GJrD5{>F~isVM*0Q8IWGLTmOmX%laOt!BzMQ~$70OGs-W6euZ}JK$wS_> z+StVp_Dr#S4&yeMN6Du3Rs>TkVl|VE2~+uLC8wHNiy~F~eHr9dZ}tUokCrX$?JN6R zwhE+yh@P#!T+DI3>`2QV*}LUUosKwGtITBSB8+*EHXf|JO~4y9GXkhTa4%+WK7*Uo zR#ESn93A`y@qSOrP&9q2?+qt3aiW|OacjSK9q0a8g4>+tO>EC5jqTm{-mz0JxX`u^ z9d3y>ZS0LXv$4s3ip`oj&t}e_Ylk;&ZsP_$WOeH`wvO%ESp`i@z*9J>K1168A8~FG zOg@2m-U$;Y+Iq_6ZJ2_;Xh3a|UAdZF{@!c0aQ#N4Ch7J7SMy$Q*~M1G-SL^6PcQI^ zh4clK!>@A`*)Pe_neRmHI+j(v2347Ei&ihU{SWAE->+C@mC0}TO?O$V+T4$z>ZD9! zU@@QE(VV>w6j|-eM_>s|X{mcZp2(#}SsbHG6T=rBfLu6&NlY;~MDw|9!)z>2uRA%iPITxT{*yNQsxr2G19nDC@>x3?0{35goE@jiV*4N?A{(d zfePN90AngZR?t^^rAjEc*0I~~`@7wH?*q)sS=(#E0Uq_3+>Ltw18W5C%#o2k1%@bE zQooQ>6*^JrBgMbelQ;_ViVig$J_W-o-#_CYhX?IP;A8IyoZ^Qxad;T> zxYPYy4g7u?J_M;j)`?NI;Pj=DO~jMxJRliYAySl6e60`z2}Z;e5xI!W&2|!348`+N ze2CGRdj$SR@8s4QI&NjH*Z zagoef7hYtqzyBWIXe>LYFne*}U3S7TM+Sb6SUydc=G3lhc^sQcXXP(*p=oGSOEF7K z!pp*-b~olr@BHh%5za+6_=1Z}`^94C>DZ~)HLg-{tBe+Q5yzG?ut2sAD|Z>fGqsaP zC=0HHck1*~z|;BvG_;@9F5A9Y$b16>Er{$38#b}R8Z~VZ*4a97DNo7lS*{W7+)J>4 zqiR^6yVWYD=h(cqEv!BGPMSZ@_UX~hawp6%t6#@HT(K09@!2+Z^yjvX$wSKxYi#j{ zpZPJdtei~i*`*U&8M}-Oj)%>Q3Rn2j|>#`GMXUS5Bc zoNnMUsx<$WdPq6@=FqPfb_^Pya&hqA{h9?=pzTl_+5nwr3ar z2&n!?`N&(NLhuam?e}Jya4G6|Kq(IsEx}6%>$?!#_`X3W9Px_><&=}1E?M1&% zq=c!H{VIm9JR(?e$7HzjW&s5uAygO?{LB4=cZ^5CQ+`4Grw$cIOTNS&0Uj`uE`C=& z^b@Tp|M{l2}31~u8~Kd^f@d-v&Q8L(JcA!06q5oOh^Ww~qDT28ep+-cA1 zU+Wv;Nqps?eeA^?P22zAgY1V@YrK?uvj_Xe)i-ea9=DcB1S)G4rhg_NzH|N5mtRLsexS%^Oi zIT}~Y6}1)ETb?(6q3wCV{zovnZ?4?fs#JN6_50Z2Q<>@`UhZfY0kV@I6&V_^n(C$cT0XM5@v$%5LG z(LYSW80DABBtsrbP&S3mcD|RX zft?IrM5F&2yqt)l`ccoJqX&|U2v2^B<5V2p)x$h(@-uo-Ji&~JQSUBZjv(q=E@t?8 z_c-!%CMTcZ98T&xFg0kne=@t|OPq`+evV(MmzMU4#yismj_WQQDkjBP>;UBIX> z#qG?jG@JhRhghqt=32?R^E|;3ygbCRm86-E(pNgGDh;X<(`w3+fT`qhxA`pt2in6J zK~WJj*!}0CE3FSJYU2_c)2%LOrx&sxn^~!vWp-$8`P1iH$+j)tkxQ}UO?dNgLn2Xm zRdvFzq!kyIG-~WCyu5jfINrC?Hc0A==(rZri2UhD4ZyXG)Ijx3p>?Hc&VhX__w%nT z3pjV{j{HrT?Vl0gbak%2^^5V)<_u4swI zw{R??Zq&s5hkt1Gn8qq~mCcyN9RWTOz{fcZWg*VyZJVu4n~rwk;Kyt!rgi~h|GMvf zJCdV~Qa;nE0>42|mHI24GYd6<@M4mcj%nI7R-VO7tTHRtus>gLz6~D2kw6fC?V^6R zA66AJyndM9fuxxKjyXjP^sfn(MAxpU#pJJu8Ak?+lbM~{`#yfL^g*DPG}=B5v9~eV zELytA^5%YP=|8N7USx$2`ryQamci0P$n3ZqxL32wZX00Fzx9q)#7y$&tM9b7hxGKT zn@f-u6x66}?|(kV&OsMLcNr9lKv?(xf9#!ifR)A7|Ick(=qQ2(q*!Sx_O8LG(L`hH zy}i~Ldn_@rphi>F#Qqv%j4e^4CK`<~_AVeIDn*o{B3MABENr{?{yyI`&)j`>Srjq9 ze_nTB@AEuU&YYP!GiT<^nKOBq!-#%;?2$8m=12CVG@@+_Z;PbO)K<&md~%QJ+}!#D z+=5{aJk{2cSYRs`nq;GC%{6S?w0G<~-`UCgiEfMx+W=VzkLr;((Ms^dCx$4FTx*6eAN6Ceb3NseIHeVwv|sRw3^(Q-5`?;tU+WYB{?h&- zm9hx&eLMqq|EBH*Pa(@@_zCU-sR%ASNf_&=RRHxS*D6nyu?^0x(sX>Zs(}uMuWqIP z>TPMKZwAdk&f(X4Byl3c7onv^`bwUL;|w{~A-HZ_zoNCQU)cfQ{SE_=m=J>~gK#rf%hvWr0Zc$( z^Pw}dau?sHzRK)B&;D?hjl@i?j*8Ph)+rD%*f=UKi}BGw?T1uMGTUEYA6b zGz($)8t76^U)~~u%e%fq$CgzyF45_YjsF3wxyF7YihrNXU0~fuAOgnBUw-O)(x3~8 zNEe+>QB(~cVC4bpvz_pnGl1e}pIg&p%=?xKHnvN_HUjt8U#2$CCjbCI07*naRGVO% z4p~1i{KiGBkU5b65;`H^3RYmW8penQ4&=@O&V|cRPR{XX0-$)*;ftKPR~zY16CW`| zwOtiBbmMfxB~LwKPrfsaYRuYiP`PUIj zraBm>?`GBAd)P~(U$x!#`H?MIyx5K(`Ca? z>zkmb?r7$_k{kQoRT!ty{(G5Ya2ZXUXuG^D3>G<#_u)({PDH_yNmp4XA<(09Nsjsq zhH(m*VIK45WZUbwqik{A5<6^%@7V7+URYS8H*H&OWmeUTI@j2?yX|Jvsmn6VSF~7F zE^zcNZ}*-4Q`-pTI$zbR4YaSX)jx&vzPp^|l$L$IrmGb;W%ANQ8KjU2qFQj$+E{$- zY*pxl9C*}G_V>U4!%h0C?j^eK%dLPoAfup}$0*P-cCBg6E+}bk3kdfudJhiz9@_7l9g4uRNE8ho^LC0liGWq z&$k-#RUN37b!%G=CR&Bk;&AK=^hBy4^qRP(t-#7umJDC!5}gJv71I8_7{1PKt8OvG zYEA4{kN#wiUH-)5*m2Lk~qt%>us4}QBL&<;N<9AXP$nlU3A7-lu?oZ`mFMl6oWdGi*4n^4Yv9(#wI5i zdTXHsF;e;Q15GQQXi6}E>~WP&&eJAvf{&tmVvm^)^6>$@Tv8At$7eF3h@UU4>ZA7mc!6#kV0c)HMs!rpx-i;rQNSR`d?4|kPSG@Nz;Z~W7RNk`~-U#bTF zPcwX#)(I{twiAemQ6w+oO8bi{`LFmf#ECn8$X{uabYhkcho=VhuzCkB#OLvn_>map z7yslJ8MXF4BaW@oDJx(&K51O>Rfm_qn26w{^TeAlr3}ttI^Kx~35!~F3QtWe7~EeR zGupnl&%O-Fq-7i`(D~QkDBc8)q~%$)YeQJ)+HlYHJO;caeuG&-%Q*hKawJd2NA|LrP^i;` zSC*qshGd``v3U`zeoZq!U}e<=qi2Q8;9HTD5LW}I(iK+bZ2#IEm(sw+etY9ME>$7S z>lp^Z!pv&=_O}d5SJfDEDL09+Hd>J_jm9w(tbs|*oc{d~%?`3vR_|?{UVf3VkGO5^ zb9?Qz*N`MIxgd@heTfM{Ui<9;7agsPVWK{(_OVVVLFTdYraFJ^^$C8Fj^4u{NSV|u z;93QaAA&tyf-QMQ-HNK7LtZf=D1F`MOTj5r$P#Do=hgnp|PqT}Ko} z4tpJZh&}rBvq%-1Z0x1KwSHYuh-8(W;p9WKkVp%WR&^{1kLa9N5(`IN610GApt+dt zori8m-I67Kfl!_m^j6%;C+1dIeGMzDGk{58D35GE=(URa5)InCPpxtMTUM;6+(!M9 zRRQmYT+uqOwT|66{tY{8)Wx(-quqGMxpv@QKL9syV1lJP=5N3CRy*cr7eE`DfPy2^ zl0vQqdRx`*I{9?Nyb~pd2Ed(cztVXua8N&x9)m92$x14K?n5>DD4Md+3xGwxgPH40 zezCgR7I*Gs+w8K7O`kEt`;YPytqfmpeS7NRhph|S7ts-f^B+~I;}viVTOu)DeA069 z)t`bb=M0ti_$|M{^jqSm!(x2JlfP&{xoZLOKAmUL4QU3}5LgaXh04DZxeIiI?WO znpH>qlrFmT@aFysi^1wM{>`wZ2?Mk8Jp1z-ZL_USe&-!$nA*eDKzaXl*V*^B-`<+) z>#V?KIaxH}vz&cr%(EuMu*S-|(3dMfS!L&708Jmx!TKJP0**+HLOO7{oQy3T_!&cj4Prh-ed6AX7L zz4yM=jd_(l|Dw$q*w5yooVX#^@7A%$UE5Hyk3Rd9(}Q(vNwE6m2$-yMJw^O z@4JIS6BCli*mX6kaIE4_b*y*kO9)@hb%fud&Ry;B+i#|N^0vn|+t@wSb-8hgTkZR% z3}01Jao+AhS^@@4IPzRxRAm=j^*j6RAOGn6;NjEGvMtvd0G-1eeG^}V9q3-PqPphG z%b`i)ROsYGw9sX2NE0AQFmkM#>$ym1B}^1=hGjj!%6Of1Era#Lj3zMZDYSv40$FrG zG)c=XsoRHvjMFt5=kqJi;Mp<2E3x$i2HaPG=n?C&m+iCl4?BPHB$r=}9P>DRM z`}Sk+zPoL}X^(fg$PZ6ThsVg$TC8Wqxu#zwN6HP>} zcrMav2WIRXf-gu8KoI>ypBju>oZu^;kZ;Ogen}enDviTrCDqo2fv3gS%jV@Eor*?K z5eDQUJjNK^<9_ZXm)h@cyqbgor#G^xz(V@qI;TWqtHO`S1=RZ`CSuGYg|{^|K#Y{Os=6W4@G z1DwSEdG^7ZfhjF~wt88LbN%j0U9F0}Q7sw-S7-J!4BQfj77?ZDE_ao~nZ8zb8?4XD zk85|))X!-0G4XB7=>B;zE@CzydhUj~T*1z>f=6r6*tWOQwD)YuTN4oPe_{Oi-BDH>y?*BQxAyjsaJ0n4L-yU4WlY#qCxqbE(l8> z&(ofNBj>n}y7$jaL<+XUh>h&g+x~29R5R&e+rx>#p$g(RcLF8RjgR8Osc5%7`Y-zl zt7rM&ar6ncJ4X(gl`tiM0Z?ZesD+0Q>LhPqLNsIgbiX7>TNd*7Fvm5Zs7cS@_1Cw7 zh~t|uncEqdCE7IW{erqwT)`!O8c-UH)_{U#i4{B>BuuX6Athn|y>?|g4->>U{`~>2 zXRfjb|MwQ#X4nu;c`#XocQ*I#WruJ}<3Eu=c|EIWiFD#;949?<wHCBQeLli=p6>8HZKh7=i3W9f(j`llQ!_+pYC#4)Tzcc-F`=#J^Lec1fXk*DLUD9 zv(4=9cl^aVgM+LmMi=W%-`>tif23Nd8qr&8myAdiPo?*w=*f#elF$mp;Hl77E@7nU z_zI^NdNhZdN)RR#j#MjHPD;e{wpaYv{$lu^Z%fXC5#vWhz0Ba!Ha~&#lnMnd@ke`a~JXALl~u<@{IWb+`-Gw>xHsv zPx_S!6YNI^A83oQK<1#7fHIBY{`kTD*I)pZm=b=8!dVXSZzD`NhccVa9>XVC;Sqh& zBFl9_L5o$r6s|A7;wroRVnni9V>4-Z;H1-RyMY5SiLN74QYd3!#lTN(kCm+PgV_`r zMh-L3YR{FokOb)1lbAzBx2iGXN<-RLLg1rSmfC<>0LFZVkw>i+`XILE2v$9p`4p$m zX0TOtk`Md7orVtP0~j!jTu(H`*-LMnJl#qkePCZ8ohT0)WV2Wi4p|9BuP2^{iG(ug zmbPZjs=MuV>Lddbn?7x-%|K^Cv=ZAiGWA&ZqKTX)D4JX)t2YTy-QX{K_dkB*K28^u zY{dHO*mDm&U>UYZoc0v=OK2&=|9VeN+E|q`aB98&w`ZTTqknofjJ<4k9)FU34~D8E zg1%A{0Wk2o6b0$TLhu?pW-LL%3x-QP(TsE$g5(0B3`fsuu`NHKe}C)5q^{JXtJQ9Z zg+fMU<>*JX#C(}B`JEQPFMjfwHNX81TSU|?_7UFTWJCV}YuKE+lI?NjW%e0c96vwo zf9yPtjg~N)q}%4oD16@e()0G?Gk(gqa1;$d1cZH;v-|g-{8Q)@)5RiRa?X00+V+U{ zYtBi@%dQDA0I;-Ji}4@WexNgFMuN-f0J80}W=^;3CNOJHO#e$A(=d@t|DV%j#Yh;I9gma!@S@9;3L~^>k+nqxMJdmY_o-3 zclZ(EOtjd5l%ZgDS*|Rtdwq%(SmpciE#U`Vx)~0R!Awqc)o$-$lY=Mm3x^$e?e~IB7a< zx!9&npUMS1!)-1Ti?zG2>N>n%C z8yUWys#`g=lfUufe#F&kv?fz)Cq8<=&0&?hR=?G4%)cJC>c#a8%%oM>lk^Vczwra( z^+^YWr!9xO9(&w=@{0>y+Vapj=h@bMnbc9=Y7>O(AWr*;##y<&rE6+Q5P5*$?`tL2YTpxpN8Lu~HMkC{jc zu4*-Jt6|LN-ZRdyA<~AI1c`sT*hzu}^^dlU6W^tr`lMF!YM&ev3)%87bF?on0>o)W zsrJb*^KE8g`|!&z*g?n8H#|W7i3tWc9)INFcJ-ydL@|~2q@3(%xuaQ~PQ1^F9@M`D zQ|+y%e|Xf&Pg}f|R?*@FvJ#OORgs*>39l``3B!+h$Jk%W@P$_bVJU_$I#s=j;cFsD zU2AF=U8QWqtGGCx5x)XA3G{C-TMSV^7@q_?sh|p|5W0-Awu;s9k*`DT4NIe!L?k@iaI%9HmNVw2Y|PUD8psLW(YQG+--z zgpnkaUywq0CLSK52)_s+JR|Pv8$wLjY5ocrcbQ4{H{aPK5%5q_d213;87?>Fd zh*x6Z%d(O`_{bydKF(0<_*yrV+9t7ez^N)&8x|(IzABY9CqAfa{}Ee*K!*}rKK~;Y6GzdU7?4)m zVwTw@DC}{hu7NZ1wX~Dd9*H#}5Uu&?3*r~i1t`w?nEml8`*iL+n=)mpHLld#4!Y(F zj=ELZ?U!6;`+RpKc_7;%n+C-DyB>b1jpZ1nXjy%?oX4DPaj{);@V<7!mOJ=lse1b<57qIiy?WUb z5B<{yF&S0esI0nRM`5Ca@YEEDI&1i1b$2?En3dh!g2xSxJBe-SPb*GfS0qUah!e4e98j>?xp#OHW1uAU_DF-CBc z?`U7c$FsyQpy4s(<8|P0l`aH^d?}Yp6+BkQ&)2De4u&5)jwo1;r`|+%?xSy~?iQj` z91RXF#2Vtu`kFh4Q|Z;&6*uhyEYb(k_n-iW4lKB_bA-%2pQY0am*A_kUytD{oywHL zU*8PIGZ9g5IdY^ekj;5bA{g*7*J2Od`X}3V7-!t+*gA_Y@xGMTG!&M({)O@hRjT>+CUY}&Ij(^oQ-DrgM+I)m%S7A~hr8LS=;=b}uYp!ieX3ezX$8+qX$DXxr zJAcP|qFLSa-VAGgbv$ud@zSR7046&eBcsv9FkPPkDTkyp^U*DsHG8%#z)Wl-akP4t zBAaWWhb9WYYA5PVbwDh36FS+oqhGYAW=z8df8M4&^q8&Go14~D8|Wk~)$nOpEATG5 za)!?+Ez`GW{rWd{^I!jFoqE>Vw3}|X%%`*6Mu2QFi0#B}2$7jI@~hECuegNx!k`;O z|DwYjbyC7MzAFZD2~%17_at(0zOTjw*$K~Ssfl|OnwUuC!RhVkGko>_i|7Bt`+K&} z9(&r&7ms2!O}$s6Sc>H6%0Jv}qprV>X(cexkk@&5Dd+EpdE}dpK8EcDXiPK36?N(q zS_w-+!QOp_38L&XsH+NW8HGVzkW*&+;)Dw>u)p4OkM|?rwm|_^baKP*ueQVX-H(|A zN}SM&^gVQBH83n-Cv}%*`0hnKb!t82L@RO{Cz7u2lLWyG6DN;ei60`j#MQTh)T|X3 z^VPdXpUMcNvQ=_WD6X9}At3w;HC2@uzS>r>(=b{w{G=Q{#t9XV+wzR%b$^AYaiOgG zY=yfQsRNbv!GCN8I)pzQn$Pd55^pj3Zo! zmi)*s$yPogjr_tYA;Qp8`J|nP;g|FyPaETVJTdA7xcZO2TCeauRwd7fo^0#aVpwPI zLl3rpKK?l2^m`>nB)$cTSWn*e7Z@OeIg$VkIt;^z@LBC6*0p}Utn@jz)P4Fn$ECVq zyS+Pka(s3^XkR&(Fr^Zj)y4%zbsqYdKrp`<_>U=d_ zW%o{b%kE(7LDl@^l{eVtJ7YnPYlE|z^!P+H4dI)=i^)j5Tx8qgV3gh-e&$6RGGrYa zeeI1_Kj|%JyhTZ7B-QdVY1K{w4bpL-1`XjW0$Ics#3J-Ix_0Ysi@2RnCl-2Q)i1m1 z%9dSskn3B}QlZYJH0a5oX$|D0ZyfhJ8tgD>ILAb`bRKwTqFw#cv$h)B1kc@lkM+`7 zerz_Bx$I{0oDXcz!w+1g%I}3xe9?IU(f#ftce4BcdXFvs;tQ*V78{_S zJWs9kz5Xf;4Jm?yOW0)W%=mfT>Y4Z{hWFznt-LGaP%1vJt^D=vt{vtroQWO61uwqK z$AjF{{e28d;TQ52_SB1m2;)Hj7JkL>J*ef!=}DgLZAB=WZ)2t6JEV3PzWhT|cw~>( z@w5Cj(82KOiOwCgOeVrPc1BSj95gg)CGC6VM3r+ZWef%l9P#UdVV4XO z73mik`?%%#;K59wG<}B6pZcD?`08leaKjC(@3vcU4xJUg%%U+^d+RG+G10ppLLRs^2 zsO?NI6n({i)y^slb=JV#Ia?t*ga0x1@Ry)}F_hzst6_S%n&X!x7{5f|+S))yPFo6^XbzSvf9j`c%s9M? zR!==W{rp%v<&k^s6X5*%%yaCN0}mh!QGQJ)n@?tY?7yGA_BMJRT)NZDmWn1KotSXl zcHD`!6YVBqmZjUk%*bj5o%*@k{vSG!R)AKtr2{k9B``WsQim?Xc35MaHhqTI0oiKj zi+ORz9z&GB@z7zETMK+7JyKo-k6?w7I!Nfj`>d*i@8}oNRlT}Pn4Q1NllUGtfuZDb zF@73O5Ig0kNWjHMC0>jh)AEeYJ5ie9D?s^t1;Y=~!a(YD68r5k=u!aIBR@UMHs6eWb@T(W$YkrMO*3OJw+Zd2s&Wnc+|(y4@C*uxd92lO zfjDW|KF|OF%qCWg+Usw|2v7~j@pObxtFc_)RZ#@{ltH$^8YWK0F2JYu?3kBrlT9|U zRWSyWWhYcLXpC02aAlYBfQ9V&BW?Dt#D5W9@cB>R2U%~h?h97Z_ z3_ncbG~ErkLt&oD(yMiiPXV@19{Gsn^pvVA{|m|2~Aq9jld z6Id~>7^8Pw5iikvP)KstfEJSTOyD@(`+Eu&@hc8^AyLJLZ_Z(=kWe9vg3Dc`WJWx_7lYm~(y+N`X@N0fwE_wLzkfZ{>SV*)LGN(Z(MA4RcT23r6y5Q+WEItqx$ zx;Tjm37Y!i;*unMIO`*u_U^m3GDi|u#fZ;JOe8evsAqDbYJDGtzj}`GN!hKSeQnyt zS2n8aq~864B%~h~JpGtWk`W`q?*GY|w(B0>vm%m%0!&bR1``Hu)lkV)A1m&Xw1^qB z2Y%ee7ur3XW8W3Uv%g~ox&EbBXlH0xIu6dvh(xBMJEvX8+dtf&Hv)nbMt27&jubU( zIfI{DW6eNL;O@sNnG8YU4B+4(5jpXTixye~+c-I_>bfa^OtrlaIM|jnpg5_sa3}#5$ZO5jd)nitox@FkSP&FgP5M;7j@VcKcpqSL z;5r)6Q!`sMvJ!~#2X5)x5P+OE0beQNO2T9qfx6@0k8+XEFWl0ib|@s}k`bw0cG%wT zyX|%+BhV%jB(z=kydpI4CMFOq` zjzjhz%|q039;OCNTrxl53nuL_9aUfj90UB81YVcINBKq|Jc;e;1H<>6XkCx({*Id` zNK&ajcy;(Hmz=}ZOA;p?Kf%qnev)9tbeDw1&yMHUtATGf!&hA;j5l@w?@EDoE1l1) zR0JxfFTzzgf9fbs=knv9zBRb};HEe+P;W|~IOXL^UHG}SY6_NMh~djAO#q`VCJ+6z zh82AHjT4f@LurMPy9g(I2tDt7`fQn`Fo1!(wCO)&WxL6a+uMAY9iAGh*`qWY^^=qB z)FY09@3Bf`aMR%41Y@hhMt!kK#&}@N?89eJEE_OjfaM1c@H_9FIk0l$5IGEgO%9Ov zWK!`aD@61MC?o1&)Cmk9JUHFu&l0Bunx@Ufpbydj>f*C6=KB@6I)bI~r@-EEFD$P0 z?!Ah2;kZ^UItOz;{=|>7RkVpiL;64-Xavv0v_fh)>qTW)SQ9P?wVT4w$Ei%6R>3v zc9@qVBhfnbB&VHkiN3WWFZNp}sVeAl2xLJ|*^?iIKHB1$Z7M(J1V=*S}5otT|yG0IkODsOnCo&+vD)VF}1uvohFnR zHkWXDyN`pWB^LLWv?*T zfPj#2S7G?PL?b^AE5R$BM&5$_hW}Fb*e)tCg`_%wJFMKSCh{czF6pD@Gq66c_j*O#(0l%OPkGbAZYt z$%k)GPhI2?cOQHDX?E8=_mYwT2J#X|qXx2~edhiLtS5?kS(K5g(RAm6c?L`d02p%f zN8FIdN?DrTRsH&VQVo{%>}QVHd~w z{}_WV)3lE9(*zQ)=Q&oE;f%gBeC^9B4a_NrErG_Fvy8+2;K3kE-IM`Tf*Itr6eeB~ zT|t)|i0MfaKFlGC#C26}5bY*|f6}I1 zm|&bg=2?6F{W;d7N3Fen!LO~$O5Ln5bS*#rl|#ZJW~Tw#MXBVqBF>LWVim5?2TO>w z@AJ>UY~TCA9+Wv_9AAYYVC+eC2hyc*Q$YUEyIt58@0L3XXcC(_ysb(O# z?!r-a*q(dB7_cMH9)6kCVmZh0D=~a5rKI${&nZM*E7uXG_0lFc*`HjC}Trc z?QPFoayj;HK4aBZ<@j*jIHGG92P?wDkiqQXcL!4jQI0|_;D{Z9ci?J8M%}KnrWLrM zOk#cQhi5pSo$ZC4=^t1jFq!e&k}~<$FmJ_`O7aLU4Vi7&;Qsy8*OZ*zP+t8mfR#_m(2rB zTAXG;eMOvKOUu?n770W%Tx2oKcf(CL^&^E>oqoCT- z&^CBcCQ8C2PxmC$Y=X9XHAgQ+pyVmhyQD_V?|op+vu4?8_y5iAc<}{0YRJZRFgN&Z ze)xW1P_R25dBje-_#)sT0ixeElU`YEx6UBD?}Rg$gGwn<5*9pH(5XJ1J%gIcQ3UT! zBM|39w@#GcDf78Mz4S8s!$0ozwv`bc(S>Gs2k!MFyY>3(-PE)uGNCF0K54w-dkgax z!b{`rEW2%a^sWDG{Jo9vi%`_B1A}ZozH(Il4#yD*DIJa`2!c<2w9QB9kPQ~dJhVQ9T-U@eUZR(+tuH$97YM_JRGw^@a3O{xR z4d!xAhkDiMmU7Nc-A~L(0r(_Q+8eCp7vcpVF^*O)N*7jiZ5Y1NBt#$ME45ZwQECvN z3C|?+=%J?oQ;rxC`;V86(N7FjV&pmo>>a+phfSP}d{&X!E=*W>FTuo}v1{qZYRxZCQC)+O zqyczx^zbuV@b(NVeX+ovAN?|XK}&z3fzlW-wKDdYz*8McvtMl$#j^^F_0Fri#TktF zEH2v#k3Gl=IcxiEx4B)v_d(bd$h#@v5+e94<@4i#0?wX6ypD){pvfr*#_VHuJzwyQ=5s7#BN6)VRJYEAWMBE z#4=r&^7UgI=W(n9c0tJzN`Y2Zyh23F&Vxipny}H0=3g=`=A=G^ecFXZVCteoq(kj0uzHQuu0ehfDhlw&&wz^dDk` zoc${)hkWEhG=AHZ!vnkyBa9GVzXATz{w*;&-oB~^zBLTrD*}R62Ndb3JNuiQ~V;H`kj^c}8XdPJe;z!b$%(zk0R(*dK6b+H-*tQVesdbQtM6x64L2cWs9kSuOzyH}fW7n`>rjg0&hVc>=C zU91rts&u>$2ISV@NU!_Oed}4cF{`SdGQ;LhoMNv|e$!X?evu4=nHauS`Fd*dQkgI~ za@4h+a;o?E?%(J+z|c>BR{BMPCI!o$H%tDeO*0+Qp zu^_GLOGi3Y)cl}GS{`c z9dg>q_SnlWYhLQBd(nr|{N;pGZ8x;|OSF4d=Q#u4Nn^C!?<$ri$z^SqfEQJ7wS(7Y zLfI2~DWFnOw9%Z#IN;P%>~qX1>&j+rD`;}s9c9A%{`_Z@L3Ir<0)7hGtP>?nmeh~L z2*Vz^a!IOC^`k0Ex4nmkaDVlcZTuD-O`bv;J>&vJfr&mTf4oB8EnzXf14_c3^M_;( zPm@}ui@3)$f}(dPZ^~l$X~mJ!6}L&=qUypokNsg;-L`n1JBpt#+aU(pG15K z-l1HI+!9Bzw2vD4RESgHp6^|Lw3j{o;*0Ek!z95g$I5d6_R62T_a0U`dCrsUjz4J%8$%^+Il!kQeSd6hZGO8N(gK>zdaemFf9O%$^O8$! z^P%h7-%mZ;Y6lFk`c=BwuYP~6{qC=KaMB|79r!wvvNQKY(R1WZRtpbwn+U=zVLV@j zQ+wfH=jCkXisZcNqe~C74c2A?$*Brf_#ZVcw(a-X+vdz;yN9Tf@+gf2O6Q(=x}D2J z08d~L?2L;5udl$cVn0{EA}KCmWO_}U>Q*jni>U76H}BM+!%(}ob$AJzrCfqXOWs0H zKn08bv8*)8D*@&xP>wVVy$3idtKcj>(+Xu&RtY54g;+Ay@mE~sk6M?{NPh0OF3dW2FXaTK@3d0Ynn!0;tD zj0~2f2{3i907md4%oZ4FhA&^ogQp+mN}|Q|5jTAYh96;ij8trOGC6+9)61KT>mgDo zD}ny$Xfc4?^WcMa+{q`iGQ(eGA$ey+^w(T?p&hcvZhi*6s@JO6)9=bi%nBdnw-PIT z8K0?TVvxlEiy$h$KVd!XCnuf6UTFav>shcJ4Y)Lr z7=DhOJ(Dg-`ZEj z7g>2Nu=>sQ;l2dKPkmr*L8>3O+Pusx-vNw{37^Ef{;{oYXp|_OA`|}6AhioKE5u>vA%sQ z$INw6ebM$m<1~BbwJ}Tv=*#p2k&?=^$IiRh?f?4+=6<1XhwU0=8kwZ%Qs4fgm%#Ys z(*|LuCl8lMofj=Uw8P5gwZ0@5Jjdq|)}9qt>{z_*IwtDY(Y zacZy2f$c6^{SvOL~c@(FRTXBs>Ov%EYIq^NeX>%T#K=d;r$By1 zX43ht)5w%w#7_D7GNz<*ShxT*_9IkO;)ox8rYog&uH(SGBnTS z2;W;%TtQBI!nsX3OWmmp>9u-`_0sZGT}Zr}!36N)ag$hq*4q-S>dpRW4rj$ba$SWi zbTwPn5`?*^UG;{_Yc<5m};^<@T`&(^lHywH;_Zu)_N*KOF741bDPG=)J zOMfTt9BRZIGm|4uAmsCuW6KS=ZWhLhWN6MO^K6%654En4(m%PDxBI}pmO(-Dg!3-4 zdmsH5tx6vRM@{Q`cFNlgM;~Xq4<3ese?4@htrMvS!t7OVNDNlgsd*b{v5Ro;9k<)Y!-l)0qSA+fqgv1eNig*nfAto^ zT0-O(o$Aiv#JWuwe#;79=~E6cKE9;9)Gi@U;_5wq5J$}>dJU;sn6%^MaYf7uSKKfz zg)e>+xZc9Rkn*lO(4iy_IM-EZrRl2);XmDmR#!d&`#u`-Be8-c66^b=1w(r&x&9;ie!!vD3+?A3%(|+!s}16Gd6?GKg*@3FJur3qF=eBEQU&&l za~kW>&VS1ml^Sd|N`4=3gI$wO3lMR0G{1Xx!&K@zt6KqE0(s7b*RvU%e`ltZW_{q7 z$z&I^q8vWZs*ofEnZ7UAeV__8ONOlMq+#Az1KcU^+v1OATebG3YdRt6ueZ0~e%lT1 z$nu~Ryq3omb$39`=0}d)#eTQ|sj;t$*LdiK_A# z*2%Bg#}>cO?ReM>C~zI^j1Onp$enk$Y^RKk`}Nh9ne{%rG{sCsW07W42t<0TcqMV_ zkw(;TCqiSPXjLUnGHkOUcL>n_9O1m+{7dY{f8Aqu9C@0J+%Z7G`uQ)R zJEjVx$+6v1q|E=b!;W^vp8HvSZVA^Qa|`CzzbhbxYiN&N0W@MJN7*n21{?*^q@Y8MI-N(8x`9xz4QoyL4rO zAm+=20w(-9w~3u|=|y(;U+&ReF8G2Y<9IKQiXAdyOFMe+y=-l+v&~@KN0TsP6;{O= zavA?=;tF3~&+A9@eBhvT6sS=~aX$Fi-urBhO=YF8V^SI?iinZ7+-eJ}!31k9rhGGf z`?12OXw?|-VZXn~&2|}S;%nvDyO$N#T?_F!36T;Mr@m{s{;P30PY=?72ZRw;EGYeP zWUOi8JFH13efR(XKmbWZK~%n3k@8PYj9?b#bl-XR9qJ-%3&g=*?H318kDUCd?RCiP zSd`f6o9gVUqYkt~x7x*z9!i|A3NORlbb0|q(@DSHyBe8F&M=Y4vvO|wfYTDIBW}-e z0TT7N4{iGdrehz!^DZ0CMM#Ye3t-l4d%%41?8O)P(SP!HVStdQrY**wF!RLprgPnw)_MaEW*&%12X@_pUwOx9`F-$!A*`#-7 z*d8aJz}*cCovw8Ef@*SmE^4~OA^hDw4eT z=c~~WDB^WytoWWZ5PmC$?;%NA;%S8{7m@&vmo#(sfr9YR^*pM_3Gw8sJi>$`BH1>s zr;6nXAVNOspk&_&!!N+Je{|r1_SkbzyJDNfswEhHH}*mQ!@2z7Xk%-io|%9(qupQI zyAO3leQMCueym^-u1jv3F~ggK5nOcP1$F}>)Xx!%Gi(ONQk}OhNC$2i^(z~RMZQit zhrUK1@L+}b;V109v&v&)p>ysUz`UF=qs7=|&$DgNh(VkexT03aq%=lp4}S|x)=IQr zvu0lm+Vn*v%j^Ps`}N}|x?-4)-l;r|?BjRYa42wLRyv3H#uN+*p>MziJpf>V57R+= z9N986i3VHz`dgMk{GCHoU1DM(GXZ(FBec?g|HChf;v z>K}3V;dbFEC)*j{+tnJUpqoHj$nv4~&c(nRVeYSv8)x&W6J4d;q)UyQ5r}~Rp7vdx zQw2lU8_aeMCYP(KYzf;QwN+j0ef&4s=Lfd)W?S0duD^-ZdYv_Lierz14z?HHnBaN? zel`w3y?b@F=gz*^R;fj~5CzOC4B@CbR@ABA$yP$1Ns0GczKbhini)mCX8h`DpWP2W z*v3ts>~yC2p3-RIzyA;SvRiMsPKEO$q&m_mi-JCp3tiL8u6`DnllL}9)xUuQICmj> z{0ey}AkB#N9pLDVu<&T*mv|{lMfT6uX*{5nzmF4&tN%>!LaGX+rCuVu3d2wGQN+OT z1BBq+2AV!o@s&p95X=x18NSLM;V6uE{wuEcYsGH^N3c5Fir2ummf?$#Ty!0YOdM4! zRQ?5qDni6BVT2;Wiu1U9=_#UApx)bY8mPUq5vDx#9y_1skfd`0Zv(>p#H$yRy%6Aoec5*1 zep|cq$}3njBaYRe%F49Br7~JOsYCmbFa{ZkWMwrDZfWINpSl+QR93_f{NtZ?`-At} zY;5i$Jb?9PtV?y39lF<^HtO^w`U@nXZ6L( z`eiie7or&GB1mxBjGOtoakE|?JLx%W$16?q2eYhk=KC-b@L^;Z(~|+$&Y1PhRCfZp zc=|%%&amu4Za`bVzZu4a!UaBvblKZ&!qjThEbI;dPh=$JM75DlD7^5>XeJ%9g|E_R zqQ}sw%5CFhD_}u!u^si#M^F|l+JuWPvA)BGSrul0buvOCWzm?VC+($g18$k0Qn<_) z5R0$T+X_^&C_O8Sa?}q<+GlK|3>iM$2Cp^1{(a5W*7U-7D|dp~Q=ih02$Qx9%zhDO zgC}^|g0w^JAlxWBOtBYIl8uLO7XoNEV)d|qZbW0g#`e4UM($|%!0x^2W*gjhfKQ;# zz4jWr_NG4|QYW(d9(7s^abI)9@wWFS=vy?@S&mDQBvr__Q+LZOY?}bpx_XfmIkj@H zhi#u!?$Q?Dd(BT{98hyWZy$oZr46AMm&j|(9@l({8xKv`o_aDj#r_zBz?rWomb zlO!FFZ%_l@dWJ6=6F~>I7nocNLxuE2eRRxLM5qc^5QCJbPU3hENJk_zY!fJ6$`MET zdWVnR>iliedQfUVzY;%T&M|3-*OJ%=9Y>H{94z^}XNZ&Zt4eZ*TVeRgKt!lkG7_H) zi1zIBXubdRd~VXa!W+ID3nT}JWFZRw*3#R~0GPP{{Cl};6-HLgs8o0wb0qx(Z`A*W_>lRu4 zn^Twszz|_}I_IvdaOpf#oR=6}XOc;K`@Vs(8hDY@J3Vk8en@jr? zr1<

~ITY)>s_ai8Z? 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 literal 0 HcmV?d00001 diff --git a/applications/svZeroDGUI/static/css/coronary.png b/applications/svZeroDGUI/static/css/coronary.png new file mode 100644 index 0000000000000000000000000000000000000000..bb76c21110c6f53c756cf09e6f6a0dba6cceffad GIT binary patch literal 38012 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 z

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 literal 0 HcmV?d00001 diff --git a/applications/svZeroDGUI/static/css/junction.png b/applications/svZeroDGUI/static/css/junction.png new file mode 100644 index 0000000000000000000000000000000000000000..0a1308ca446edaf1010245eabdb620adf3674ff0 GIT binary patch literal 38539 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 literal 0 HcmV?d00001 diff --git a/applications/svZeroDGUI/static/css/pressure.png b/applications/svZeroDGUI/static/css/pressure.png new file mode 100644 index 0000000000000000000000000000000000000000..3a9a542197372b85c28843db72b41c1631e24a11 GIT binary patch literal 9253 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 Miz|p#i|7abANUa{hX4Qo literal 0 HcmV?d00001 diff --git a/applications/svZeroDGUI/static/css/style.css b/applications/svZeroDGUI/static/css/style.css new file mode 100644 index 000000000..bf3179d6e --- /dev/null +++ b/applications/svZeroDGUI/static/css/style.css @@ -0,0 +1,266 @@ +/* + Stylesheet for svZeroDGUI App + + This CSS file contains the styling rules for various components + of the svZeroDGUI web application. It includes styles for + the main container, headings, form elements, buttons, modals, and + more to ensure a consistent and user-friendly interface. + + Key sections include: + - Scrollable container layout (#cy) + - Typography and heading styles (h1) + - Form and input field styling (label, select, input) + - Button styling (#buttons and nested button elements) + - Modal window design (#nodeInfoModal) + - Hidden forms and elements (#vesselForm, #form-title) +*/ + + +/* Selector for elements with the 'draggable' class */ +.draggable { + background-color: transparent; + width: 30px; + height: 30px; +} + +/* Selector for edges */ +edge { + curve-style: bezier; + target-arrow-shape: triangle; +} + +/* Style for the extension: Selector for elements with the 'eh-handle' class */ +.eh-handle { + background-color: black; + width: 12px; + height: 12px; + shape: ellipse; + overlay-opacity: 0; + border-width: 12px; /* Makes the handle easier to hit */ + border-opacity: 0; +} + +/* Selector for elements with the 'eh-hover' class */ +.eh-hover { + background-color: black; +} + +/* Selector for elements with the 'eh-source' class */ +.eh-source { + border-width: 2px; + border-color: black; +} + +/* Selector for elements with the 'eh-target' class */ +.eh-target { + border-width: 2px; + border-color: black; +} + +/* Selector for elements with the 'eh-preview' or 'eh-ghost-edge' classes */ +.eh-preview, +.eh-ghost-edge { + background-color: black; + line-color: black; + target-arrow-color: black; + source-arrow-color: black; +} + +/* Selector for elements with both the 'eh-ghost-edge' and 'eh-preview-active' classes */ +.eh-ghost-edge.eh-preview-active { + opacity: 0; +} + +/* Contains styling for the cytoscape drawing and buttons */ +body { + padding: 2%; + font-family: helvetica neue, helvetica, liberation sans, arial, sans-serif; + font-size: 13px; +} + +/* Display information for the dropdown containers for selecting node elements */ +.dropdown-container { + display: flex; + align-items: center; +} +/* Position for the boundary condition drop down container */ +#boundary-condition-type-container { + margin-left: 10px; /* Adjust as needed */ +} + +/* Styling for the junction parameter form so there's two input boxes side by side + for R, L, and stenosis values */ +.double-input-container > div { + display: inline-block; /* Enables flex layout */ + align-items: center; /* Centers items vertically */ + justify-content: flex-start; /* Aligns items to the left */ + margin-bottom: 10px; /* Adds space between rows */ +} + +/* Additional styling for the input-label interaction for junction parameter form */ +.double-input-container label { + margin-right: 5px; /* Space between label and input */ + white-space: nowrap; /* Prevents labels from wrapping */ +} + +/* Additional styling for the inputs to the junction parameter form 0 */ +.double-input-container input { + flex-grow: 1; /* Allows inputs to expand */ + margin-right: 10px; /* Space between inputs */ +} + +/* Styling for the node, +boundary condition, and node name selection containers */ +.container { + width: 80%; + margin: auto; + padding-top: 20px; + overflow: auto; /* Allow scrolling if content overflows */ +} + +/* Styling for the instruction collapsible */ +.collapsible { + background-color: #eee; + color: #444; + cursor: pointer; + padding: 12px; + width: 100%; /* Ensures it takes full width of the container */ + border: none; + text-align: left; + outline: none; + font-size: 20px; + display: block; + margin-bottom: 10px; /* Space between button and content */ +} + +/* Before the collapsible is selected, it will show a + indicating + the user to open the instructions */ +.collapsible:after { + content: '\02795'; /* Unicode character for "plus" sign (+) */ + font-size: 13px; + color: white; + float: right; + margin-left: 5px; + +} +/* Once the user opens the instructions collapsible, +the + sign will become a - sign so the user can close the collapsible */ +.active:after { + content: "\2796"; /* Unicode character for "minus" sign (-) */ +} + +/* Styling for the text in the instructions collapsible */ +.content { + padding: 12px; + display: none; + overflow: hidden; + background-color: #f9f9f9; + font-size: 15px; + max-height: 0; /* Start with no height */ + transition: max-height 0.2s ease-out; +} + +/* Hover and Active State Styling */ +.active, .collapsible:hover { + background-color: #ccc; +} + +/* Instructions Content Styling */ +.instructions-content { + padding: 10px; + background-color: #f9f9f9; + border: 1px solid #ccc; + margin-top: 0; /* Ensure no extra margin */ +} + +/* Display Collapsible Content When Active */ +.collapsible.active + .content { + display: block; + max-height: 200px; /* Adjust to the height needed for the content */ +} + +/* Instructions Margin and Padding */ +.instructions { + margin-bottom: 0; /* Ensure no extra margin */ + padding-bottom: 0; /* Remove bottom padding */ +} + +/* Cytoscape Container Styling */ +#cy { + overflow: auto; /* Allow scrolling if content overflows */ + width: 80%; + height: 70%; + margin: auto; + margin-top: 0; /* Remove top margin */ + border: 3px solid #ccc; + position: relative; + z-index: 1; + padding-top: 0; /* Remove top padding */ +} + +/* Main Heading Styling */ +h1 { + opacity: 1; + font-family: sans-serif; + font-size: 3em; + font-weight: bold; + text-align:center; +} + +/* Label Styling */ +label { + font-size: 18px; /* Increase the font size of the label + display: block; /* Make labels appear on a new line for better organization */ + margin-bottom: 5px; /* Add some space below the label */ +} + +/* Input and Select Styling */ +select, input { + width: 160px; /* Set a larger width */ + height: 25px; /* Set a taller height */ + font-size: 15px; /* Increase the font size for better readability */ + margin: 10px; /* Add some margin for spacing */ +} + +/* Button Container Styling */ +#buttons { + position: absolute; + font-family: Open Sans; + font-size: 20px; /* Adjusted to fit better */ + right: 10px; + top: 100px; + z-index: 99999; + margin: 1em; +} + +/* Button Styling */ +#buttons button { + width: 90px; /* Set a fixed width */ + height: 50px; /* Set a fixed height */ + display: block; /* Make buttons block-level to stack vertically */ + margin-bottom: 10px; /* Space between buttons */ +} + +/* Modal Styling */ +#nodeInfoModal { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background-color: white; + padding: 20px; + border: 1px solid #ccc; + z-index: 1000; + box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); + display: none; /* Ensure the modal is hidden by default */ +} + +/* Vessel Form Styling */ +#vesselForm { + display: none; /* Ensure the form is hidden by default */ +} + +/* Form Title Styling */ +#form-title { + font-size: 20px; +} diff --git a/applications/svZeroDGUI/static/css/valve.png b/applications/svZeroDGUI/static/css/valve.png new file mode 100644 index 0000000000000000000000000000000000000000..d2b5ca4c3ecb2973546c7d54b5531a35b9318666 GIT binary patch literal 289242 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

mNL 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

b&OgNiiP4cb$6vPoH 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%0Ah_-COfh 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

Myyr{^;TPkYBhje;P zS(V$4w5Me=aIE6^c5lopp5Jna-)#G)$p`&)o@R}GEYvTIyvlIW<4N*v5W8lEPg3T4 zsjL7@J|u2NNWHxsBRadlT#BpR_rJPzigomzwgmk?!QyTreo9}S4g&9D_1$uq>yBW2lgx~q8EJ|x7T){%k5GIz&>_P-#*!i1dI{E4S}afZCMr0 zgl9wsr#;+JmZ3FFK1reWOE%V_}P>*4!pjn{5KZ;5#og|Lv2(Xg~sZ++VapnJaj}~(OL0BD*I#LM7m>3*G z@;Ug4k==S2+38VO6LBf$r0Y0rwmh-vY;U{uuBqlwTlfY2kEaoR7QuZa2&zVw{O4Q4 z@1p1QMM?Hk42*~n(xp~wBPZptE2|k+`aeym=IYIPgG$?|ag!#w0aN5j`e`#RRrI&^ z)S3w0RJq;>w6X;5AmKH68_VaeR#1k?*`aMvp6=G?&egI|i4(OEFGZB`?UyXmat68

mm0eX(N&?4yW2)$FosAe~be^8atPQ__!$JGrLFp zX!RO6xJ3n3jUB-aa8cjdccdXuDBm}a@NA?}?J4c!S6$L@mXg9iLf!(tP26Ygz~ueR zDPR@oN2%c>n4xV_|7;b#^U;K_0P41j_{huc<-LUU-VH7G;p(;~oG-1f{iM%Y9159s zcEF)^J9#>cCci^+xjc7e@BRV~Ofcp?f0vIJhJX#1(A=i*mjxA}XD(ZR%*p_Lcjh`y zFY+P{ch9%u*IYJ$FS#tF5#H&L zCidD@>F@U6?6673rbeOhazs}(Ci>@ng#2Befh|Sa*8>j?NUTFY;Z7w)212?8oFK?L zl`rlt_FIY_^%uKX6hsuozIJ$?-NK%n4chI)tk4MPHZ!{=7ovwiN3Ge}8}{DB0^6^| zJ*~>7%c63pNm}xqKGw&jvZ=Xprm9sBhv|gf`-*XXP#ektn_Z^mhaJiV!Ge@I%1!sHG%xS?GcDif`%N1_yWH@3Qa7;VC!YtHEf>8Vx%#V{q1jI8UN0?e_t~x5c zY5xd4+e6&l_=s``{VpAzKWBstI4JV52avE7a!{4j$fZx=imvtQn7_s6kFpaA7RK|q zz+2uaFDk`Z9N04?XRS32FG-WT`#5{=#u z50Asi;iQxf97`J(^KmLyj1^JQotC^eIjI3KHL6yRm=%mlZdq?5uIFQ?qD_%J74 zF5evtFxp8>ooz9iSMf~f8@DTg-#x9ER6RG#_*XsYPAQO26_xQs})wNpeyB zQ%dOyC4ic8D> zbD2*jbh2yRx@Hh(=I~x_nty-S>nz{&6Zt^QUs_E4eGDbQy3{_+^!|F5qXiO<-lXkIpwiHGf=^1YZRA*|D;TD=@V8W}$tQWG_GO}os_#h_(`<}TaAS^^@nRSrt4D(H=eb+<+2Tq5GmwpmmG)6=deCIhcz(XvVAFw9&`Ir-!L z)Dq-aIe|%C&oAfGfgq1_VQR5FT<0?>;Vpr_p>QY60s~_=b8Eq>&x1;Q*RUst#+dBV zKgPsW@?-a2w)oZ5S|h)vHJnUv`wI}sw*C97^Vb4!U|M&vyEMP@wOD+v@c1=uXm<~Y z4poxssc?k{Rz7%W7+}&U8dGE(+^6Y9+H03<~1<7@k8n)c{KR( z?xjDr&3CyW(GerfH|+BMV*kYO3u~41#t$pAw;b{`U`5UZ`SDIGF`+#fduR(=I9rtg zo%aZG?pM-eiHJ1g7EW$Qf_c?9rL>sDJK!8MC66HFRyanFw*Y7%8s=DjEMRhpnhs z68$P8U!4KlUT5S6j|x9x#9t%yp>_l6ueUVf-gqV%O|!s>aeP?O!uJc3lT+Led7AE~ z6+rX~>-X3yzbsXPh6&#Zn&EdzwRy2m&{+VfUeh47e-oGAQ?JP~T%(GY?Qik#fIcYv}H##N<+ zBGV{RjXK#yvMhuAY>_3-{bf5C7I!753|=m^plODSSd2Jx`PtxT(82x5(rS5a$+9m< zWh(*^%6semu^?%UMVWwMNOx{izSdphFWbQIT6H2hOYLHoDcjmAmB8MdlPQHzVGkQJ zt>gaky-{dN8#H=xZzBC?n?g2*cnDIg_Ef{19JGu9+p1LiIA+>cde8OITLbn@oX`E8 zCgKc`stB+L!}M4GDu=}eU+DRXIV|w%IRHfrApAjlU)yFqq>}xK+I^f<3;4L}su`}E z<+8BH=o6+HI!Ke4EI#-mnY2mf2qpZX*}t~JyG;DUxkoI>0rhg;=YX_0{mueT|%VggtY*IJMcyEUhN(Z4Fxt44IGq-INLi-SUxeN>En2N8UuYF zh~|lp^i;rUoROf2Rm08HWwFMCawnX`u0o>9n%>7IzO>SBaag5hc7M6OEPzcKuOW*A zMi+?>YG!sRyXTFD%>Mr@fG)RZe6jl#6|;Hbf#=`9W?Vl={(;v=wIF}-;SwC{R>~>ZA+t!6@nq~3%)M-EK`U_ zwfeZ*Dzvw%;(%F~gFiH+ZN1(RKh*f23N?gPp@zT~j)B;Mj6t>c)W|~>EeKHWqkRa# z>(qjN1f+#;e4)U`Xkcx$V!dGcO(JG&sbx2zZIH^iTwY-lZORpd8?=s>LtMiuknE;| zJ5&B?0JbLRu^E{Co1y+F+yMhz z39ZN4OhjvBN!H7mZ4{Au#5Dxzr1Mnp47BHgoE|Lf1LqJgF@yn% zO}9TDbCUKb2?KHAgl|12<4&HDlh9n;qqEsRRe3@BbaU-B9$V53E0XoE6<)?vF-D}j zw1J+C$4&u%R5AJ%1Hl9JKWKi?6nr8Lu~?i*7Es3#S7er;3OQqR8~;QejQI4ENip4^ z$JyF%iriwIRRI$3uo7}GM}RLpWAk?DCxaOAkcqV6rIPpIyywO)8hyZA`_{sEl2 zXce=hVRk~<2%dslJ#A9SrF5?asnve8?<8I;3#Q)UL?4W{w6N+<+zO?vphz-a?hC)2 z3uqvs%H$l8OKOUuNVRrTBrbQQ+Np^0f?^!iN~D=pd_=|@QHL(|IsYmkb#vG9RQK|` z!X{oXrV8GHaa?KN|4|wF z^<KK;D#U1JJRLE~Y9mht6&ZD%?Nr$0Q-f7Jyq<%z^ zd;AYDt?|XSKYjKAT}61zm$}|dqcmB!32zoD2d)B^k;%1bQ=3t)%|+eekB-9G3Y6D} zox&RBIe*ZRX`~3;+sV-PhSVW-L>c6fw_`5CbJryUr=gD!n9F*`I-rl+O^ojz{I6|s zSY1IxvI+>f$i0_`Y>K!|_0k7`wVs$0!7qfC5f~4B{CwTgYwbWssK{-|(>Q2Dt5utH zl}YWKqE9z}*DW1{=lpdz##K2F#Ij1~8~FwQu}ZKuP@BvH5|hU!3`D?wb!J#~CsHV{ zBK-jY1{L)csxgv?Q_M|)QtN25q05IHAZ~S4yIa~P$4Mmw@95l_s2~G7`!+a3qoS_t zK$YLWRBZ52@;zUSD2^3pdl3QRUR#A)&+ciwKjV2&Yi$e>ER+*0?dJz9*?ud^5 ze7h$kS$jyI4?U&7ff>f$=PMeoq>4KIL;M}-sC0D`EQl(yWq})HR1W0ZjXHs#UhQUP zJh}Il3DOi0wcCF_e?81z!3;L_0We<5XOo0WV>JeQcuV!YYwl9Zti6P4dcB6UNgnSu zV)W~KfXylAg&oc5PYQf4(C-DFO4b_kgPIrJ(Zcvke!G=Ab*icVr8+scV7LPb^J9H0 zY>6?TJtsudJts1xZe#qxXpJwZ5`CX%Cd9p4N6BOM&>3F zjM_N@%+zI&V=KuF;77$-i3o*8~W{%WrlJBy9|wJNk7x)@MGU zK3gw@_UmA#Sygt1Ej1Tu$*|*b)A_|BsN_qzK~LXvH}r;9+mxog2-*JpeiQtPq;J`X2@kpc6;M1xRiRLTNUj( zX$BsGelt#_neoG#O8w3_Yk0BH7(7Z-B^F>Zo-ze z3px7hB-1(IUJi|gu`3U-mROTu+|;acxC8FR;5=)!z2Y}!YFfjJmfOO$Hxa0xuon0P z2Dj+eJ}>1;>{Bb&+^;;EsHT10Bcvc6aspk*v-nr;z50y2Yh6yg|EcPkyF1CL>&s?X zLHml3Aq6V-@+S|G&f@EM7QdaL;73wG1eY78Z~y#G!&kECd*==~{Gqc*bLFq(+tfwAD_sRxklU@cCJR>OclM{2k0_&c7yA`Zojv%(U?1N>#_whdQ_x3^ zYCN_+A*Y~{7UtA9|8$x68vHb+LEpa+xXmNh$$oDg$lmo;bt~qD<3!2vPJ`UdZL9Oi zt=Dd=zdc6=tzr$~Xupl^Y8$99SI_S#l}YN8595qp5!r-mZ!_q%9Txn};sKICH-3;#cmkHM*C` z=c!6+KMh-|3++VoP#7v~H-+U<#7(s6FE~`nhAOG}R;;TyDZD>Q2j7j)h0|1b|56S# zs=hBj=8?7i%wDHuoPRqYA=tR;jrS;Uo$sMm$`xDN**)-t-x0|VhZG7=+QJAkf;a;v ze?^!dsoK>l!OetK9IJDqq8L{tPd&Y4!q?-^tEKSFEIqH`x*ranPoKGnZnm)Z_t^nB z#hbpOY`-ghlegkZc3)WfS!kN$LPP)XO6Nmjzma+GBi729GYN56Cn{6C^5g$FuMO;l z_rddR&3``!5I4f5_xH%dHkn8&G>Kw=_V+4s;H8_JCE2DFkhJteup=<~M~A!3BY8UY z+w-hl%13RWDeDux8>+A!p_e@P;2J>0fGlK&eVP98t-W^Zh4!v&gVV?SO<;#1EWPL3 zC(VGz)x43Dw5Vi)Lep%}GQ;FkEtDA^oDfMURHWopx#RJ+A9Lp!a8_GHIjsGX zuP_a+6I{A*U(hOg02fU3x7EHedn2HobI)mBx=4k~R_Z$4`M94^-)i?HA(JNn`;VsO zVSA{*Qj=JihY7-?g)b3}cxXrUjmT^evIXr+y46qWw)IK0Grgk?88->>N%MwM;Hs&7 z;KLZ|As1teKH&LI)U9RnCIxH(Sgu|gMcc41%)%J?=u=}$P*!(VsB5>n;llC5U8Q8; zPFtO2kpO2N=EFQ0niKWKQaLermI{t*e-h%~FI4W$w)x}g=c?t3%SOmc5@zhA9uYz} zCrl(r&%FuvWc?^yD+_Lcp+fE0rn>$adP)1gc!C1#3D&cIn~43sYPc38luWg*ssbnI!}l4UvKvvzlH>13Qy!nnZf52& z^yNXC;BEyb-c+imEd)0K{%Ed0bI3NgOWlBe4bq*kIQ&#c-0dV_%C;ujhO)+J$S4Yeq<- ziy{zXSz;nZuvRFawd2Z+36M?B6ImD^2t5E3c2ww9p#m?h^$cHd*uU8cLyA{*Hx;W% zM)cHm`c#hzWP#vfuosuUd0{IF61?v}IvV1lu1k%W6#Vp_DA zB3H=0fMS6o14@Q18MWuv~6 z@Jr3Zx7TRO#MeRqgd6=@MY|ahLb2um+?zxFPXyRR%%31izFCQufe@Rc@hV7Zjq>|u zr5S7bt)@z2Kv4{8+PBAdm4CHkfNudPM)zi1@Jo2n#!>C_8PkNvYA4T#f$ z=Tq!|sfhhA6*~$nvGmu^wsJf$K8mE9Drxl=?KKy(xoX_=>6jc$vFR(Cbt)ksHK>~c zobSB%8a;I{dy?4DQJ2AEEyQ)`pA^uz+UB~+-1N46hXS>-)NIdzf8jGQHw4RE^G18m zv9R}@?dbCwkSug&H9gg>!MmLbowv=yq(Qb{Z*{$C_`;+f+08mvmQ*a#;TlrsUq^^= zOwL*^#0eO>=n^GH1GXz6(2@m>AwkC6;%WlqM@EfFJ5D*z(_F1gS*P_IRUwJmXmS1+ z-?n|Rty8~dKF2}7&-0GDwUD$*O}_`D%m0mI4e4RE1BVPptd-BZ9xrr-<402n9>$onBE)|29wpW_k9^(_NOVR_5+H1A*UUbMNhh=j5mU{{HA-O|QO# zb+q;K*XBf#`D|%hYEfe6k&k60A`pa!vgEet`}o}Aa7F`HUL&vK$IB$dvm4VxCVO1(?rd8$@>-^qKKJcN57NQ9hz_NgukF~(8q<8Iw? z8hD$im35VuXd6R`*{(?k_KEHjTykv9libC);2RADhCs(^ho`n@TwTDvVFB&`#4}=S zHWzWSq(R(&U)wtquVWbbCfA7ZC0x>*#!m0mCSy&GG7N-om*f69IP-h|Nk7nsj-n z;n^_no&3mX=_+Lslm!0x=zDaOHf>gj&)%=6^9ca*Md@4>Dy?9%QlDrE`tvrm6|cI# z#UYA?mNkcJOfrxT?zaK1R^jx6iB9B*&jMyR9W1M}!}!atCmYhTw)zHdVAFyKY4V&N z;@qzW&x=J$u+`TbtA>^JC%nZPEwO*JLarhX>M5j>H?1z#>?fzfqQX_ zmMiHWcMbPwHC%l$QY7OCDPuF_SDDwreUZ_3Z;BBfWNm^d=a0uuc!+VH*!kXX9JbVY zr`J=aX{~p8US@-{G!`I2xCU^uPivlVDb)2uAE~uQ-G0UhAy$n)VN_|mC#@;bn`r&VWE{&&#IEicBKP-9=VT~k49L|Zc}M|bFH-I|9pvY{dhQ#GB-g`*_w6G~h>1@K<-O6uc#GtS?_1RSu$pI- z<*@mX@Q*vrA2Oyww^*Z_VkrUdDq5j5pL_06usrz3oK<@iqE~xXd^g<>wG&c!zT%ZS z{Qfse6sen9&rbvDEiwuNXS_2Ntb`PsEM^fPNWSUnS|niUz`oF5JOBHBZ{H!c&`HHn zSHAck$%`Y|e8^M;`>gg4BHfojV{ApFMT|0`M`G4y z?U1qIFLukvJ`!v%Ak&44;u8{&0!9*_Kc^#cqEI?LN9I~xD|>vNB;#sgx_8)>maikQ zC+93`el0L{P7PS7iLS^xj~D35VK2u)n)G(m_#cH@l-!R1vsnAGz-Cf42DQyDepL@}sQBX60O}%mW;(dSZ+NJ?0t($e@9VyaI-$ zpv^w3w6+zw`w;rWmVImS3*W4CB^LS@oXdQX43Im z+FflTXc~6+@7q_4%~HxnZ7OZ!&z!mh{J7w_7mDjd_K)J~dj${cy}!iFTio%8A5YR_ z41VRbk0uHqg&o(SW(NigU6%i7F@dLDzMm$Qj}fCWVbrW_);4sW#OHwTt`YXgS)oOH zO20vA4$F|bY7#r^bvnre0VqG88)6v~E5x2&T?}ln)1Di&qj$cZc_x64i|Z7!3C?ec zodod{Z&J-EN)`Qi?5UrBe~K70Oc;eZugFzw2;{0mmLnD{#pAVt2+_twM4j;xN{0>k zmzzja3yb_^+c6Ntmg4R-3$vxDVBK5}AAWVNM}2|66Ri!J^!Y81Z-x3E5vm-$*_GUp&)87g~I%I z!nJOeLlbT7QsA~Uqr}ei0GKZ-MD7N4SGjPk3MdkJ^yq^Cv1tw_VQyE;Gd^4Qo`GS?&?Rco=x9bobyb~vftz7{n6 zy|VdrG81sG<>NRx!ntoH!{B#3ON-6nTO`XGb_gvt2Xi!IbNq_1lhv4ck73%#Qf@pn z^E=+?I_5OOfcD9*46Vo|(>lZ$so;Rm{x9&|z}&e{EKHE9l_?sNK~+lkd0EJ*j)=A2 zQy|-4^+tbSKE5>BrcuCRXj!Bg`iK9Q_8ceDbV0)D#v_rA1~$=^eAOokJ(+Gb-n|uC ziB_n3j_D!I26i!`E*Qt;miY*k)TB1GTK*~YRasa!DCxjrp4^q&@mH<&{_wz@_EJUn zcuQr?eGY(#CeX%q>JP)URKRUI?Tg-c5}r@%^H(pSgolK6etI#U_hF9-^nMv(dh^mf zO3?pm4fg8}y_1^!|7y(-JUkR8VZfBm3!l=Ha*FYim9nC%{c2JV)bM}U`s=VLzwZke zrn^&VLApexQw0p9o1r9?8hYqP1f)x(L<#B68M;AQ2B~4_W`=HgZv1?I*Y&>F^Za@L zdCq;#-s|kW_FBFREM}Lz&7&+vWkvV-aS`8yiR-QXiq{e!@T|R1cwJ;E- z!Rz<&iAcl-z8|!=y{Gfb8sVhAwA(C~ygWEO{r<9#{+E6mbJ~Jrff3<9gDFE|fos0@ z@;3?3a!BnuwbZSs!zFc~PrZPOw_pI^fdVw0#_crUrvT-o#CD79i_jfWj3Tx(s;uQ) zj_H+-(7$IcqFZ#uB*4%93pBHsq%3@eGaINv1&EWhZD?f+2wK;iLgK`&rF0_rTIP9T zNOp=}lgrQQJ^4o!5mN^$(iHvQu2QQOWZpIzJSGmkreVzhdx=!!Wg<<fvH z;8{cYRV(X(TlEY3vG0TT-hcmUoN^D5q?avg1qD1%IBezX=8uKiGcaS4H8DS_klIZ7 z{hbfEJZkeTJrJ3!sG zbx;js)~>|W8hr*4kL!OjohU|P)!62!GRc2fDI5iPuLrH!li=XOe8*se4@;=)qLSCE zoF4=P`BcaxG}tG}0rB|%w^Iwi{ZCk!Ot^6-=7tnQ6t8!Ossne7@zJJL&!g`l$XRE% z#TRFp%9-}^^)VbLl?U`se{x|!^36#F+7(CezG8bxqqII-_~7q2;Z+)Q6T9Do5!6aq zRu?d1X^?DWo1q0?#_DB13OQHPCug!g%p}&6beVV6)`s)b-TVFN8$7}1dLoE(jKwbXxUxR~huwV%7h zVEHNuTIPdp+><-woSb8Axb8MBZf7+ir@qXy==GVPyY9Mq^+}-oG`W9epPTBH#ZTkE z`TvG=WABQyFE?~lfTt`_T{0vha90Y(0%KI*&U;9(p}8_t~i*zUj*;yEsfI{j_EB3*v~=F9aY4 z@N2~qa&%s>LX~8hn4^{U+HKuzmZ`=baj|%tqxv{~FQ zN>{M>w!b_R?1TJ`*?Q!6-TPh4AICy$g_d1iNBHp76fSfvvh3+pR3&qQ#iu_cvSUK! zNycKoCnw!Twu3r4IYIIJ{-E^oJF4jaUk~*zMF$pQ-FF|F5I}p1lROhg-@{t;;H`8t zG51}Y74G8`Q+O4y6>)Vk4kxMa2E*ZGvdPTyQlYw#j!%jq8mz&L#M1k&5$9Mo4z)~ z+cj#gGoaTD)efDy$ z_zDk|)n2I`Y}{PKrY{o0Huj6GAB|n|#p!AElqb+zw{0zF0dYHTCZ2NmcVgoxpg0*4 z5_$BMO=Kr!pR`=zqvWn+pwjZkr;}6Kd_`6~TI{?&V1-VOmYK8YB>GnjMOJJcDHQk~ zM+n&Z7gRL}75SMuVWgiM`hEvM(@cKDTLqI9J!b8J0#;|5!&ycaY^|%Wscbj{!BhGp#$enC#b_Rx~G`wT`H%~cybkZ z&^7!N$eS7!Ceko0;Is0G2Ho=+d&iw|d-A!wVHk0DA)Vh)A3*gBxG5Gixt^etyZWu{ zTP@HK3`Q~`1>J*8&1*Dd^#JYYL+OuR1bsJL`$vMUc9G|s{c5r zd{H+k=CQ3h=YOgCw#zFQdtnv_!F)MpOQiu=FnDHtSy3-LLf4zzp2yX@+@{9V+KClK zVhQo$UY7QJk!_cbUOm)G3-}#L;|*G(cjGKw_*pyNabx2?TM)Oz?zV2i&n#hebMTt( z`?6G*qS8Aex3`{JbVD7cjh zq?u=oqmdHxSR4bzNyjH-DgowCYpr%EZPso0L|stPRq*h!K_h6aj_y4lZ_Jh2i|CQ) zVye$0=bC3WOzFr>Z~*(9H?(<+&zCzI1St73!5%8hGMsxmvNWzUgGjpyQ3%i-9`GHEkUjgZ-xMWq*oZF0B6q zeSNb}N@oOjWP&79_NIcV7Zs7iHIAfSAR;>=SbFJd9WrU)S(?t-PGjb3!G_~8QY3?u zUB&x0;0e{X`x}FutYX;!^#jN}PYBw2@-$ z_Ku7LyG20RQ&X9yrJUf~pzUn4Dx5=XcZr*oG8;wg*Mgd*i8Ql15TbbYFrsd5Cf?Rr z;(lW>0Sq@D)CeHusFB7KU-J_+I)v4OX{DJ?UzyLOS*nq{RbDIP3+-=YPC8Hy+pG68 z=Ii2&FaT0Q1bJO)FP6teDz)JwRl1;EnFM{kebc%^eIblRdPi72kza$uTfIxY=bG0f67;oj9wsfJ90bxf!G)iO}P zJ`XLO=EGVAHw$9*N*yKCG+OMw21(CUc+J}7{NFY06FTGXEyu<@EXIu4$G!7jfN zd`?&{Q-hxq=%BLb=V=FV|8g6a*{d(=}RZ^6|!gI+#Yf5 zzC(ga7-dRvzh5-U_OO1yJQcjo^}Qnh^BXMx@NxeK#;nYIFqR&!Z1)R6uXv_InYI&d|v031|o*r(oXV0?;FHIaoaw#fTyM*!H{fx35bh<7T>9)UEkFQ8z*yKO#uy>#Gd2^$E zr8`C72imEn%3Y+O42}CX5iU}1VRlCyLhRPF)cg_@{N!@djrqFvD(V!FNRIYpG+2`U zq4-qNXTAUv<#G)z;YgBs8Fe2CUBoxQoM*A|2`;9K7&K81fJ^$dINqd}EwU@v@AL1-e``*@TXXWnIA9C_Y=QJEOpS4qr(w~D z6a5}Rj`Jdi`*W%j=_l6qCQvK#*1r>atcYrMy;Z)kGNmY5Hj`2AO*&u@!2%D_T#lQ; zs~NkP^)2IwY~d-45Mj_f=SVdlkJmcd`63v?%!}4R1vhPW$l5{cPA}cd>E9bW7r$rO2jsWKF>lF` z3%GKOV>S`~F4Lu|S+cg&V1M&9S^VH}_EDmJZN+#djk!=YQ99N8RF#J@a(bVhWmi-f z00SSs$31=Zo=0C#vSsTDxoB}C0#)f@H8K~IQSG3~XqGk{E2QdA+R_6>lLtPpLkT+> zfU$td8mA`t!#R0_57R6*GM4N6ho1rdO`5^mVvVTTJbg_2fS@yVU-1KX9`uX5sFoYm zbMwEb7O0D9*!%=tj^X2NZX}10c$MViKgB?fnq4jwD22JjZ2GB}8MD&?{uP=SO+-4& zox9Q0xQmj(kI;fZ!9&5S!eeu!J)`BXSVzX`8-T&A&ow{-o5M!$>zC*))J)qf`iv^8 zwW!ebw_xy&k?L=J;3qF7hWY0{6tx$q_A6lyhNLhay=9XcBCdaKm1L_gG&{QhI&K3z z&p+}>+iFI?X~_MQ1PBdn^FO9^CLODZI{_u=OJRX8XMdWXAl%x?0@37RuA7at1_FcB zVTx7)z_bo6U5r+`MJaJ3F5=(+PSXYcciNP+5%ItO{gNj>xIv&t_q--P7?Le9Z6B=% zm{(={T_-pqzmIOemcnyD^+d^gUpkiT$~!b|OC*uCUJ0_^&g1aeb-lKQD5AZ4Wmo4WSy{A|LuDR`# zF2-j|46H!eK{kqXfSbv6H6~aIkJ8JRKvu!XiRt^xj?-wQ;FsSX9p10M$zgyyK18pB zf^3p-Q$4=5R@=`O#4Hkagw7*nzWwo{4WEYXyZ0H5h&BHR zM;3Y1z_dEZ#i>CworkBq5!ABg*Cio}clHe8HM)(cA5m7ii)4aCI9`F#k6fhwtylxu z2QWY2>wxmRxWXP;UsGyb&U`~%N!qR)9ZH67#jovS+v8~d;2A++j$9hG&xK1THF)#l z?=&H7?R2~=BufCn%r-BGU@HoG3=r&nhO~sD8|Yq&1&@Ag&+zG6w{={vqZYdwVJ)rP zsXQ4<>b|6N*T&EA(&3!>SQRj|2wELpXJHV4>tKBgh<=-@Xl2-Ay*^V{;jnZnS^|g5 z)FOY<89AxkcgO4B=f!JoXVj-}9`M@w>YGG83b;5>C|Al!?GXz=vb=|iU&da9z4*K5 zs#@d>4i0t*7N`E~P&qd-{qrHP)K(SXPouQB%fs*DIR()*5AI_$qSmWHl0B1+%feo! z(Q)WpQT}?>vZU7jTu{8Kp9-6iJ_ZMYwVf%7X$73_^d3gDxbL4^u*aORbAV2nFDq6G zanB>K!p|`Z{K#RgSNNz)3>f$6UY$ud3~{p0Dj;7^j%Ia33;kqq{BA_iAgoV2uj*?w6)fyacVMn0mSd7q-F_eXVR3#05ow`YBzbbbtuP2H+R2S=i zXqKW)o^B_+iU3MjM+&vQ>D=$sBGADesntRu(@?dx4{qSBnxZGRWiP(7UDQLys|O9D zu)xFYR#O|sL1zsgSTN)RLkQ2yA z!d6mGXcN=DvI^Oj(A#xY6{ucL-EybjNdKgfQ+m_H4iAhWZ*e^?>F@p)7YD&MLlp`X zFiHCTvbndo4?*;xe7`ko8fM2gJn%sMIP-Cd-WUx!HbuH1f zV1?Xw*%3{`R3-aaGh82~@;dt78b@F3OzYVqx6csfP|RpN_505y5*hJ25y}&OA(6zP z?_N0+Js^!goKJfj?>3J7J7Vct5gPe=#|HTj(5HPM7sc+tT!c( zxgY){?X`uUc&dXe7X&>%jm9u4bE`*rAg>6W=%E2e*?Tug{|qVT&)dmsnjZqPH->N) z1ALBNXsY^z*s>WS7f$*)-Gh!|W2 zKkuXTFkfVd!zfE9=d$bJ?1z$HEVahgc%&tzLpnBUe2EX_M^#*tq*F-9z0M7OEMAYe zWoVSIlszZS(61lq)dWrw2~hTsEmdZU_%8rC#9?89#c&rlF%gGL`yP4%anijndQg84 zVX6XxGZN;8Sl7)049RWvS~bK9Ysv?FXd%qvOJ7P@-KG{YD?c8Eg>Y;KZB6l;REuFD zBtBz+t~#&h5;lerv5J74}r=79C1x|EV{RVH3wt<42t}mQFUA8)*svuh(V-H*ito z&W?FaZdUqC@}{Nw({=Q4vt;Tl<}XTtei&7q{?0prpsH57PqL+srCN6ze`6qE6ur@l z&7W68oE&T8?aT`w%XsO+@_&t0nT_@QD~`zC;jQfFJ&ymwTk;B+g*nMB{lV~ z178~|W|D;E>Q4C69Bmw#hlC?-R`G{(z9;oBm*h!?IAP|Gsl{g*!rF*oPlAqn(t;o= zsUO;*M9v!`lG84dMYI^B{#TBt5Y)`C4BN6tA}Yi|4czstohq|THlq%!qkyWx;<+)o z0Mb?dgHx&DO{ZDu-;)h^tAF?_4#5}_R&aZUf27aQ=aN4Yja5NAU<|~ey}BhW4sji| zS7E*N0nl5*0&hJ)r>dpvZOa}p#c7)grylGE_qt|BD0#;`yG zM!vDCQKJV1HSRB*r&WheXonUFixqCQ*>ZA3-9Zv}>C5>Y36`IAp%X=DKm?^yq4+xs6 zb)bQyXH8idE*G0OM%8{hQBg0%eGh74J-&KzZzgtCn^lq;+u7w8?`el6C4pytS81p6 ztA86NxFm#m$2z)YGUa{MonEIjYc2E3@on9kkzgg-eT$0)gRJ|;Y5u!1=p#Nh3Z|fj z#FgVU_o`O&xRF3Re*M>nSxK)U!BDB=FLbQ+7#6#odLz_TIA~M*4Vkh_gd1x1w=~%BVpDVbXS|d@6GjhV zMxxPM{0fWFcdX!r9AL1@6p*?Kg0L)dsa>RX-F$DQDqJ>Zh zFjOtGPS$p@?)rDB$7{jG;gx_N@}--zFqSEKo~GQD-T9%b-=k$mpiyvE^ba6)-_rvU zxj~Es*&SR5GC2z_-Y*_jR3@FCC%m-juzx?`(sr)VWy+N}&aru>G72L(#2BLV<7rVzsG7OawN@9{&Xy{JrzNcFtZ=qzMO$m#xDr+23`D*x%j{{JV>B zzAE?8EL|2iH|-$V*X5kYpZ*fUPD~WaJY^Nt6>JhLkjdp(yHhekbn? ziceY3dzvk^#avcJGvtrzb;((4_Pg^uqTWhW`cO}0(BUJ?>hV*^ruRrmswv_LL@V&%S%j%s+oo?6E;V|E!s4zsv z``=|m?(`U1nPNtRBMl=vB)1}6+hsKahjSZ75kFZ6 zjUoeaMYLZPkp<2D&SbtovpOEvt)v3#D?;X9N8`r&+V<@dkw#_OoLR4tWwQRZlk7t> z-!f69Ap3(>L6au)=tbkY)0IBGqA7>ODk9igV5lSO&{Mg&W93)x>2Lebn%-kD<`xVIo6J0ivKTwx=MkxJ=IsBADz$!zmc{jdZvrMF2^p;5Y8*)9`|9Ivu}|+^kCNmK0}mo~ce;8go< z07;IUai(R|^+yuU8C!Xsus6+HTgSXm`VLSuk1o-<1~JNd%adZG7iX!t{796_s2o&Y zWv4E8)2Sz9Qh&POE2f&5Rorg;$Yj@$n%FBt4pQYe6t$-zSR(E}{l#i)pXjG9cOOH} z{(*1PqJL|Xy40rJR$o~+9zLwfb0{W{+^Zt^vaE{m$#Y`07VlnV_12GM_!82w)_%!8 zNp*{i`BD0`x>+f^5_?b3aK`a;hoSvg|Nl2=xn{$~$*d3}qzMnd@m%;Cw_k-sC(1US zH=P8b-&l4H<{7c#N?8NQo|I0axc*mSnGf!w(>TK6VQ|*shIk%v^XOy`_&NXBuw<%J zb!p9eRSaoyS=%4yQmlU?0;>mq$&AHBM}{^iTvmiO_%-Qf*LWS}`QV%$=9&&f;zUC# zoV zKce}?xP)%@B6+*?6(l|+w2*P-2@qFIwSYni=j&y~|2+)OG?8=PKpWcc^)z)uC$tlmwDcNEi=BJNClfc0fDf{s$Ni=Rv14N z6aUPG9x+!X!Pj@9!$$=xiG~h$dlODjuMB9xfRdUy6#o}|reZzX>7a~7#;&Hj7IAcX zl?Tqr3osVI0B>ffvSpkEsYtPGciGsAk!z7NK|Vl&T8#HBt+<#q+G0-9KMAVv!(rZ& zdH}&CWkujHxAga08tD9t^*y(LT8N$pZHfi^5K z$h1BN@PK`cZaP55t})u5KM)Uc>?B-9n$VQCV8Oy&`Fb!lb__&XaWnWX-y(~IyO6^o z`Ujut@s=+2-Y9`s@7M8u_u2K|kJ)FR;8nijBrkOiyOEo z^lZG%a?h;2rNEZ9UM;OOwK2!*kXd1-?1T)?kky;Y#pe1X;X6Y@ufX|;w|g21tSOBc z%cE)TmGCndJLQ|m*3yNqLEkiEbPfTNxml9eVK!#AxogL!>#UYx;(1OzwA@>2EE@D) zL%J`oWJJbmzW>+-&Ek96&UVYuoXg$q0&B{0_P?C{JUET!9^k%Yx$tLCJh+4IrQndP z_ZzOhq59*sG`JY<7!q^;_;P9XztC#SDFxS|0CL28zJKg-SQW6%pO%=`i zhsKXch8ob0X#F5+^Uj)iXU{d?Y9~)ENBSt0*$>sAmnGd!ou`JP>iX&hcbdpoo7&NJ z)5X`hU{)$C_V;+6vjrV_-<;dZulD9yI)5Z`!pO_K;dU?3=;p8B$Olbc2rxsIqha`e zS^(ALUiQmNkA`mui*?=XjK|94!-bRQ)EHpBm0E|p(*lsSY!!zrbMg*5*wMYt*KcT zT8w{H=>>gsKuP4M4m=Oq3N>6n|BJ>)L{{HqNfu_BvJ=-a7H$F-eDuLHmuYDZF_k_S zm&Lj?_Bi6nCnI>h2EpPy5r6@QDYq&nE6pB~^dSG~4&lu#8G=y9qpd5K<%c~`p;DB_ zLIDym`?OiIP{&ayYAzTOXxYM^AR`sD&gFH4{`SGM$Qf0^#aN*b2vGWv@cRk;`)gw-w-fr zwBV7QNJ=d^nx&r-s)6*qV;QtqMP>XuD?qN&VGG?Qfz_azg@eTppecNRm&NtkoM#xO zoz9m#tNq$$#AsaOQc|i(HV#D8oaj0wGxU>(|)04Z!7F-tSdZ7~P)AT0o{FITPtjU3J4gpMad`rQTBT*80+Vxy>3q zLPCNelq@4uzxrLFBb}W+E_47J(GrRX=;JbzkKrdMnwV=$cdu*IqEx+?&6chjVfw$z z6DaBhg?vWB%f^p&EpcIPEux>i7gE8-)rCQ4y~8_s3E)3G(QjVjBA%`j49VrzUt)Qw zq&;mxW>lMeCk5f7)rbWmpR=P`-m3k!h}iuSHTmb=dq&0Bt!)Mhlb)Ow#jn4fM^k(h z5b&3JDK?~S>u}l4JLh)(37SDLwy+R(zOF3b{3(k8pF!mM-Rp@ecXRChNu{je`gbkB z?hxSSDFi{TrT;HwyAXY9IL3Fk9q2J<9T4>%xzN`%l}GMcXi^5%Ta8Nlq`6* z;5+V|>kY+NvN!qJ_+rp9&JscS%EFw?1~@Q=Xyo+~q{O(|MH_MtPU_c^t88lqi_(T- zU#6Uh8`fXx(Y^J}Fz~T{t5*}?+qpn$t0H^Dy0w( z1Nd=)r$u%9iw(=$#R-EEf3b!pVl4%oexI+Eo6s0cR#}mA%Sq_+Pv%>+{{*~k8oYk^ zucvcKfSVzwA=`r6in`k7`7{pyJ>@&`Te^<9@+d4g~)ppR6JUJT-=! zpaMJt>26J9ii68ue_+~LdxNcpp6T#*i<9H9iv?NoPt1o+^3_I2Tls8K%o=*d}*)7PLx*q_= zjm~U=-Br^9@}eprtJ3Z%_9i>473+%c%7Gg9>4NbuW~UXpp-g9wiutb| zsxTd#Au6#%e(lXr`<|}R8?;s!1TG~Ee^VkiL$f$Nh{7=C(VytXq)(ojO&Fze%uXDf6YE!TYC7T9QRwX*OghkyK;`}YBc0<7I&Gm+-5}O8iv|L!rPC>$)tk&$xr$g?R1x`Ez}-Llrz0irkD(~289WS4+eL({ zJRI@1x;Xh7b2LT((i|5vBIU0ps3iAViQI+HlfjMac=(;_2@7x$`_DsgB|`W0f}b9F z6VPw3$lLtpO(SNbbOXPDJ85-7F!m;vet06q+iEoFsMq@<4P%D0X77D=7??97&`WG* zyf<~JYPj{x-mfg9arS9xt@85+-+T`yaP8+?p7CAiehfOvp@_x{+lYiNOiC0Lwy!== zmH0_QPepIK960*eZv$;WyI&bf4tbHF!d2)<6JxXJhaVH0Kkzy>_J_7fPTQ|({NuX2TkBKL!~HyKRZBBNW= zj|gTh;&D%<;Yu`E9B$BY-{om(`}e{9PQem0sQH<&Nfn+GSC8^gFChCi^TwbxMW#Rl zC)vARk_7QZ)mq7)63DD}O7MMEw5Lv=H`XTH=7#<63T?1)^{oXFTK*< zs*Pz73ntwLTv|T^y15Yc9V~U~uNtT~mId|*M-TrD&KtrPF)v>PxA6kF>9)Z1r90QZ zOLz;+XnLz5agcS&nfS#2Hfon1&P0)T)IABKR% zUhk>n@bjq-C=3-pOg(Hx!n(e^E8|3CRf+?FFy1 zcerRsbFSJF5;h{;H08)089Y(Z+qNLZZ&qnca+e}%_>{tG2F{x(agJ$d&p^pH{WNP_ zG5_v_G0oqYwJUd$I-Kp3gbo24l*>dF5)unW-Yn>Gd$s*7`RL97I|jt7VBXxLO<&Jt z<(on^pYfnefVb_o0f;HinS72Zn8-t&Y1PQnt|ynFaE< zh>^~VY(v}nx*pZ9i7|+gHKlx2eLjns<4VdKx&A&_u<7gjXAk%9YgBeIDR4*NHN|g2 zja64YAG8B+qU{AYR{Zu1HzS=Q9#*WKkD-vB-dLu-;ng!eDc4_zjXFF^u+paN)sM}; zFC6i~Tg%9p0E1&(#K`h_EQJYUe{XS_L+Y6mCW3x%DJ>__;C;;N*GUQy65F+)?BN=P zpIv&yXH;9cyV-vk9*+Z~3^aT@*a+F}vfRTbo%x@cCG6ZPa;jv(nKhk4z)%VI7u#G; z6u-U#=yIiKXWZzP?t1TA1FP-Ao5a7#**!J6?G;9MWQmiVn2vuJ3N1@ZAt4JWl`J<( z{A3ecpmvb_;AU8kYby4RKiG#pjS%Exe!^&0^$E=ZYCWTvPO6W=_Q7oj#0hDuywX-} zI?d?aii|~8iLX$M{%mbZL9zJMOtLIzT`t+rh&<1E3pB`2ui`n%!mmJ`=aq{)5_ zj653hEd73orGZnhlVh{K;~4z3i~S}+LP%pmMHZmB8~mUQri{F-wgBp^ju(fxpcapX z%V>3nJf)BaOx-Sz53U#*vuNG~iK7LlQ}+0`{67@`woI^Ykg>53GapbLp6gCXx}%Gg zHv8tByzE75+g5RpmAww@l(Ne$nIAqGRlM9XmjG(zFYkyn`geKV&Scr)AH0@U!4xs+ z^-xn|=g*?><4#Tt4X!UkF_A?%H2a4`u?4PzAgB((691!o*{fv^`?B(PYx{gY^=qI; zO^iGN@M;E9vgs>9Yf_yr0j%joV0v_<5uG3LeeHW4m|o;kz(v z%fYW_D2i#{0p$Y|;qRP(dElLov-@VV3KuOrKUB)%BH>pPd>ZXgjjUR0sz@<@YQ0Qp z^9aOkSq!V($Dx7D69UOUfR++CFr5AOI6_y_=`Qe?|hFM&JKP)j)!kfZNiR zB2Ibp4^<=OwSyn%y>%CtSkeP8nTG7+EC$ip*57GZEL#9=6-za!`Zc z(qVn})nyxeV*bY-8Imr&1!_5*iU=Wfk{>+GSg6%H%-^>pNJ0Jpc!gE(27h5~yiWXA zCRc-?!H_{?|EbwgmbqnpdWV}!UG~iRjWkR@B%$mV%OqiFwu|h1N^jd{x4M8&5;j`7 z!S7x7wgGI%J8}E-$e-)<2FI^|5JXSj|5$<3ov$Ra2VT*@MMOt`d~m{y++jXf9FPyR zI9oo@KVnUR9tJS`D00_E-fL)=?jb*@$v_G|)W0Y5tl>K8Dl1jg zi3)nPGwQgvY(^lj>eW%+d9&4;ow8P~kR?09FO${oI=Ng%*CP9ME#!7Q#{KCg3!R(c z(9w67laO0N59!7iwU|3x<}GBe_B&=}yTm+q!`6}$62eo+5CZpfY*b_g(Fmbr=HuAb zM(l{IXG4}at*Xpc!QYu0*48?~SQrk`W*ByjnWeMaDHV<<87lPwN5wIG2uMS)%1dlP z8cbtZCCuyT`~gpzK-;L`a>AsCIL*MboJ+tyT(jDcr7m3@q1Yx~`bahuO8DB}>b@;z z$@ihW05r>{S{&r(>m(mu(aCz|md{cE3oYl4W!nm2;P^+FM@I0o+4+=jhSjHafa0Ya zm&b~6RtFV7D6VbRB;4^{Soxd?hFR8tt`go#t zISNmn6`cDx4~`PkUBsnMWiqj0NRl+E(w3U_pQqL^wvLv7J9lz)ksBrk4dFH-r z(0zpgu#5uMi)ibbWC0Trd4ptuufO;GRHO}H;vE^$l3aYa$Aby4etK_kxwN#^7n+$> zzHv)Ylos`CVT5nFnaCHD@)a?@oKqw2u89Q~uPE-T7&)u5uZ`qdgCP%w46@i(=ckc91_~5QI$7x_X4Zq;V_RffQ}p z(P<**)or6jX&PTf@QKkp8^wP?u`hKfa`0M(Xy?y(G_q_tMlJ~DNb$HB=xT=F)i8+6 z>_~Y30XNqCpg*rU=XQcB1F-}si|K?cU>=)rQ>AMIjmJ#$9G80^PZ&LRrlJuvF{73h!BKw3>Fcxi{X{RjaS9sGk@@X-czY1Tbm}JT`v)DC106{A z$l9h3S&Y#&L*+C3p>wyhjZ-hCM^WS(4dYaZ*XjQDqLjv=P!;jL7SYw9fv08gpM}t!WE(l#f z!0alrC2j{dF|3Zr`5Q4+VOmRB+JNO`m^PVhDcflH7^&u)MF$$Zl=UloA#O{11bt<~ z*{qjq@3g&+5E|1LPI06ia(4UN&*V$?C%6GoRm4$YS(dfYD~LXQpcN4n+hX?D(N~Vj ztB|sv;%yorTS~q+*vB|ZCV-lc9QBR$uQIHeA7n3DMg7SdO|O+{RMN_#&4>pzKQ`n$ zZHm`pMto#P!@=}hH{*EUkGO(2W%jv(#1{b_f4%vZX`8ql3oN%;%|_4PNw; zHeC$D!tR_3gDYmj`qYlE7aTX=>rfJ14+77`zbP$a_x_{q%PR+e-eCHIQ_JU6uz&>y z27W;HxOIdExK2tJ5OHxfSBlcscYEP|r%2)3cdB#-YUP3w?r!$8zSxHLQqnxNqJDY? zU&c~)WPX&mzI>3|tV`e+u{S&Dn9WAo;xo>vr**o6V=Xjfe`m@^cBb7B{ z{k4S-U=@%?y*;UISAl;%xM)mwvB!snau9G*U61B&8~^-#kIgv3jMC?`;aTw-RZ=Pw zgD0GBucI%pR*6fnEIdL?p2+D)<+<9sd)}VVcF>RM=lU@VWm^*=0ep|&X5bd?7;M=$ zX1Ke|+?RLmURS4HTitv;6qls)GU*;0U{zisu40vbYc4tc-4L%ZkbbUk-Loa-CpXRc zoCW~jz$>zf!vEzXbzL@WC44S?@c6R1o53p470{dgy8uXZw(rf{6Ni_%oYl*A+s!py z#i&lDQ8^UHV#Y+uw~#QLR2bra)ah5-3SfpTRL@rNrNW80ha9E&Hk=$ffD&@MZ+h92 znxO*q%=!geM0Hh5#HYpKPK99caW&V*?^eh?B(WbIX73&j_=IN%s?HjuRcOQtVt}zX zyg%}l)a{;@F6=29_F&I6u6;=_-(Wi}JomOddWdigK>xp=JY_zZ4LHUp9kT9wmVRn| zqi3Vqv$BspNqSsndEt~=oVr0DIZk`YF%UZ35?(0uu!((%Sgqn-@)G?jufBk>K zw>Ox!j>-b|`5B?%VSvQx7p%d@Xt?Q_4RWDmV0oeXbi2CmN5J!Y9f(jyu}LGBY076% z4Arrn$|6skz*%iSM^h=k{Yli+lP^BF2*Jcwoq;@q9(It^1hEHB+p3U43z=Vq9v^(M zrEfjRDV(ZwWDmE|C5|mO*6)j3)QYM<14@_(VK;vA8yz<4J^dnD=04Fr&%?oYPdW)a zSr*;U0q1KQdJ6_Mc7+|!Rg6{dK`|sJ--_OBvcLP#h+(`_x7iRTKWY?;3anO4^R&)0{Q<9 z38VnYr%fwW;;xF9+diV%{>=T6@q%abwR?00Gwd~wc0viE5Z79B z2xEw!LAA6&wf;FgGrejs;RnVtv>PR7cM)l#@X*;nqtizKab0w~tX7wc8>@tbNSmno zncH=V``dLJBrU8xG}-i}p=_sppTZ0svXzgR%J5GJFW$R?IK(s}RLlY$TY7N$u~uk% zvwv%6$yZ5u*|R4GU~W>$=9Bx;6Up+^rc*pxTCM|xaWg8vRT}~!di-61T6P_;#SeW? zYF=eMa4o$Te~e$nP#%V515)}8a8zJ-FJt{3D%<~<)gnX>72bAvpr`nx-&w9RUOk@DXMG$fR0fDMwd?C9XwmC*ux~sd#Q*KPp&*FDNb* zLyUW$K2j49&{#GfnkbW!wdd*^7)__1GsycErOsw7@;!i{UDO%J9bF*r|Go141vaC}-wgH9V*7a$X!q!<~vf z3`&Ou&ioZg@u|Gsjnxgp8V{G5xrV}WnW@pv+jdwnw4 zpZFb2?njrlL&q>+E+XS0uY3NVuFn0R>Hq!X&T=S8PKkQwRL)Z5EGZ-^a(d4phjQG8 zVsk!)5EVJ(m_ts$Mv{hxgkYU zTWe_A_`|8j7Zi}UU+!i}a+tE!m)8=B+at4NW6|`fxip#hQd}tJe$m?{vypT6X7tbW zg&1H^a3>KHEn>z8uiNB4J&71!5Qi+jM0#uE&wwW_v%K{1SDEp)yH)BB8~Ntm_~8CV zmvL4!xX~zhpv;XS!k(?(?VRp~i+io|0fpcj+M#&LEit+WED! zOWMA0p`Z=H*Acs4YcV}fgFvgtJEEiCh{aQ8nnUK`{URjf%)?X{TQY=eC!seM73yBq zMj^tzNNb_H{2*~Gnb2YO)+;GLlhb|H+P|XqlGek|7FCv?J?p`L;9d}~lxsZ6g1cBr z){FEFjVU(-9oAE1;j5ocLnkhEp{5t3fX9YFumYO4m`cAsa5eDi!aO`b%cqWvjaj?2mX?zO#L`!KfbA)4BHSBM zTwxey`1oWwW7KFtXDrrx>^BKM;3GQx%2x2RR^5}rE9HWUHTiJQaCDiZ!9~JWvR{%u zo_cF^g<8adeJIGW&!Z7_7t>nKy5y1r8?*sccc%5@dp-}8`cS^5fKKBCdapZmILmgz zwmaoq^NOaJ0yY8oTSM#1)D9Mk#p&Xb+E@iQ@7qkJwRc#&x)UKy1%U<{_a!J~kqn;6KyRmbM*#@XtJ28J_oq&9$ zpo2_n7Al*~uwhM7>X3jlS_)fL$3VTx>??I)?HAC{iM?@t@aFJ<7qi<8U*6S=@{!xX zvr^#NLR-k`m%rP;u07B161rQGU^21eAqi%o=BUz?E_PB`viOS6PTb0CdyN* ztk7THAI7YND_Hl_5`7D5II)w!>W7lt-7Afx)zngA<2_HxAB!d`l6Ps@qNBaI?U!h= z!0$M*7KON4_^JA8tE$eKdv#@E3l^=`q5(~dCH*gdJbqMKnc*i!?I#DmyHDgD2d&KZ zNA_DaV4RXIh?S(G#O$hW9+y%LOeaDOqRCfrf4OiGAXmXff#db`(_iP)?0?QDU5V)= z3O>6;_nFO@=fP=QCeIpoGox@gkq#Sgg|#fVMWt}qGrZ>ad?jggMK`J&U#1)C6Japr zOD&329cpue!hlTD3}kOa5Pui3NOLM?^Hm9_w^-wn4^!Ffx_hsNz!Zz;AP!x}N5{x5 z^u;9}Vo2%JrJCf@2Pv;*LfyE%U1&(K&GA&u!LEHNW@lu*PlDT|Vvlj!A8|C4-_{VZ zCdc=OiTI6e!*4;P>h3CJ(n8Ypn)fg`t_=o&#te4A@zF-IMc@7k2A=F95-J z9p3#us;Ao1?g#aoWyf<|q)L9x0wf1oP!M<9Spg_Ai8*lr>O5eKf zE9*u_QeTT<7)WuvI?dSrE^;W@JX5Kvq-v85>lU+2*DL`yi}XN*JmXO?&ige~P-?u@ zbMy2V_?yP3jrZmb==#BrgW3m6Y)4?56-W(gn|BXKb2cx2Zx9jK* zneG&>&hWh2uzxsA_xe!*eMwxg`KvNjUBX;|b147@)}Pm|cH!4TA7tZ|Sw>Ry{PCxV zURjZ@tlJ#nPO%Dpnn8)nJG{N@nVBS)7kY$r38!b?+w?Yg@E=H;e{l z(Yz2cG_V=8>Kw4NV=kVjV7c?K!bb1LWo^m6>e^9B=Ea~(xfJ4%lLz7Q*E3ohCEIJ( zq2TEb!O^Q^*>Rq`54?p`lJHrn{O=GUgrbUvWl?^P)*I zeRlGwO||rohw|oRBdLFrH#{I?c1~q`$Gp!yQ!rcK7amH z{PqiUB;R_TM@cWRiMRoF zr_iIq5|z8r!8|?Es~Oi$WT~&d8S6NtL*lC+5LSb*K5Tl%OQ-Rc<9_18_4^1O@+zuB z|0*>LxQz$8x$RG0jT8Rt&V!}z5Mga-D9$HujuEw48 zCp7!XwyEoeQ{Lh4<_M+p-*$`nZ@bx%r%j_fu_;I&736a$d1_F^!C?+L?#a(bp*fX< zLf*8giUq%K-xsH{DDOu++55s>99591Ov@$yK(MgwJHE%YMg`tDZIHjjkx9Bkp`$=7 zAveYP-;ZJ%9i>&u@k7-fH7{pV%{^`kweD#Xo#>^#oBm|*=DkhgWc#8NU-R6+|7Fi7 zjNYvbPHf5tgSD%1l{s;H`Ep$|*$AScWPOJ$yX+U4JTMLu3+iU^O+eQA4A7F50WJ2N z1+*?}W3zy;O_HCGd^4AQ~(>=EYf}m!OcfibHeH9&k z<3|!kt6x2ZKm9XchdiDYt#AxjQ^WD?O}X`XhoU2{=cOLbmr>cNv6CSX)F z?6WAc_l2#*tx{hPc@5+!2<`cE=-INSZN-m(J_+a5wHvRuB8XNs;tE%ljFHY!nQahge z4VNG)KBCg3PfhwEcy)<6@a6lB-`kLhEIu2Q&LcquG#7R*k^UFAWBGIu1X0#L^SV?? z|BJ)q8jrct*6Eg0s9IAtyQ&3L0o6}$63z=(_uO;6VJBNL(uMwNAeQ1;KFeP+zdx4s zN@#cOv0*ymS8()ukp-hWy9IxGbuo32y9mN&443E65~CXL{i2jzUk3&c7`=i#13~p^ zeU$CLYZ94d5-2z$koG^fZ)({&QCWwMNwN92D?yJB>}$=p^J_2ZNcd__Z6sQP;o=rO zv@Qu4`e8X+UPWU@5Lk)3r3u+u^KNsz=XuK}i)6u8Z>-g0S^^5flS1eDA`hB1S6W*+MsyOiv zu?QVqbr(06MkZobiZzHVL+$9frqGJZ!U-Xye%gB);{w^XV>ogrTAn3gHR{1;&XqFs z&{`oEl_tUhmsUZ@sfl0Pi1rYi2;caooZmK0uw+Hmxw3d5NoW35iXTNh8YUPo&vC$% zbtZ=~vj$f~XKI>OUySP8S`#aj>c23E>^b|0>rye^G!$jGNEn-C@aahCHH`h9qKdMv z$1L^w3U1)!zT$$=`#pmAXaV1bb#6}17tjLsR_O~rG0 zzA01_zdRj2);F7JeE2GI#3&psnkQ4X11;a~sr~rf+V_|npOD$T@MG2@J-ZdCamb~p zn1R;nmO9H(P8`T~xGt9&3xF5(4}{5@oP+?qw=U*|PVEkhKP6gpd#6}pU-E(HI(R{i zM+pFP#i8Br^zmv@ibkEfoMa>X!@q7y^L(MrH9;73e#Wg&9F1;9d{A^i$#nQ525>Vh zr~bOWD23yaCgdD^o3=R?VI*7gef3J#Y|QcWbK+1c z0Flv2N(V6o#9eC8yxYKYWybVzOOwEYho4c6NyJ4!@+kl$AK(%E?OH|uO--+C7zR$ zWJVBc8as4*V;=a);agJ55x}Ukpyl~|52s0s5q{ao2h~La#0R(G`~i}S4TF3-38F_5 z@DebE<7`eqlEhO6D63Z)dlqIV+l8Dxn--L)i%I73VRe6tYlLhZ+$nZ|#p9d&J`#CkbuKd|J3M$MT% z3_X6hEJtWxuXmrr`WQ+K_BuFB=j7YXI5Ip*mC{pet^sxS6{cRQ)<_*wbTps@&j(Ad zPP-f;*~%ni1Sji^!t7ay!Iu^1KMFtlX{>4XVZHh1malL8O|xuyWhw)Fxd_N&kXU_B z)dStPUCUfy*r+;d(Dqnrg&#=_OBM$;!iM*jdm+1JwQ7V;^>g=UeOvZN1QuU)lz)w0 z;)5@T4YLi88s-4ohpq92*l@&8P8Cr0L9WTA81C@X{DX%C(4t6sSamqINC%S{>jGhe2SPgHXNzp68=SE zd=7HuY>Bdp47$;A6N6saIz9}w3YkNir}RtM^Y_v;b{Z1M3B^ihV}y*v^8hTT18449 zt1@j*sAiwApPH6w==+K$M&)~=4v&|g%wdIYn$FH;TmlcrFqwC6m47=Br<$lNa)-Wo zyW*|g8FMA>R1pUbmUA}Z5Maer1V9OOkhf(a;A%;(idXV@0X6g5&VRD^=OmJNn}b<) z+;5Yf)MObh#NaZA>wn8hjC`J0J438pe7X4gsNpK&Y1s!E;4d)NmbJQn*feo~2~+tg z{EXI*QzsbP{03gK8^@qZRo^e%|LfR+&7%RQBhj8C{?@nH!1LtN_7rAiR!UYRn$Iqg zE~I8>#C^PcD*Jdh)Vi+5RrIq2-(0|TV6|dodl2627jrh?`pf+wowFE=8;x_?fi*o> zk|fo9ME6^VW&jP@ShtR8@@rIMcS%IJ1eK*H+z2eCEe$W0$VtNuh?D!|oE27FSkq9) zYA&#VFae1>5kDR2WxZq)<-iptYsTWI1NL^2U=n$sF(0XGs*y|)h5LMI4yT&3D- zhgm=?MEvQV)Igh{Jo&4AEM>m+J_*e#JknX%EG19V|M(@RKnHbnrz2|6ze_-UDnBMS zmfF|5avklITey|d5oN>pNKo@7KFTU1wAeo%b}C&n+$iL`dz5$PEuT06qBBCnw?mDG zXRMiG_1Nl34Nl0F>1ya>>Xry+u%~Wq+mBRUTLbvY&>0hTI2Wm7S8HQ6of9skIFbMx zq;Iq=vqeUgq=65K;F7b;fgc{dHAmT{ri8J6_gnb=`6X4I8}4DmBSYIzfWM%BH@441 zUXFtT^m36L%e3=F6}{z`g_ZNa75GOXQdq%jk)btHw!y?b$84#eT#&6SMX_vwa{@h9u16Idv3k;6e`%ha8ghJwTgFQ$4zX2<} zP0sM2w>D<>(v+IK@KN^gTfI@wAi$9Qb-9Bw7neBTk2- z@lDJK&Wds^#l+mvnbM!n9nWyt2Cd%ZkAV(Gz4RXLDQ#S`(>hop`!%gS0aoMq3pt;; z8RGA%(Kw*n3-#RGySaSU-K%i2f}0Gq68=uh;}IgykCn-U-^|++f0};n_hasxonK|1 zX2Ukv=Deg!YX|vKB^@dG4lL8)!z-qO$RCWI;PJrYQ3;a<{U^z6;~!&kq#bA>CW$*J z#=o(~aCyz>izixr1%qS#D|5E>8XRbi69tca%2=YJJQm)L@o;)|j!^5<&8L0Xwv;B% z5U^}-V1`{6O*NmvQ|U(8Kt>@6slg= zm3lD){F>zZ0)Fpsxir!kcqK*56kH(Z2U~(>-_j4(BRb0)*LZ(ZPQ^WPWGb^Xr4X z?*)<9p9vLUJoidr;G=AkmA7Acb&m|9jZ}+>3T4nj53>6tw}ZGf0ieu-1WOoFg*j^Y!9Wk}C`Wj{lVLc>nCl7O*oTnY!XwRm$ek5 zS5lODv*GzZy=yO-rt2WXd(Mw+u+%77I-;$OuvD-Nf>|bCY|wkjCw@seLgj3>WeYza zcnt!vqRn%fJ4ea3S~8M% zt^1+z&4w_A!sC6Z@&9uiHNUvl_2e=;ymH7%#j zNrX}bt;?TPvnYFm7d98!;-&HXXC^0Do0uC(XdB<8z;8HlK4_53UR)Ea;+C|gM}10~ zvl`*?U@i{dnI8Q$@2E7*Q>!o}U>vEXWKfkVop7VGDaZaFU;%e^r=|Sl(CYHomAW5d z$tj9u=J?ZOPkktJ5m;r#Q&wJO;!85|YWXX&)`T z_v+&kaawtQ%A;m~MYUu_tt&A7H;MD3OhZE964hIc2S8f({|#}vG;Ry{o+yHM*n?Q% ztuEH*-^}AO-=s{taBOWHxB&jgL#nD(8(;~ukB#b{+4lkFG4EBeVL1j-S5jZHkh9f; z2p#kk8k&T(@sCh6uVCOuFvT>UB4!wL%^YsC6DKup2f}9GvHhDFiKe?)qSBuZ0>iG1?@ntt8)4W5SdN`UiAdE1R%?+}YXh*Ed0l$rxD+f^nyBcKMpyrurfIi9tpY>$WIBKxQDotOf znp}`9fe~d%-<4lG4|S42k4;jcwv{ny@>U++&G+@R1oi9AjmL$dX9A5l4zu#mq}!ab zwJWON67lWmc~-95u=UY2?OG7VA7#?jG1m1ZVFeFW(tkTuHrt87&eMrVJP7e(Y$?&e zsRueBxtODY`45qEqG$fIBtNnTU80Vmuv(L6GjmV`1AbCtU}sL(OfXG@`-Z!fX(rs# z$+&$06Vr~b!+ZM&J~98TcTQ3bj`n)*nkwPRz8&pt+HUzUhlO3A9x77`C<8QjcdGV1PQPz}J4bRrvAbv3N?_IE{K{eW1ShqwN3di}A&l zX%~uJrJ_x+)sv5{eR{puV@e6Fokv$@M9)v;0nRjKkpEKa2@m6`Q85u zw?N{4Hs<5`x7d4Muu?dCpLkfet?fdX%rBWT&p%mK=7X!$Lzo-QB$@SVv7U~bp4#*9 z0uZ(?u^rQSrT3!J2Q7&BdP7q=A{DSrI))`vX9=g`uXGxz3N1VBcFe1DAz<)MVWxgU z+`%?8G?F6>_O|;$X6UJ#5Gms|6fKz5lW#l;>C{=Or^h4urXauXypiauAhDS@pMn>r zxh|C)11fd)-(gCV;6I9MCv{ty7tW3SN8yuE=F`z;As72YH*Y(U_-{Y;374bMxP8I> zx^rV*w^ieJKJ;UITeKZ!{36ixC6~j54`PIBm2T)4t>9vg+a>z3&vp-E5K)=2-J?v8 z3f0pgi_Mq68G>4A^T5xWN$kzVb42DjlWxd;_8WgL#=rC@@w_5Z9-XWfFMElAtY!r! zjhi(=%#GD_m4lEeCaqo30DBaSadxVH>PvYqW}MJ2+V#oBo;E?hG;@{v!IlWBJ5t|s zrR%YD|7y*FfSlGVe$REC_fctgXTBJ%I82CWS&#tnNZlMbtJ!>7y}>9q=jwI*SuVfTP^KrV7!_(Dm1am5YBMt*=xdBgfF_6p(!BGy$|W8 zeqeuuG0xI(s@n|?%XLisP~pyx#Flsm0EBvp9Ku!S_7uh_P{T0*hrhs?8KOHO<7WB` zA{mk>S|+^|->MQq2qxV3L4`3+8QU0-nQIMRy4yt2cqW;vWDf8^9>efrxlqu{pY)c$ql<@ zK=(QU$Yg;=@wZMUL7&D*QP~0ZCX6j(x(^@@x_$#9Dgc-nIs#_)K;r^8f8WGw|10q- z7x6O;Koy=L%l0nTL~Ms?s$1DD*WS3{?SE^FbOaO94(ahRdogwnJ`W5Z@Egpc=sX^O zmZ9DuuPRfTjDUT@5}93eM7lDrYoW@_8`PjR%$tG$mh<57TiB3bs;~lU~9OLYe8vSX&G@i}?fdR$c71{H}Lm z`Z!xLzFR+;nU{ua-{X1Xye4`ygTBvQ&BG-E;K{(w#ytV}$u0Adfy6+}SNmk*@VlN4 zQ3G^VG?9?Dfur?US({r>AsA$e_&(p<>-PJ0OxsM4^4N3Pjum=uyg8v^X;cV5^Yjq?sk8yurCP|iwE(8xQS+c_-=lY|G#MUauW$iZcirrQ1B3LA z=i4{uZnDJtHL5-TOuHtH`h>dG!*D-LUH_c$>ny|5y>85;2MlUeeM1(g=ygoQp5hY* zY)sqh*8ivK6yi#7AWq3;Knm!c0iLP;)(^ey;X6%7uF`2uHT|=!%6$<%QgR$^Sh_91 zDXJ(W0*^C#=c%bMdto}y0ZR4k@rJx|2=$g6mzhq1?!-?6hIcKQT5^{%TZHy54Je7I zX2O5>yg5Cru!$qN8p0dqW=kPMZmduu7l{Q{c+@+^>FEK00*AM|#P3(MLeHwP1#M@x z?b~%uoqh$&Jng|zAMRUsO7TVWP@lX&N*u4WdCW@ImK9DhYFK6rOrjn>FK5yiIYVJ2 zj>zw%;(NW=s3I1ki7?b(Sz>p!bK>Oo@nUWi!eZh$^G{PPE-q-K4)^bUn?6E^Rs-Dc zRQnKj(LP@x`lcS8vKcs313p!j|NEhdUg`l#sC~p*|FYVg9JpxDyoz z8@#JZX8!f<_V@-zxX6d-jD`h%jvKzWgUc1d_xhpiHli*Ppoq|%b^8lApK{&5WhW2! z2e?|a%k_i)1EaD^QCG>b6)!B40i41m71}3tnf|_AVFDc;y%7MDdxAN{-7Cg#T>zrDQO0tOrA_(+N)PR8KnAxJLYm?TGg~N Su6Road<^fJ=#}X{jrc#KKdW>A literal 0 HcmV?d00001 diff --git a/applications/svZeroDGUI/static/index.html b/applications/svZeroDGUI/static/index.html new file mode 100644 index 000000000..e1422bc53 --- /dev/null +++ b/applications/svZeroDGUI/static/index.html @@ -0,0 +1,164 @@ + + + + Vasculature Simulation + + + + + + + + + + + + +

No Code 0d Vasculature Generation Platform

+
+ +
+

This program allows you to draw a cardiovascular pathway and export it as a JSON file, structured as input for SimVascular’s ZeroD Solver.

+
    +
  1. From the dropdown, select the node type you would like to insert.
  2. +
  3. Type in the node name.
  4. +
  5. To create an edge, click draw mode on and connect two nodes at a time.
  6. +
  7. Repeat steps 1-3 until the architecture is fully drawn.
  8. +
  9. To delete a node, simply click on it.
  10. +
  11. Click Export to JSON to download the text file. Once you get the text file, you can manually add data points.
  12. +
+
+ + + + + + + + +
+ + +
+
+ + + + +
+ + \ No newline at end of file diff --git a/applications/svZeroDGUI/static/js/app.js b/applications/svZeroDGUI/static/js/app.js new file mode 100644 index 000000000..2fa2ac68e --- /dev/null +++ b/applications/svZeroDGUI/static/js/app.js @@ -0,0 +1,775 @@ +/** + * app.js + * + * This script handles the interactive functionality of the svZeroDGUI application, + * including event listeners for UI elements such as collapsible sections, + * form inputs, and dynamic content toggling. + */ + +// Toggles visibility of the boundary condition type container based on selected node type. +function updateBoundaryConditionTypeVisibility() { + const nodeType = document.getElementById('node-type').value; + const boundaryConditionTypeContainer = document.getElementById('boundary-condition-type-container'); + if (nodeType === 'boundary_condition') { + boundaryConditionTypeContainer.style.display = 'block'; + // Scroll to reveal the container + requestAnimationFrame(() => { + const dropdownHeight = boundaryConditionTypeContainer.offsetHeight; + window.scrollBy(0, dropdownHeight); + }); + } else { + boundaryConditionTypeContainer.style.display = 'none'; + } +} + +/* + * Defines the file paths for the icons used in the application. + * These icons represent different components within the model, such as vessels, + * valves, chambers, junctions, and various types of boundary conditions. + */ +const vessel_icon = '/static/css/vessel.png'; +const valve_icon = '/static/css/valve.png'; +const chamber_icon = '/static/css/chamber.png'; +const junction_icon = '/static/css/junction.png'; +const resistance_icon = '/static/css/resistance.png'; +const pressure_icon = '/static/css/pressure.png'; +const RCR_icon = '/static/css/RCR.png'; +const coronary_icon = '/static/css/coronary.png'; +const flow_icon = '/static/css/flow.png'; + + +document.addEventListener('DOMContentLoaded', function() { + let simulation_parameters_dict = {} + var deleteMode = false; + + document.querySelector('#submitJunctionButton').addEventListener('click', function() { + submitJunctionInfo(); + }); + + document.querySelector('#submitVesselButton').addEventListener('click', function() { + submitVesselInfo(); + }); + + document.querySelector('#submitSimParamButton').addEventListener('click', function() { + submitSimParameters(); + }); + + var node_count = {'boundary_condition': 0, 'vessel':0, 'valve': 0, 'chamber': 0, 'junction': 0}; + var cy = window.cy = cytoscape({ + container: document.getElementById('cy'), + layout: { + name: 'grid', + rows: 2, + cols: 2 + }, + style: [ + { + selector: 'node[name]', + style: { + 'content': 'data(name)' + } + } + ] + }); + + setSimParameters(); // Opens the Parameters form when you first load the page. + cy.domNode(); // Register the domNode extension for making HTML classes for each node to assist Cypress testing + + cy.on('tap', function(event) { + if (event.target === cy) { // Filters clicks to those within the cytoscape drawing container. + let nodeName = document.getElementById('node-name').value.trim(); + let nodeType = document.getElementById('node-type').value; + let boundaryConditionType = nodeType === 'boundary_condition' ? document.getElementById('boundary-condition-type').value : null; + + if (nodeName !== "") { + let pos = event.position || event.cyRenderedPosition; + let nodeId = `${nodeType}-${node_count[nodeType]}`; + node_count[nodeType] += 1; + + let color; + if (nodeType === 'boundary_condition') { + // Sets the icons and edge color for each node + switch (boundaryConditionType) { + case 'FLOW': + color = '#FF00FF'; // Magenta + node_icon = flow_icon; + break; + case 'RESISTANCE': + color = 'purple'; + node_icon = resistance_icon; + break; + case 'PRESSURE': + color = 'orange'; + node_icon = pressure_icon; + break; + case 'RCR': + color = '#ADD8E6'; // Light Blue + node_icon = RCR_icon; + break; + case 'CORONARY': + color = '#800020'; // Burgundy + node_icon = coronary_icon; + break; + default: + color = 'grey'; // Default color for unknown types + break; + } + } else { + switch (nodeType) { + case 'vessel': // Cardinal Red + color = '#C41E3A'; + node_icon = vessel_icon; + break; + case 'valve': + color = 'black'; + node_icon = valve_icon; // https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.vectorstock.com%2Froyalty-free-vector%2Fheart-valve-disease-line-icon-vector-47167009&psig=AOvVaw39gwsTXwtIDM9KxgEODvmZ&ust=1721929537132000&source=images&cd=vfe&opi=89978449&ved=0CBEQjRxqFwoTCLi788edwIcDFQAAAAAdAAAAABAE + break; + case 'chamber': + color = 'pink'; + node_icon = chamber_icon; + break; + case 'junction': + color = '#046791'; // Dark Blue + node_icon = junction_icon; + break; + default: + color = 'black'; + node_icon = None; + break; + } + } + let div = document.createElement("div"); + div.innerHTML = ""; + div.classList.add('draggable'); // Adds custom class so the nodes can be tracked in Cypress E2E testing + div.style.width = '30px'; + div.style.height = '30px'; + let newNode = cy.add({ + group: 'nodes', + data: { id: nodeId, type: nodeType, name: nodeName, + cls_name: boundaryConditionType || nodeType, dom: div}, + position: { x: pos.x, y: pos.y }, + style: {'background-image': `url(${node_icon})`, + 'background-fit': 'cover', // Ensure the image covers the node + 'background-opacity': 1, // Ensure the background is fully opaque + 'border-color': color, // Example border color + 'border-width': 2, // Example border width + 'background-color': 'white' // Ensure background color does not override image + } + }); + console.log('Node created:', newNode.json()); + } + else { + alert("Please enter a node name."); + } + } + }); + + + var eh = cy.edgehandles({ + enabled: false // Initializes the edge handle as turned off until user clicks draw on button + }); + + // Enables edge drawing when the user clicks the draw-on button + document.querySelector('#draw-on').addEventListener('click', function() { + eh.enableDrawMode(); + eh.enable(); + }); + + // Disables edge drawing when the user clicks the draw-off button + document.querySelector('#draw-off').addEventListener('click', function() { + eh.disableDrawMode(); + eh.disable(); + }); + + // Function to calculate R, C, L + function calculateRCL(additionalData) { + console.log(additionalData); + let vesselLength = additionalData.vessel_length; + let vesselRadius = additionalData.vessel_radius; + + if (!vesselLength || !vesselRadius) { + console.error("Invalid length or radius"); + return { R: null, C: null, L: null }; + } + + const R = (8 * additionalData.mu * vesselLength) / (Math.PI * Math.pow(vesselRadius, 4)); + console.log(R); + const C = (3 * vesselLength * Math.PI * Math.pow(vesselRadius, 3)) / (2 * additionalData.young_mod * additionalData.h); + const L = (additionalData.rho * vesselLength) / (Math.PI * Math.pow(vesselRadius, 2)); + return { vesselLength, R, C, L }; + } + + // Exports the 0d network to a json file + function exportGraphData() { + let detected_objects = { + simulation_parameters: simulation_parameters_dict, + boundary_conditions: [], + junctions: [], + vessels: [], + valves: [], + chambers: [] + }; + + cy.nodes().forEach(node => { + let data = node.data(); + let additionalData = data.additional_data || {}; + switch(data.type) { + case 'boundary_condition': + let boundaryCondition = { + bc_name: data.name, + bc_type: data.cls_name, + bc_values: {} + } + + switch (data.cls_name) { // Assuming cls_name is the field that specifies the boundary condition type + case "FLOW": + boundaryCondition.bc_values = {"Q": [], "t":[]}; + break; + case "RESISTANCE": + boundaryCondition.bc_values = {"Pd": '', "R":''}; + break; + case "PRESSURE": + boundaryCondition.bc_values = {"P": [], "t": []}; + break; + case "RCR": + boundaryCondition.bc_values = {"C": '', "Pd":'', "Rd":'', "Rp":''}; + break; + default: + boundaryCondition.bc_values = { + "Ca": '', "Cc":'' , "Pim": [], "P_v": '', + "Ra1": '', "Ra2": '' , "Rv1": '', "t": [] + }; + break; + } + + detected_objects.boundary_conditions.push(boundaryCondition); + break; + case 'vessel': + let inlet = getInlet(node); + let outlet = getOutlet(node); + + // Calculate R, C, L + let {vesselLength, R, C, L } = calculateRCL(additionalData); + + let vesselObject = { + boundary_conditions: {}, + vessel_id: parseInt(data.id.replace('vessel-', '')), + vessel_length: vesselLength || "", + vessel_name: data.name, + zero_d_element_type: "BloodVessel", + zero_d_element_values: { + C: C || 0 , + L: L || 0, + R_poiseuille: R || 0, + stenosis_coefficient: additionalData.stenosis_diameter || 0 + } + }; + + if (inlet || outlet) { + if (inlet) { + vesselObject.boundary_conditions.inlet = inlet; + } + if (outlet) { + vesselObject.boundary_conditions.outlet = outlet; + } + } else { + delete vesselObject.boundary_conditions; // Remove the empty boundary_conditions object if neither inlet nor outlet is present + } + + detected_objects.vessels.push(vesselObject); + break; + case 'valve': + detected_objects.valves.push({ + type: 'ValveTanh', + name: data.name, + params: { + Rmax: "", + Rmin: "", + Steepness: "", + upstream_block: getUpstream(node), + downstream_block: getDownstream(node) + } + }); + break; + case 'chamber': + detected_objects.chambers.push({ + name: data.name, + type: 'ChamberElastanceInductor', + values: { + Emax: '', + Emin: '', + Vrd: '', + Vrs: '', + t_active: '', + t_twitch: '', + Impedance: '' + } + }); + break; + case 'junction': + let junction_type = additionalData.junction_type; + let junctionObject = { + inlet_vessels: getInletVessels(node), + junction_name: data.name, + junction_type: junction_type, + junction_values: { + R_poiseuille: [], + L: [], + stenosis_coefficient: [] + }, + outlet_vessels: getOutletVessels(node) + }; + + if (junction_type == 'BloodVesselJunction') { + junctionObject.junction_values.R_poiseuille.push(additionalData.R1,additionalData.R2); + junctionObject.junction_values.L.push(additionalData.L1, additionalData.L2); + junctionObject.junction_values.stenosis_coefficient.push(additionalData.junction_stenosis_coefficient1, + additionalData.junction_stenosis_coefficient2); + } else { + delete junctionObject.junction_values; // Remove the empty junction_values object if it is a normal junction + } + detected_objects.junctions.push(junctionObject); + break; + } + }); + // If any of the lists are empty, delete them from the json file. + if (detected_objects.junctions.length === 0) delete detected_objects.junctions; + if (detected_objects.vessels.length === 0) delete detected_objects.vessels; + if (detected_objects.valves.length === 0) delete detected_objects.valves; + if (detected_objects.chambers.length === 0) delete detected_objects.chambers; + return detected_objects; + } + + // Returns the boundary condition inlet if present. + function getInlet(node) { + let inboundEdges = node.incomers('edge'); + if (inboundEdges.length > 0) { + if (inboundEdges[0].source().data('id').startsWith('boundary_condition')) { + return inboundEdges[0].source().data('name'); + } + } + return; + } + + // Returns the boundary condition outlet if present. + function getOutlet(node) { + let outboundEdges = node.outgoers('edge'); + if (outboundEdges.length > 0) { + if (outboundEdges[0].target().data('id').startsWith('boundary_condition')) { + return outboundEdges[0].target().data('name'); + } + } + return; + } + + // Returns the upstream node if present. + function getUpstream(node) { + let inboundEdges = node.incomers('edge'); + if (inboundEdges.length > 0) { + return inboundEdges[0].source().data('name'); + } + return; + } + + // Returns the downstream node if present. + function getDownstream(node) { + let outboundEdges = node.outgoers('edge'); + if (outboundEdges.length > 0) { + return outboundEdges[0].target().data('name'); + } + return; + } + + // Returns the inlet vessels to a node. + function getInletVessels(node) { + let inboundEdges = node.incomers('edge'); + let inletVessels = []; + + inboundEdges.forEach(edge => { + let sourceNode = edge.source(); + let type = sourceNode.data('type'); + console.log("id", sourceNode.data('id')); + if (type === 'vessel') { + let vessel_id = parseInt(sourceNode.data('id').replace('vessel-', '')); + inletVessels.push(vessel_id); + } + }); + return inletVessels; + } + + // Returns the outlet vessels to a node. + function getOutletVessels(node) { + let outboundEdges = node.outgoers('edge'); + let outletVessels = []; + + outboundEdges.forEach(edge => { + let targetNode = edge.target(); + let type = targetNode.data('type'); + if (type === 'vessel') { + let vessel_id = parseInt(targetNode.data('id').replace('vessel-', '')); + outletVessels.push(vessel_id); + } + }); + return outletVessels; + } + + // Handles the downloading logic. + function downloadJSON(data, filename = 'graph_data.json') { + let blob = new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' }); + let url = URL.createObjectURL(blob); + let a = document.createElement('a'); + a.href = url; + a.download = filename; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + } + window.downloadJSON = downloadJSON; + + // Returns how many incoming connections there are to a node. + function consistency_inlet(node) { + let inboundEdges = node.incomers('edge'); + return inboundEdges.length; + } + + // Returns how many outgoing connections there are to a node. + function consistency_outlet(node) { + let outboundEdges = node.outgoers('edge'); + return outboundEdges.length; + } + + // Debugger for creating 0d models. Ensures all proper connections are present within the drawn graph. + function Consistency_Check(data) { + let alerts = []; + let inletCounts = {}; + let outletCounts = {}; + let oneToOneJunctions = {}; + let junctionInletsMap = {}; + + cy.nodes().forEach(node => { + let data = node.data(); + let type = data['type']; + let name = data['name']; + let id = data['id']; + + switch (type) { + case 'vessel': + if (consistency_inlet(node) + consistency_outlet(node) != 2) { + alerts.push(`Vessel ${name} does not have exactly two connections`); + } + break; + case 'boundary_condition': + if (consistency_inlet(node) + consistency_outlet(node) != 1) { + alerts.push(`Boundary condition ${name} does not have exactly one connection`); + } + break; + + case 'junction': + if (consistency_inlet(node) < 1) { + alerts.push(`Junction ${name} does not have an inlet`); + } + if (consistency_outlet(node) < 1) { + console.log(name); + alerts.push(`Junction ${name} does not have an outlet`); + } + let inlets = getInletVessels(node); + let outlets = getOutletVessels(node); + + inlets.forEach((inlet, index) => { + if (!inletCounts[inlet]) { + inletCounts[inlet] = 0; + } + inletCounts[inlet]++; + console.log(`Inlet [${index}]: ${inlet}, Count: ${inletCounts[inlet]}`); + }); + + outlets.forEach((outlet, index) => { + if (!outletCounts[outlet]) { + outletCounts[outlet] = 0; + } + outletCounts[outlet]++; + console.log(`Outlet [${index}]: ${outlet}, Count: ${outletCounts[outlet]}`); + }); + + if (inlets.length === 1 && outlets.length === 1) { + oneToOneJunctions[outlets[0]] = name; // Store junction by outlet + } + junctionInletsMap[name] = inlets; + break; + default: + break; + } + }); + + console.log(oneToOneJunctions); + + // Initialize a dictionary to store junctions and their inlets that are 1:1 outlets + let junctionToInletsFromOneToOne = {}; + + // Populate the dictionary with all junctions receiving inlets that are 1:1 outlets + Object.keys(junctionInletsMap).forEach(junctionId => { + let inlets = junctionInletsMap[junctionId]; + let oneToOneInlets = inlets.filter(inlet => oneToOneJunctions.hasOwnProperty(inlet)); + + // Store these 1:1 inlets for each junction if there are any + if (oneToOneInlets.length > 0) { + junctionToInletsFromOneToOne[junctionId] = oneToOneInlets; + } + }); + + // Check for any junction that has multiple inlets originating from 1:1 junction outlets + Object.keys(junctionToInletsFromOneToOne).forEach(junctionId => { + let inlets = junctionToInletsFromOneToOne[junctionId]; + if (inlets.length > 1) { // More than one 1:1 junction outlet merging into the same junction + alerts.push(`Junction ${junctionId} has multiple 1:1 junction outlets merging into it.`); + } + }); + + // Check the counts to make sure a vessel is inlet to a junction max once. + for (let vessel in inletCounts) { + if (inletCounts[vessel] > 1) { + console.log(`Checking vessel: ${vessel}, Count: ${inletCounts[vessel]}`); + alerts.push(`Vessel ${vessel} is an inlet to more than one junction`); + } + } + + // Check the counts to make sure a vessel is outlet to a junction max once. + for (let vessel in outletCounts) { + if (outletCounts[vessel] > 1) { + alerts.push(`Vessel ${vessel} is an outlet to more than one junction`); + } + } + + if (data['boundary_conditions'].length < 2) { + alerts.push('The model needs at least two boundary conditions'); + } + + if (alerts.length == 0) { + return 1; + } + + if (alerts.length !== 0) { + alert(alerts.join('\n')); + return 0; + } + } + + window.Consistency_Check = Consistency_Check; + + // Event listener for the Export to JSON button + document.getElementById('export-json').addEventListener('click', function() { + let graphData = exportGraphData(); + if (Consistency_Check(graphData) == 1) { + downloadJSON(graphData); + } + }); + + let currentNode = null; + + // Sets styling for the simulation parameters form. + function setSimParameters() { + document.getElementById('nodeInfoModal').style.display = 'block'; + document.getElementById('SimParametersForm').style.display = 'block'; + document.getElementById('vesselForm').style.display = 'none'; + document.getElementById('junctionForm').style.display = 'none'; + } + + // Parses the results from the simulation parameters form once the user submits it. + function submitSimParameters() { + simulation_parameters_dict.number_of_cardiac_cycles = parseInt(document.getElementById('numcycles').value, 10); + simulation_parameters_dict.number_of_time_pts_per_cardiac_cycle = parseInt(document.getElementById('numtimepts').value,10); + simulation_parameters_dict.output_all_cycles = document.getElementById('output_all_cycles').value.toLowerCase() === 'true'; + simulation_parameters_dict.output_variable_based = document.getElementById('output_variable_based').value.toLowerCase() === 'true'; + document.getElementById('nodeInfoModal').style.display = 'none'; + hideNodeInfoModal() + } + + + // Function to show the modal form + function showNodeInfoModal(nodeType) { + document.getElementById('nodeInfoModal').style.display = 'block'; + document.getElementById('SimParametersForm').style.display = 'none'; + + // Show specific form based on node type + if (nodeType === 'vessel') { + document.getElementById('vesselForm').style.display = 'block'; + document.getElementById('junctionForm').style.display = 'none'; + } + else if (nodeType === 'junction') { + document.getElementById('junctionForm').style.display = 'block'; + document.getElementById('vesselForm').style.display = 'none'; + } + } + + // Show or hide the junction parameters form based on the selected junction type + document.getElementById('junction-type').addEventListener('change', function() { + if (this.value === 'BloodVesselJunction') { + document.getElementById('Junction_Parameters_Form').style.display = 'block'; + } + }); + + // Function to hide the modal form + function hideNodeInfoModal() { + document.getElementById('nodeInfoModal').style.display = 'none'; + document.getElementById('vesselForm').style.display = 'none'; // Hide the form + } + + // Show or hide the custom Young's modulus input field based on the selected value + document.getElementById('young_mod_input').addEventListener('change', function() { + if (this.value === 'custom') { + document.getElementById('custom_young_mod').style.display = 'inline'; + } else { + document.getElementById('custom_young_mod').style.display = 'none'; + } + }); + + // Show or hide the custom viscosity (mu) input field based on the selected value + document.getElementById('mu_input').addEventListener('change', function() { + if (this.value === 'custom') { + document.getElementById('custom_mu').style.display = 'inline'; + } else { + document.getElementById('custom_mu').style.display = 'none'; + } + }); + + // Show or hide the custom wall thickness (h) input field based on the selected value + document.getElementById('h_input').addEventListener('change', function() { + if (this.value === 'custom') { + document.getElementById('custom_thickness').style.display = 'inline'; + } else { + document.getElementById('custom_thickness').style.display = 'none'; + } + }); + + // Show or hide the custom density (rho) input field based on the selected value + document.getElementById('rho_input').addEventListener('change', function() { + if (this.value === 'custom') { + document.getElementById('custom_rho').style.display = 'inline'; + } else { + document.getElementById('custom_rho').style.display = 'none'; + } + }); + + // Parses the information the user inputted for a junction node. + function submitJunctionInfo() { + let additionalData = {}; + let junction_type = document.getElementById('junction-type').value; + if (junction_type === 'BloodVesselJunction') { + additionalData.junction_type = junction_type; + additionalData.R1 = parseFloat(document.getElementById('R_poiseuille1').value); + additionalData.R2 = parseFloat(document.getElementById('R_poiseuille2').value); + additionalData.L1 = parseFloat(document.getElementById('L1').value); + additionalData.L2 = parseFloat(document.getElementById('L2').value); + additionalData.junction_stenosis_coefficient1 = parseFloat(document.getElementById('junction_stenosis_coefficient1').value); + additionalData.junction_stenosis_coefficient2 = parseFloat(document.getElementById('junction_stenosis_coefficient2').value); + } + else { + additionalData.junction_type = junction_type; + } + currentNode.data('additional_data', additionalData); // Update node with additional data + hideNodeInfoModal(); // Hide the modal form + + } + + // Function to submit node info and update the node + function submitVesselInfo() { + let additionalData = {}; + + if (currentType === 'vessel') { + // add the form information to additionalData so it can be attached to the vessel + additionalData.vessel_length = parseFloat(document.getElementById('vesselLengthInput').value); + additionalData.vessel_radius = parseFloat(document.getElementById('vesselRadiusInput').value); + additionalData.stenosis_diameter = parseFloat(document.getElementById('vesselStenosisDiameterInput').value); + let youngModulus = document.getElementById('young_mod_input').value; + if (youngModulus === 'custom') { + youngModulus = parseFloat(document.getElementById('custom_young_mod').value); + } else { + youngModulus = parseFloat(youngModulus); + } + additionalData.young_mod = youngModulus; + + // Handle dynamic viscosity + let mu = document.getElementById('mu_input').value; + if (mu === 'custom') { + mu = parseFloat(document.getElementById('custom_mu').value); + } else { + mu = parseFloat(mu); + } + additionalData.mu = mu; + + // Handle vessel thickness + let h = document.getElementById('h_input').value; + if (h === 'custom') { + h = parseFloat(document.getElementById('custom_thickness').value); + } else { + h = parseFloat(h); + } + additionalData.h = h; + + // Handle density + let rho = document.getElementById('rho_input').value; + if (rho === 'custom') { + rho = parseFloat(document.getElementById('custom_rho').value); + } else { + rho = parseFloat(rho); + } + additionalData.rho = rho; + + currentNode.data('additional_data', additionalData); // Update node with additional data + + // reset form inputs + document.getElementById('vesselLengthInput').value = ''; + document.getElementById('vesselStenosisDiameterInput').value = ''; + document.getElementById('vesselRadiusInput').value = ''; + } + hideNodeInfoModal(); // Hide the modal form + } + + // Toggles the text on the delete-mode-button. + function toggleDeleteMode() { + deleteMode = !deleteMode; + if (deleteMode) { + document.getElementById('delete-mode-button').innerText = 'Exit Delete Mode'; + } else { + document.getElementById('delete-mode-button').innerText = 'Enter Delete Mode'; + } + } + + // Add event listener to the delete button + document.getElementById('delete-mode-button').addEventListener('click', toggleDeleteMode); + + + // Event listener to show the form when a node is clicked + cy.on('tap', 'node', function(event) { + currentNode = event.target; + currentType = currentNode.data('type'); + if (deleteMode) { + var node = event.target; + node.remove(); + } + else if (currentType == 'vessel') { + showNodeInfoModal(currentType); // Show the modal form + } + else if (currentType == 'junction') { + showNodeInfoModal(currentType); // Show the modal form + } + + }); + + // Get all elements with the class 'collapsible' + var coll = document.getElementsByClassName("collapsible"); + var i; + + // Loop through all collapsible elements and add a click event listener to toggle visibility of their associated content + for (i = 0; i < coll.length; i++) { + coll[i].addEventListener("click", function() { + this.classList.toggle("active"); + var content = this.nextElementSibling; + if (content.style.display === "block") { + content.style.display = "none"; + } else { + content.style.display = "block"; + } + }); + } +}); diff --git a/applications/svZeroDGUI/static/js/cytoscape-edgehandles.js b/applications/svZeroDGUI/static/js/cytoscape-edgehandles.js new file mode 100644 index 000000000..34503a43b --- /dev/null +++ b/applications/svZeroDGUI/static/js/cytoscape-edgehandles.js @@ -0,0 +1,1171 @@ +/** + * cytoscape-edgehandles.js + * + * This file contains the implementation of edge handles for Cytoscape.js. + * It enables interactive edge creation between nodes in a Cytoscape graph. + * Users can click and drag from one node to another to create an edge. + * + * Key features include: + * - Initialization and configuration of edge handles. + * - Handling of edge creation, including visual feedback and edge type selection. + * - Custom callbacks for different stages of edge creation (start, stop, complete). + * + * Was downloaded from: https://github.com/cytoscape/cytoscape.js-edgehandles + */ + + +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("lodash.memoize"), require("lodash.throttle")); + else if(typeof define === 'function' && define.amd) + define(["lodash.memoize", "lodash.throttle"], factory); + else if(typeof exports === 'object') + exports["cytoscapeEdgehandles"] = factory(require("lodash.memoize"), require("lodash.throttle")); + else + root["cytoscapeEdgehandles"] = factory(root["_"]["memoize"], root["_"]["throttle"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE_13__, __WEBPACK_EXTERNAL_MODULE_14__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 12); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +// Simple, internal Object.assign() polyfill for options objects etc. + +module.exports = Object.assign != null ? Object.assign.bind(Object) : function (tgt) { + for (var _len = arguments.length, srcs = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + srcs[_key - 1] = arguments[_key]; + } + + srcs.filter(function (src) { + return src != null; + }).forEach(function (src) { + Object.keys(src).forEach(function (k) { + return tgt[k] = src[k]; + }); + }); + + return tgt; +}; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var Edgehandles = __webpack_require__(10); +var assign = __webpack_require__(0); + +module.exports = function (options) { + var cy = this; + + return new Edgehandles(assign({ cy: cy }, options)); +}; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function disableGestures() { + this.saveGestureState(); + + this.cy.zoomingEnabled(false).panningEnabled(false).boxSelectionEnabled(false); + + if (this.options.disableBrowserGestures) { + var wlOpts = this.windowListenerOptions; + + window.addEventListener('touchstart', this.preventDefault, wlOpts); + window.addEventListener('touchmove', this.preventDefault, wlOpts); + window.addEventListener('wheel', this.preventDefault, wlOpts); + } + + return this; +} + +function resetGestures() { + this.cy.zoomingEnabled(this.lastZoomingEnabled).panningEnabled(this.lastPanningEnabled).boxSelectionEnabled(this.lastBoxSelectionEnabled); + + if (this.options.disableBrowserGestures) { + var wlOpts = this.windowListenerOptions; + + window.removeEventListener('touchstart', this.preventDefault, wlOpts); + window.removeEventListener('touchmove', this.preventDefault, wlOpts); + window.removeEventListener('wheel', this.preventDefault, wlOpts); + } + + return this; +} + +function saveGestureState() { + var cy = this.cy; + + + this.lastPanningEnabled = cy.panningEnabled(); + this.lastZoomingEnabled = cy.zoomingEnabled(); + this.lastBoxSelectionEnabled = cy.boxSelectionEnabled(); + + return this; +} + +module.exports = { disableGestures: disableGestures, resetGestures: resetGestures, saveGestureState: saveGestureState }; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function addCytoscapeListeners() { + var _this = this; + + var cy = this.cy, + options = this.options; + + // grabbing nodes + + this.addListener(cy, 'drag', function () { + return _this.grabbingNode = true; + }); + this.addListener(cy, 'free', function () { + return _this.grabbingNode = false; + }); + + // start on tapstart handle + // start on tapstart node (draw mode) + // toggle on source node + this.addListener(cy, 'tapstart', 'node', function (e) { + var node = e.target; + + if (_this.drawMode) { + _this.start(node); + } + }); + + // update line on drag + this.addListener(cy, 'tapdrag', function (e) { + _this.update(e.position); + }); + + // hover over preview + this.addListener(cy, 'tapdragover', 'node', function (e) { + if (options.snap) { + // then ignore events like mouseover + } else { + _this.preview(e.target); + } + }); + + // hover out unpreview + this.addListener(cy, 'tapdragout', 'node', function (e) { + if (options.snap) { + // then keep the preview + } else { + _this.unpreview(e.target); + } + }); + + // stop gesture on tapend + this.addListener(cy, 'tapend', function () { + _this.stop(); + }); + + return this; +} + +module.exports = { addCytoscapeListeners: addCytoscapeListeners }; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/* eslint-disable no-unused-vars */ +var defaults = { + canConnect: function canConnect(sourceNode, targetNode) { + // whether an edge can be created between source and target + return !sourceNode.same(targetNode); // e.g. disallow loops + }, + edgeParams: function edgeParams(sourceNode, targetNode) { + // for edges between the specified source and target + // return element object to be passed to cy.add() for edge + return {}; + }, + hoverDelay: 150, // time spent hovering over a target node before it is considered selected + snap: true, // when enabled, the edge can be drawn by just moving close to a target node (can be confusing on compound graphs) + snapThreshold: 50, // the target node must be less than or equal to this many pixels away from the cursor/finger + snapFrequency: 15, // the number of times per second (Hz) that snap checks done (lower is less expensive) + noEdgeEventsInDraw: true, // set events:no to edges during draws, prevents mouseouts on compounds + disableBrowserGestures: true // during an edge drawing gesture, disable browser gestures such as two-finger trackpad swipe and pinch-to-zoom +}; +/* eslint-enable */ + +module.exports = defaults; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function toggleDrawMode(bool) { + var cy = this.cy; + + + this.drawMode = bool != null ? bool : !this.drawMode; + + if (this.drawMode) { + this.prevUngrabifyState = cy.autoungrabify(); + + cy.autoungrabify(true); + + this.emit('drawon'); + } else { + cy.autoungrabify(this.prevUngrabifyState); + + this.emit('drawoff'); + } + + return this; +} + +function enableDrawMode() { + return this.toggleDrawMode(true); +} + +function disableDrawMode() { + return this.toggleDrawMode(false); +} + +module.exports = { toggleDrawMode: toggleDrawMode, enableDrawMode: enableDrawMode, disableDrawMode: disableDrawMode }; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var assign = __webpack_require__(0); +var isString = function isString(x) { + return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === _typeof(''); +}; +var isArray = function isArray(x) { + return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === _typeof([]) && x.length != null; +}; + +function getEleJson(overrides, params, addedClasses) { + var json = {}; + + // basic values + assign(json, params, overrides); + + // make sure params can specify data but that overrides take precedence + assign(json.data, params.data, overrides.data); + + if (isString(params.classes)) { + json.classes = params.classes + ' ' + addedClasses; + } else if (isArray(params.classes)) { + json.classes = params.classes.join(' ') + ' ' + addedClasses; + } else { + json.classes = addedClasses; + } + + return json; +} + +function makeEdges() { + var preview = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var cy = this.cy, + options = this.options, + presumptiveTargets = this.presumptiveTargets, + previewEles = this.previewEles, + active = this.active; + + + var source = this.sourceNode; + var target = this.targetNode; + var classes = preview ? 'eh-preview' : ''; + var added = cy.collection(); + var canConnect = this.canConnect(target); + + // can't make edges outside of regular gesture lifecycle + if (!active) { + return; + } + + // must be able to connect + if (!canConnect) { + return; + } + + // detect cancel + if (!target || target.size() === 0) { + previewEles.remove(); + + this.emit('cancel', this.mp(), source, presumptiveTargets); + + return; + } + + // just remove preview class if we already have the edges + if (!preview) { + previewEles.removeClass('eh-preview').style('events', ''); + + this.emit('complete', this.mp(), source, target, previewEles); + + return; + } + + var source2target = cy.add(getEleJson({ + group: 'edges', + data: { + source: source.id(), + target: target.id() + } + }, this.edgeParams(target), classes)); + + added = added.merge(source2target); + + if (preview) { + this.previewEles = added; + + added.style('events', 'no'); + } else { + added.style('events', ''); + + this.emit('complete', this.mp(), source, target, added); + } + + return this; +} + +function makePreview() { + this.makeEdges(true); + + return this; +} + +function previewShown() { + return this.previewEles.nonempty() && this.previewEles.inside(); +} + +function removePreview() { + if (this.previewShown()) { + this.previewEles.remove(); + } + + return this; +} + +function updateEdge() { + var _this = this; + + var sourceNode = this.sourceNode, + ghostNode = this.ghostNode, + cy = this.cy, + mx = this.mx, + my = this.my; + + var x = mx; + var y = my; + var ghostEdge = void 0, + ghostEles = void 0; + + // can't draw a line without having the starting node + if (!sourceNode) { + return; + } + + if (!ghostNode || ghostNode.length === 0 || ghostNode.removed()) { + ghostEles = this.ghostEles = cy.collection(); + + cy.batch(function () { + ghostNode = _this.ghostNode = cy.add({ + group: 'nodes', + classes: 'eh-ghost eh-ghost-node', + position: { + x: 0, + y: 0 + } + }); + + ghostNode.style({ + 'background-color': 'blue', + 'width': 0.0001, + 'height': 0.0001, + 'opacity': 0, + 'events': 'no' + }); + + var ghostEdgeParams = {}; + + ghostEdge = cy.add(assign({}, ghostEdgeParams, { + group: 'edges', + data: assign({}, ghostEdgeParams.data, { + source: sourceNode.id(), + target: ghostNode.id() + }), + classes: 'eh-ghost eh-ghost-edge' + })); + + ghostEdge.style({ + 'events': 'no' + }); + }); + + ghostEles.merge(ghostNode).merge(ghostEdge); + } + + ghostNode.position({ x: x, y: y }); + + return this; +} + +module.exports = { + makeEdges: makeEdges, makePreview: makePreview, removePreview: removePreview, previewShown: previewShown, + updateEdge: updateEdge +}; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function disableEdgeEvents() { + if (this.options.noEdgeEventsInDraw) { + this.cy.edges().style('events', 'no'); + } + + return this; +} + +function enableEdgeEvents() { + if (this.options.noEdgeEventsInDraw) { + this.cy.edges().style('events', ''); + } + + return this; +} + +module.exports = { disableEdgeEvents: disableEdgeEvents, enableEdgeEvents: enableEdgeEvents }; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function enable() { + this.enabled = true; + + this.emit('enable'); + + return this; +} + +function disable() { + this.enabled = false; + + this.emit('disable'); + + return this; +} + +module.exports = { enable: enable, disable: disable }; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var memoize = __webpack_require__(13); +var sqrt2 = Math.sqrt(2); + +function canStartOn(node) { + var previewEles = this.previewEles, + ghostEles = this.ghostEles; + + var isPreview = function isPreview(el) { + return previewEles.anySame(el); + }; + var isGhost = function isGhost(el) { + return ghostEles.anySame(el); + }; + var isTemp = function isTemp(el) { + return isPreview(el) || isGhost(el); + }; + + var enabled = this.enabled, + active = this.active, + grabbingNode = this.grabbingNode; + + + return enabled && !active && !grabbingNode && node != null && node.nonempty() && !isTemp(node); +} + +function canStartDrawModeOn(node) { + return this.canStartOn(node) && this.drawMode; +} + +function canStartNonDrawModeOn(node) { + return this.canStartOn(node) && !this.drawMode; +} + +function start(node) { + var _this = this; + + if (!this.canStartOn(node)) { + return; + } + + this.active = true; + + this.sourceNode = node; + this.sourceNode.addClass('eh-source'); + + this.disableGestures(); + this.disableEdgeEvents(); + + var getId = function getId(n) { + return n.id(); + }; + + this.canConnect = memoize(function (target) { + return _this.options.canConnect(_this.sourceNode, target); + }, getId); + + this.edgeParams = memoize(function (target) { + return _this.options.edgeParams(_this.sourceNode, target); + }, getId); + + this.emit('start', this.hp(), node); +} + +function update(pos) { + if (!this.active) { + return; + } + + var p = pos; + + this.mx = p.x; + this.my = p.y; + + this.updateEdge(); + this.throttledSnap(); + + return this; +} + +function snap() { + if (!this.active || !this.options.snap) { + return false; + } + + var cy = this.cy; + var tgt = this.targetNode; + var threshold = this.options.snapThreshold; + var mousePos = this.mp(); + var previewEles = this.previewEles, + ghostNode = this.ghostNode; + + + var radius = function radius(n) { + return sqrt2 * Math.max(n.outerWidth(), n.outerHeight()) / 2; + }; // worst-case enclosure of bb by circle + var sqDist = function sqDist(x1, y1, x2, y2) { + var dx = x2 - x1;var dy = y2 - y1;return dx * dx + dy * dy; + }; + var sqDistByPt = function sqDistByPt(p1, p2) { + return sqDist(p1.x, p1.y, p2.x, p2.y); + }; + var nodeSqDist = function nodeSqDist(n) { + return sqDistByPt(n.position(), mousePos); + }; + + var sqThreshold = function sqThreshold(n) { + var r = radius(n);var t = r + threshold;return t * t; + }; + var isWithinThreshold = function isWithinThreshold(n) { + return nodeSqDist(n) <= sqThreshold(n); + }; + + var bbSqDist = function bbSqDist(n) { + var p = n.position(); + var halfW = n.outerWidth() / 2; + var halfH = n.outerHeight() / 2; + + // node and mouse positions, line is formed from node to mouse + var nx = p.x; + var ny = p.y; + var mx = mousePos.x; + var my = mousePos.y; + + // bounding box + var x1 = nx - halfW; + var x2 = nx + halfW; + var y1 = ny - halfH; + var y2 = ny + halfH; + + var insideXBounds = x1 <= mx && mx <= x2; + var insideYBounds = y1 <= my && my <= y2; + + if (insideXBounds && insideYBounds) { + // inside box + return 0; + } else if (insideXBounds) { + // perpendicular distance to box, top or bottom + var dy1 = my - y1; + var dy2 = my - y2; + + return Math.min(dy1 * dy1, dy2 * dy2); + } else if (insideYBounds) { + // perpendicular distance to box, left or right + var dx1 = mx - x1; + var dx2 = mx - x2; + + return Math.min(dx1 * dx1, dx2 * dx2); + } else if (mx < x1 && my < y1) { + // top-left corner distance + return sqDist(mx, my, x1, y1); + } else if (mx > x2 && my < y1) { + // top-right corner distance + return sqDist(mx, my, x2, y1); + } else if (mx < x1 && my > y2) { + // bottom-left corner distance + return sqDist(mx, my, x1, y2); + } else { + // bottom-right corner distance + return sqDist(mx, my, x2, y2); + } + }; + + var cmpBbSqDist = function cmpBbSqDist(n1, n2) { + return bbSqDist(n1) - bbSqDist(n2); + }; + + var cmp = cmpBbSqDist; + + var allowHoverDelay = false; + + var mouseIsInside = function mouseIsInside(n) { + var mp = mousePos; + var w = n.outerWidth(); + var halfW = w / 2; + var h = n.outerHeight(); + var halfH = h / 2; + var p = n.position(); + var x1 = p.x - halfW; + var x2 = p.x + halfW; + var y1 = p.y - halfH; + var y2 = p.y + halfH; + + return x1 <= mp.x && mp.x <= x2 && y1 <= mp.y && mp.y <= y2; + }; + + var isEhEle = function isEhEle(n) { + return n.same(previewEles) || n.same(ghostNode); + }; + + var nodesByDist = cy.nodes(function (n) { + return !isEhEle(n) && isWithinThreshold(n); + }).sort(cmp); + var snapped = false; + + if (tgt.nonempty() && !isWithinThreshold(tgt)) { + this.unpreview(tgt); + } + + for (var i = 0; i < nodesByDist.length; i++) { + var n = nodesByDist[i]; + + // skip a parent node when the mouse is inside it + if (n.isParent() && mouseIsInside(n)) { + continue; + } + + // skip a child node when the mouse is not inside the parent + if (n.isChild() && !mouseIsInside(n.parent())) { + continue; + } + + if (n.same(tgt) || this.preview(n, allowHoverDelay)) { + snapped = true; + break; + } + } + + return snapped; +} + +function preview(target) { + var _this2 = this; + + var allowHoverDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var options = this.options, + sourceNode = this.sourceNode, + ghostNode = this.ghostNode, + ghostEles = this.ghostEles, + presumptiveTargets = this.presumptiveTargets, + previewEles = this.previewEles, + active = this.active; + + var source = sourceNode; + var isGhost = target.same(ghostNode); + var noEdge = !this.canConnect(target); + var isExistingTgt = target.same(this.targetNode); + + if (!active || isGhost || noEdge || isExistingTgt + // || (target.isParent()) + ) { + return false; + } + + if (this.targetNode.nonempty()) { + this.unpreview(this.targetNode); + } + + clearTimeout(this.previewTimeout); + + var applyPreview = function applyPreview() { + _this2.targetNode = target; + + presumptiveTargets.merge(target); + + target.addClass('eh-presumptive-target'); + target.addClass('eh-target'); + + _this2.emit('hoverover', _this2.mp(), source, target); + + target.addClass('eh-preview'); + + ghostEles.addClass('eh-preview-active'); + sourceNode.addClass('eh-preview-active'); + target.addClass('eh-preview-active'); + + _this2.makePreview(); + + _this2.emit('previewon', _this2.mp(), source, target, previewEles); + }; + + if (allowHoverDelay && options.hoverDelay > 0) { + this.previewTimeout = setTimeout(applyPreview, options.hoverDelay); + } else { + applyPreview(); + } + + return true; +} + +function unpreview(target) { + if (!this.active) { + return; + } + + var previewTimeout = this.previewTimeout, + sourceNode = this.sourceNode, + previewEles = this.previewEles, + ghostEles = this.ghostEles, + cy = this.cy; + + clearTimeout(previewTimeout); + this.previewTimeout = null; + + var source = sourceNode; + + target.removeClass('eh-preview eh-target eh-presumptive-target eh-preview-active'); + ghostEles.removeClass('eh-preview-active'); + sourceNode.removeClass('eh-preview-active'); + + this.targetNode = cy.collection(); + + this.removePreview(source, target); + + this.emit('hoverout', this.mp(), source, target); + this.emit('previewoff', this.mp(), source, target, previewEles); + + return this; +} + +function stop() { + if (!this.active) { + return; + } + + var sourceNode = this.sourceNode, + targetNode = this.targetNode, + ghostEles = this.ghostEles, + presumptiveTargets = this.presumptiveTargets; + + + clearTimeout(this.previewTimeout); + + sourceNode.removeClass('eh-source eh-preview-active'); + targetNode.removeClass('eh-target eh-preview eh-hover eh-preview-active'); + presumptiveTargets.removeClass('eh-presumptive-target'); + + this.makeEdges(); + + ghostEles.remove(); + + this.clearCollections(); + + this.resetGestures(); + this.enableEdgeEvents(); + + this.active = false; + + this.emit('stop', this.mp(), sourceNode); + + return this; +} + +module.exports = { + start: start, update: update, preview: preview, unpreview: unpreview, stop: stop, snap: snap, + canStartOn: canStartOn, canStartDrawModeOn: canStartDrawModeOn, canStartNonDrawModeOn: canStartNonDrawModeOn +}; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var defaults = __webpack_require__(4); +var assign = __webpack_require__(0); +var throttle = __webpack_require__(14); + +var cyGesturesToggle = __webpack_require__(2); +var cyListeners = __webpack_require__(3); +var drawMode = __webpack_require__(5); +var drawing = __webpack_require__(6); +var enabling = __webpack_require__(8); +var gestureLifecycle = __webpack_require__(9); +var listeners = __webpack_require__(11); +var edgeEvents = __webpack_require__(7); + +function Edgehandles(options) { + var cy = options.cy; + + this.cy = cy; + this.listeners = []; + + // edgehandles gesture state + this.enabled = true; + this.drawMode = false; + this.active = false; + this.grabbingNode = false; + + // edgehandles elements + this.clearCollections(); + + // mouse position + this.mx = 0; + this.my = 0; + + this.options = assign({}, defaults, options); + + this.saveGestureState(); + this.addListeners(); + + this.throttledSnap = throttle(this.snap.bind(this), 1000 / options.snapFrequency); + + this.preventDefault = function (e) { + return e.preventDefault(); + }; + + // disabled until start() + this.canConnect = function () { + return false; + }; + + var supportsPassive = false; + try { + var opts = Object.defineProperty({}, 'passive', { + get: function get() { + supportsPassive = true; + } + }); + + window.addEventListener('test', null, opts); + } catch (err) { + // swallow + } + + if (supportsPassive) { + this.windowListenerOptions = { capture: true, passive: false }; + } else { + this.windowListenerOptions = true; + } +} + +var proto = Edgehandles.prototype = {}; +var extend = function extend(obj) { + return assign(proto, obj); +}; + +proto.destroy = function () { + this.removeListeners(); +}; + +proto.setOptions = function (options) { + assign(this.options, options); +}; + +proto.mp = function () { + return { x: this.mx, y: this.my }; +}; + +proto.hp = function () { + return { x: this.hx, y: this.hy }; +}; + +proto.clearCollections = function () { + var cy = this.cy; + + + this.previewEles = cy.collection(); + this.ghostEles = cy.collection(); + this.ghostNode = cy.collection(); + this.sourceNode = cy.collection(); + this.targetNode = cy.collection(); + this.presumptiveTargets = cy.collection(); +}; + +[cyGesturesToggle, cyListeners, drawMode, drawing, enabling, gestureLifecycle, listeners, edgeEvents].forEach(extend); + +module.exports = Edgehandles; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +function addListeners() { + var _this = this; + + this.addCytoscapeListeners(); + + this.addListener(this.cy, 'destroy', function () { + return _this.destroy(); + }); + + return this; +} + +function removeListeners() { + for (var i = this.listeners.length - 1; i >= 0; i--) { + var l = this.listeners[i]; + + this.removeListener(l.target, l.event, l.selector, l.callback, l.options); + } + + return this; +} + +function getListener(target, event, selector, callback, options) { + if ((typeof selector === 'undefined' ? 'undefined' : _typeof(selector)) !== _typeof('')) { + callback = selector; + options = callback; + selector = null; + } + + if (options == null) { + options = false; + } + + return { target: target, event: event, selector: selector, callback: callback, options: options }; +} + +function isDom(target) { + return target instanceof Element; +} + +function addListener(target, event, selector, callback, options) { + var l = getListener(target, event, selector, callback, options); + + this.listeners.push(l); + + if (isDom(l.target)) { + l.target.addEventListener(l.event, l.callback, l.options); + } else { + if (l.selector) { + l.target.addListener(l.event, l.selector, l.callback, l.options); + } else { + l.target.addListener(l.event, l.callback, l.options); + } + } + + return this; +} + +function removeListener(target, event, selector, callback, options) { + var l = getListener(target, event, selector, callback, options); + + for (var i = this.listeners.length - 1; i >= 0; i--) { + var l2 = this.listeners[i]; + + if (l.target === l2.target && l.event === l2.event && (l.selector == null || l.selector === l2.selector) && (l.callback == null || l.callback === l2.callback)) { + this.listeners.splice(i, 1); + + if (isDom(l.target)) { + l.target.removeEventListener(l.event, l.callback, l.options); + } else { + if (l.selector) { + l.target.removeListener(l.event, l.selector, l.callback, l.options); + } else { + l.target.removeListener(l.event, l.callback, l.options); + } + } + + break; + } + } + + return this; +} + +function emit(type, position) { + var cy = this.cy; + + for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + args[_key - 2] = arguments[_key]; + } + + cy.emit({ type: 'eh' + type, position: position }, args); + + return this; +} + +module.exports = { addListener: addListener, addListeners: addListeners, removeListener: removeListener, removeListeners: removeListeners, emit: emit }; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var impl = __webpack_require__(1); + +// registers the extension on a cytoscape lib ref +var register = function register(cytoscape) { + if (!cytoscape) { + return; + } // can't register if cytoscape unspecified + + cytoscape('core', 'edgehandles', impl); // register with cytoscape.js +}; + +if (typeof cytoscape !== 'undefined') { + // expose to global cytoscape (i.e. window.cytoscape) + register(cytoscape); // eslint-disable-line no-undef +} + +module.exports = register; + +/***/ }), +/* 13 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_13__; + +/***/ }), +/* 14 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_14__; + +/***/ }) +/******/ ]); +}); \ No newline at end of file diff --git a/applications/svZeroDGUI/static/js/cytoscape.min.js b/applications/svZeroDGUI/static/js/cytoscape.min.js new file mode 100644 index 000000000..163d76681 --- /dev/null +++ b/applications/svZeroDGUI/static/js/cytoscape.min.js @@ -0,0 +1,32 @@ +/** + * Copyright (c) 2016-2024, The Cytoscape Consortium. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the “Software”), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).cytoscape=t()}(this,(function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){l=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(l)throw a}}}}var u="undefined"==typeof window?null:window,c=u?u.navigator:null;u&&u.document;var d=e(""),h=e({}),p=e((function(){})),f="undefined"==typeof HTMLElement?"undefined":e(HTMLElement),g=function(e){return e&&e.instanceString&&y(e.instanceString)?e.instanceString():null},v=function(t){return null!=t&&e(t)==d},y=function(t){return null!=t&&e(t)===p},m=function(e){return!E(e)&&(Array.isArray?Array.isArray(e):null!=e&&e instanceof Array)},b=function(t){return null!=t&&e(t)===h&&!m(t)&&t.constructor===Object},x=function(t){return null!=t&&e(t)===e(1)&&!isNaN(t)},w=function(e){return"undefined"===f?void 0:null!=e&&e instanceof HTMLElement},E=function(e){return k(e)||C(e)},k=function(e){return"collection"===g(e)&&e._private.single},C=function(e){return"collection"===g(e)&&!e._private.single},S=function(e){return"core"===g(e)},P=function(e){return"stylesheet"===g(e)},D=function(e){return null==e||!(""!==e&&!e.match(/^\s+$/))},T=function(t){return function(t){return null!=t&&e(t)===h}(t)&&y(t.then)},_=function(e,t){t||(t=function(){if(1===arguments.length)return arguments[0];if(0===arguments.length)return"undefined";for(var e=[],t=0;tt?1:0},L=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n255)return;t.push(Math.floor(a))}var o=r[1]||r[2]||r[3],s=r[1]&&r[2]&&r[3];if(o&&!s)return;var l=n[4];if(void 0!==l){if((l=parseFloat(l))<0||l>1)return;t.push(l)}}return t}(e)||function(e){var t,n,r,i,a,o,s,l;function u(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var c=new RegExp("^hsl[a]?\\(((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?)))\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%])\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%])(?:\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))))?\\)$").exec(e);if(c){if((n=parseInt(c[1]))<0?n=(360- -1*n%360)%360:n>360&&(n%=360),n/=360,(r=parseFloat(c[2]))<0||r>100)return;if(r/=100,(i=parseFloat(c[3]))<0||i>100)return;if(i/=100,void 0!==(a=c[4])&&((a=parseFloat(a))<0||a>1))return;if(0===r)o=s=l=Math.round(255*i);else{var d=i<.5?i*(1+r):i+r-i*r,h=2*i-d;o=Math.round(255*u(h,d,n+1/3)),s=Math.round(255*u(h,d,n)),l=Math.round(255*u(h,d,n-1/3))}t=[o,s,l,a]}return t}(e)},R={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},V=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i=t||n<0||d&&e-u>=a}function v(){var e=H();if(g(e))return y(e);s=setTimeout(v,function(e){var n=t-(e-l);return d?ge(n,a-(e-u)):n}(e))}function y(e){return s=void 0,h&&r?p(e):(r=i=void 0,o)}function m(){var e=H(),n=g(e);if(r=arguments,i=this,l=e,n){if(void 0===s)return f(l);if(d)return clearTimeout(s),s=setTimeout(v,t),p(l)}return void 0===s&&(s=setTimeout(v,t)),o}return t=pe(t)||0,j(n)&&(c=!!n.leading,a=(d="maxWait"in n)?fe(pe(n.maxWait)||0,t):a,h="trailing"in n?!!n.trailing:h),m.cancel=function(){void 0!==s&&clearTimeout(s),u=0,r=l=i=s=void 0},m.flush=function(){return void 0===s?o:y(H())},m},ye=u?u.performance:null,me=ye&&ye.now?function(){return ye.now()}:function(){return Date.now()},be=function(){if(u){if(u.requestAnimationFrame)return function(e){u.requestAnimationFrame(e)};if(u.mozRequestAnimationFrame)return function(e){u.mozRequestAnimationFrame(e)};if(u.webkitRequestAnimationFrame)return function(e){u.webkitRequestAnimationFrame(e)};if(u.msRequestAnimationFrame)return function(e){u.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout((function(){e(me())}),1e3/60)}}(),xe=function(e){return be(e)},we=me,Ee=65599,ke=function(e){for(var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9261,r=n;!(t=e.next()).done;)r=r*Ee+t.value|0;return r},Ce=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9261;return t*Ee+e|0},Se=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5381;return(t<<5)+t+e|0},Pe=function(e){return 2097152*e[0]+e[1]},De=function(e,t){return[Ce(e[0],t[0]),Se(e[1],t[1])]},Te=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return ke({next:function(){return r=0&&(e[r]!==t||(e.splice(r,1),!n));r--);},Ge=function(e){e.splice(0,e.length)},Ue=function(e,t,n){return n&&(t=N(n,t)),e[t]},Ze=function(e,t,n,r){n&&(t=N(n,t)),e[t]=r},$e="undefined"!=typeof Map?Map:function(){function e(){t(this,e),this._obj={}}return r(e,[{key:"set",value:function(e,t){return this._obj[e]=t,this}},{key:"delete",value:function(e){return this._obj[e]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(e){return void 0!==this._obj[e]}},{key:"get",value:function(e){return this._obj[e]}}]),e}(),Qe=function(){function e(n){if(t(this,e),this._obj=Object.create(null),this.size=0,null!=n){var r;r=null!=n.instanceString&&n.instanceString()===this.instanceString()?n.toArray():n;for(var i=0;i2&&void 0!==arguments[2])||arguments[2];if(void 0!==e&&void 0!==t&&S(e)){var r=t.group;if(null==r&&(r=t.data&&null!=t.data.source&&null!=t.data.target?"edges":"nodes"),"nodes"===r||"edges"===r){this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:r,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!t.selected,selectable:void 0===t.selectable||!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:void 0===t.grabbable||!!t.grabbable,pannable:void 0===t.pannable?"edges"===r:!!t.pannable,active:!1,classes:new Je,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(null==i.position.x&&(i.position.x=0),null==i.position.y&&(i.position.y=0),t.renderedPosition){var a=t.renderedPosition,o=e.pan(),s=e.zoom();i.position={x:(a.x-o.x)/s,y:(a.y-o.y)/s}}var l=[];m(t.classes)?l=t.classes:v(t.classes)&&(l=t.classes.split(/\s+/));for(var u=0,c=l.length;ut?1:0},u=function(e,t,i,a,o){var s;if(null==i&&(i=0),null==o&&(o=n),i<0)throw new Error("lo must be non-negative");for(null==a&&(a=e.length);in;0<=n?t++:t--)u.push(t);return u}.apply(this).reverse()).length;ag;0<=g?++h:--h)v.push(a(e,r));return v},f=function(e,t,r,i){var a,o,s;for(null==i&&(i=n),a=e[r];r>t&&i(a,o=e[s=r-1>>1])<0;)e[r]=o,r=s;return e[r]=a},g=function(e,t,r){var i,a,o,s,l;for(null==r&&(r=n),a=e.length,l=t,o=e[t],i=2*t+1;i0;){var k=m.pop(),C=g(k),S=k.id();if(d[S]=C,C!==1/0)for(var P=k.neighborhood().intersect(p),D=0;D0)for(n.unshift(t);c[i];){var a=c[i];n.unshift(a.edge),n.unshift(a.node),i=(r=a.node).id()}return o.spawn(n)}}}},ot={kruskal:function(e){e=e||function(e){return 1};for(var t=this.byGroup(),n=t.nodes,r=t.edges,i=n.length,a=new Array(i),o=n,s=function(e){for(var t=0;t0;){if(l=g.pop(),u=l.id(),v.delete(u),w++,u===d){for(var E=[],k=i,C=d,S=m[C];E.unshift(k),null!=S&&E.unshift(S),null!=(k=y[C]);)S=m[C=k.id()];return{found:!0,distance:h[u],path:this.spawn(E),steps:w}}f[u]=!0;for(var P=l._private.edges,D=0;DD&&(p[P]=D,m[P]=S,b[P]=w),!i){var T=S*u+C;!i&&p[T]>D&&(p[T]=D,m[T]=C,b[T]=w)}}}for(var _=0;_1&&void 0!==arguments[1]?arguments[1]:a,r=b(e),i=[],o=r;;){if(null==o)return t.spawn();var l=m(o),u=l.edge,c=l.pred;if(i.unshift(o[0]),o.same(n)&&i.length>0)break;null!=u&&i.unshift(u),o=c}return s.spawn(i)},hasNegativeWeightCycle:f,negativeWeightCycles:g}}},pt=Math.sqrt(2),ft=function(e,t,n){0===n.length&&Ve("Karger-Stein must be run on a connected (sub)graph");for(var r=n[e],i=r[1],a=r[2],o=t[i],s=t[a],l=n,u=l.length-1;u>=0;u--){var c=l[u],d=c[1],h=c[2];(t[d]===o&&t[h]===s||t[d]===s&&t[h]===o)&&l.splice(u,1)}for(var p=0;pr;){var i=Math.floor(Math.random()*t.length);t=ft(i,e,t),n--}return t},vt={kargerStein:function(){var e=this,t=this.byGroup(),n=t.nodes,r=t.edges;r.unmergeBy((function(e){return e.isLoop()}));var i=n.length,a=r.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),s=Math.floor(i/pt);if(!(i<2)){for(var l=[],u=0;u0?1:e<0?-1:0},kt=function(e,t){return Math.sqrt(Ct(e,t))},Ct=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},St=function(e){for(var t=e.length,n=0,r=0;r=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(null!=e.w&&null!=e.h&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},Mt=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},Bt=function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},Nt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},zt=function(e){var t,n,r,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===o.length)t=n=r=i=o[0];else if(2===o.length)t=r=o[0],i=n=o[1];else if(4===o.length){var s=a(o,4);t=s[0],n=s[1],r=s[2],i=s[3]}return e.x1-=i,e.x2+=n,e.y1-=t,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},It=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},At=function(e,t){return!(e.x1>t.x2)&&(!(t.x1>e.x2)&&(!(e.x2t.y2)&&!(t.y1>e.y2)))))))},Lt=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},Ot=function(e,t){return Lt(e,t.x1,t.y1)&&Lt(e,t.x2,t.y2)},Rt=function(e,t,n,r,i,a,o){var s,l,u=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"auto",c="auto"===u?nn(i,a):u,d=i/2,h=a/2,p=(c=Math.min(c,d,h))!==d,f=c!==h;if(p){var g=n-d+c-o,v=r-h-o,y=n+d-c+o,m=v;if((s=Zt(e,t,n,r,g,v,y,m,!1)).length>0)return s}if(f){var b=n+d+o,x=r-h+c-o,w=b,E=r+h-c+o;if((s=Zt(e,t,n,r,b,x,w,E,!1)).length>0)return s}if(p){var k=n-d+c-o,C=r+h+o,S=n+d-c+o,P=C;if((s=Zt(e,t,n,r,k,C,S,P,!1)).length>0)return s}if(f){var D=n-d-o,T=r-h+c-o,_=D,M=r+h-c+o;if((s=Zt(e,t,n,r,D,T,_,M,!1)).length>0)return s}var B=n-d+c,N=r-h+c;if((l=Gt(e,t,n,r,B,N,c+o)).length>0&&l[0]<=B&&l[1]<=N)return[l[0],l[1]];var z=n+d-c,I=r-h+c;if((l=Gt(e,t,n,r,z,I,c+o)).length>0&&l[0]>=z&&l[1]<=I)return[l[0],l[1]];var A=n+d-c,L=r+h-c;if((l=Gt(e,t,n,r,A,L,c+o)).length>0&&l[0]>=A&&l[1]>=L)return[l[0],l[1]];var O=n-d+c,R=r+h-c;return(l=Gt(e,t,n,r,O,R,c+o)).length>0&&l[0]<=O&&l[1]>=R?[l[0],l[1]]:[]},Vt=function(e,t,n,r,i,a,o){var s=o,l=Math.min(n,i),u=Math.max(n,i),c=Math.min(r,a),d=Math.max(r,a);return l-s<=e&&e<=u+s&&c-s<=t&&t<=d+s},Ft=function(e,t,n,r,i,a,o,s,l){var u=Math.min(n,o,i)-l,c=Math.max(n,o,i)+l,d=Math.min(r,s,a)-l,h=Math.max(r,s,a)+l;return!(ec||th)},jt=function(e,t,n,r,i,a,o,s){var l=[];!function(e,t,n,r,i){var a,o,s,l,u,c,d,h;0===e&&(e=1e-5),s=-27*(r/=e)+(t/=e)*(9*(n/=e)-t*t*2),a=(o=(3*n-t*t)/9)*o*o+(s/=54)*s,i[1]=0,d=t/3,a>0?(u=(u=s+Math.sqrt(a))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),c=(c=s-Math.sqrt(a))<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-d+u+c,d+=(u+c)/2,i[4]=i[2]=-d,d=Math.sqrt(3)*(-c+u)/2,i[3]=d,i[5]=-d):(i[5]=i[3]=0,0===a?(h=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),i[0]=2*h-d,i[4]=i[2]=-(h+d)):(l=(o=-o)*o*o,l=Math.acos(s/Math.sqrt(l)),h=2*Math.sqrt(o),i[0]=-d+h*Math.cos(l/3),i[2]=-d+h*Math.cos((l+2*Math.PI)/3),i[4]=-d+h*Math.cos((l+4*Math.PI)/3)))}(1*n*n-4*n*i+2*n*o+4*i*i-4*i*o+o*o+r*r-4*r*a+2*r*s+4*a*a-4*a*s+s*s,9*n*i-3*n*n-3*n*o-6*i*i+3*i*o+9*r*a-3*r*r-3*r*s-6*a*a+3*a*s,3*n*n-6*n*i+n*o-n*e+2*i*i+2*i*e-o*e+3*r*r-6*r*a+r*s-r*t+2*a*a+2*a*t-s*t,1*n*i-n*n+n*e-i*e+r*a-r*r+r*t-a*t,l);for(var u=[],c=0;c<6;c+=2)Math.abs(l[c+1])<1e-7&&l[c]>=0&&l[c]<=1&&u.push(l[c]);u.push(1),u.push(0);for(var d,h,p,f=-1,g=0;g=0?pl?(e-i)*(e-i)+(t-a)*(t-a):u-d},Yt=function(e,t,n){for(var r,i,a,o,s=0,l=0;l=e&&e>=a||r<=e&&e<=a))continue;(e-r)/(a-r)*(o-i)+i>t&&s++}return s%2!=0},Xt=function(e,t,n,r,i,a,o,s,l){var u,c=new Array(n.length);null!=s[0]?(u=Math.atan(s[1]/s[0]),s[0]<0?u+=Math.PI/2:u=-u-Math.PI/2):u=s;for(var d,h=Math.cos(-u),p=Math.sin(-u),f=0;f0){var g=Ht(c,-l);d=Wt(g)}else d=c;return Yt(e,t,d)},Wt=function(e){for(var t,n,r,i,a,o,s,l,u=new Array(e.length/2),c=0;c=0&&f<=1&&v.push(f),g>=0&&g<=1&&v.push(g),0===v.length)return[];var y=v[0]*s[0]+e,m=v[0]*s[1]+t;return v.length>1?v[0]==v[1]?[y,m]:[y,m,v[1]*s[0]+e,v[1]*s[1]+t]:[y,m]},Ut=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},Zt=function(e,t,n,r,i,a,o,s,l){var u=e-i,c=n-e,d=o-i,h=t-a,p=r-t,f=s-a,g=d*h-f*u,v=c*h-p*u,y=f*c-d*p;if(0!==y){var m=g/y,b=v/y;return-.001<=m&&m<=1.001&&-.001<=b&&b<=1.001||l?[e+m*c,t+m*p]:[]}return 0===g||0===v?Ut(e,n,o)===o?[o,s]:Ut(e,n,i)===i?[i,a]:Ut(i,o,n)===n?[n,r]:[]:[]},$t=function(e,t,n,r,i,a,o,s){var l,u,c,d,h,p,f=[],g=new Array(n.length),v=!0;if(null==a&&(v=!1),v){for(var y=0;y0){var m=Ht(g,-s);u=Wt(m)}else u=g}else u=n;for(var b=0;bu&&(u=t)},d=function(e){return l[e]},h=0;h0?b.edgesTo(m)[0]:m.edgesTo(b)[0];var w=r(x);m=m.id(),h[m]>h[v]+w&&(h[m]=h[v]+w,p.nodes.indexOf(m)<0?p.push(m):p.updateItem(m),u[m]=0,l[m]=[]),h[m]==h[v]+w&&(u[m]=u[m]+u[v],l[m].push(v))}else for(var E=0;E0;){for(var P=n.pop(),D=0;D0&&o.push(n[s]);0!==o.length&&i.push(r.collection(o))}return i}(c,l,t,r);return b=function(e){for(var t=0;t5&&void 0!==arguments[5]?arguments[5]:Cn,o=r,s=0;s=2?Mn(e,t,n,0,Dn,Tn):Mn(e,t,n,0,Pn)},squaredEuclidean:function(e,t,n){return Mn(e,t,n,0,Dn)},manhattan:function(e,t,n){return Mn(e,t,n,0,Pn)},max:function(e,t,n){return Mn(e,t,n,-1/0,_n)}};function Nn(e,t,n,r,i,a){var o;return o=y(e)?e:Bn[e]||Bn.euclidean,0===t&&y(e)?o(i,a):o(t,n,r,i,a)}Bn["squared-euclidean"]=Bn.squaredEuclidean,Bn.squaredeuclidean=Bn.squaredEuclidean;var zn=He({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),In=function(e){return zn(e)},An=function(e,t,n,r,i){var a="kMedoids"!==i?function(e){return n[e]}:function(e){return r[e](n)},o=n,s=t;return Nn(e,r.length,a,(function(e){return r[e](t)}),o,s)},Ln=function(e,t,n){for(var r=n.length,i=new Array(r),a=new Array(r),o=new Array(t),s=null,l=0;ln)return!1}return!0},jn=function(e,t,n){for(var r=0;ri&&(i=t[l][u],a=u);o[a].push(e[l])}for(var c=0;c=i.threshold||"dendrogram"===i.mode&&1===e.length)return!1;var p,f=t[o],g=t[r[o]];p="dendrogram"===i.mode?{left:f,right:g,key:f.key}:{value:f.value.concat(g.value),key:f.key},e[f.index]=p,e.splice(g.index,1),t[f.key]=p;for(var v=0;vn[g.key][y.key]&&(a=n[g.key][y.key])):"max"===i.linkage?(a=n[f.key][y.key],n[f.key][y.key]1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];r?e=e.slice(t,n):(n0&&e.splice(0,t));for(var o=0,s=e.length-1;s>=0;s--){var l=e[s];a?isFinite(l)||(e[s]=-1/0,o++):e.splice(s,1)}i&&e.sort((function(e,t){return e-t}));var u=e.length,c=Math.floor(u/2);return u%2!=0?e[c+1+o]:(e[c-1+o]+e[c+o])/2}(e):"mean"===t?function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=0,i=0,a=t;a1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=1/0,i=t;i1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=-1/0,i=t;io&&(a=l,o=t[i*e+l])}a>0&&r.push(a)}for(var u=0;u=D?(T=D,D=M,_=B):M>T&&(T=M);for(var N=0;N0?1:0;C[k%u.minIterations*t+R]=V,O+=V}if(O>0&&(k>=u.minIterations-1||k==u.maxIterations-1)){for(var F=0,j=0;j0&&r.push(i);return r}(t,a,o),X=function(e,t,n){for(var r=rr(e,t,n),i=0;il&&(s=u,l=c)}n[i]=a[s]}return r=rr(e,t,n)}(t,r,Y),W={},H=0;H1)}}));var l=Object.keys(t).filter((function(e){return t[e].cutVertex})).map((function(t){return e.getElementById(t)}));return{cut:e.spawn(l),components:i}},lr=function(){var e=this,t={},n=0,r=[],i=[],a=e.spawn(e);return e.forEach((function(o){if(o.isNode()){var s=o.id();s in t||function o(s){if(i.push(s),t[s]={index:n,low:n++,explored:!1},e.getElementById(s).connectedEdges().intersection(e).forEach((function(e){var n=e.target().id();n!==s&&(n in t||o(n),t[n].explored||(t[s].low=Math.min(t[s].low,t[n].low)))})),t[s].index===t[s].low){for(var l=e.spawn();;){var u=i.pop();if(l.merge(e.getElementById(u)),t[u].low=t[s].index,t[u].explored=!0,u===s)break}var c=l.edgesWith(l),d=l.merge(c);r.push(d),a=a.difference(d)}}(s)}})),{cut:a,components:r}},ur={};[nt,at,ot,lt,ct,ht,vt,sn,un,dn,pn,kn,Kn,Jn,ar,{hierholzer:function(e){if(!b(e)){var t=arguments;e={root:t[0],directed:t[1]}}var n,r,i,a=or(e),o=a.root,s=a.directed,l=this,u=!1;o&&(i=v(o)?this.filter(o)[0].id():o[0].id());var c={},d={};s?l.forEach((function(e){var t=e.id();if(e.isNode()){var i=e.indegree(!0),a=e.outdegree(!0),o=i-a,s=a-i;1==o?n?u=!0:n=t:1==s?r?u=!0:r=t:(s>1||o>1)&&(u=!0),c[t]=[],e.outgoers().forEach((function(e){e.isEdge()&&c[t].push(e.id())}))}else d[t]=[void 0,e.target().id()]})):l.forEach((function(e){var t=e.id();e.isNode()?(e.degree(!0)%2&&(n?r?u=!0:r=t:n=t),c[t]=[],e.connectedEdges().forEach((function(e){return c[t].push(e.id())}))):d[t]=[e.source().id(),e.target().id()]}));var h={found:!1,trail:void 0};if(u)return h;if(r&&n)if(s){if(i&&r!=i)return h;i=r}else{if(i&&r!=i&&n!=i)return h;i||(i=r)}else i||(i=l[0].id());var p=function(e){for(var t,n,r,i=e,a=[e];c[i].length;)t=c[i].shift(),n=d[t][0],i!=(r=d[t][1])?(c[r]=c[r].filter((function(e){return e!=t})),i=r):s||i==n||(c[n]=c[n].filter((function(e){return e!=t})),i=n),a.unshift(t),a.unshift(i);return a},f=[],g=[];for(g=p(i);1!=g.length;)0==c[g[0]].length?(f.unshift(l.getElementById(g.shift())),f.unshift(l.getElementById(g.shift()))):g=p(g.shift()).concat(g);for(var y in f.unshift(l.getElementById(g.shift())),c)if(c[y].length)return h;return h.found=!0,h.trail=this.spawn(f,!0),h}},{hopcroftTarjanBiconnected:sr,htbc:sr,htb:sr,hopcroftTarjanBiconnectedComponents:sr},{tarjanStronglyConnected:lr,tsc:lr,tscc:lr,tarjanStronglyConnectedComponents:lr}].forEach((function(e){L(ur,e)})); +/*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + */ +var cr=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=0,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof t&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))};cr.prototype={fulfill:function(e){return dr(this,1,"fulfillValue",e)},reject:function(e){return dr(this,2,"rejectReason",e)},then:function(e,t){var n=new cr;return this.onFulfilled.push(fr(e,n,"fulfill")),this.onRejected.push(fr(t,n,"reject")),hr(this),n.proxy}};var dr=function(e,t,n,r){return 0===e.state&&(e.state=t,e[n]=r,hr(e)),e},hr=function(e){1===e.state?pr(e,"onFulfilled",e.fulfillValue):2===e.state&&pr(e,"onRejected",e.rejectReason)},pr=function(e,t,n){if(0!==e[t].length){var r=e[t];e[t]=[];var i=function(){for(var e=0;e0:void 0}},clearQueue:function(){return function(){var e=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return this;for(var t=0;t-1};var ri=function(e,t){var n=this.__data__,r=Qr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function ii(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e0&&this.spawn(n).updateStyle().emit("class"),this},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes.has(e)},toggleClass:function(e,t){m(e)||(e=e.match(/\S+/g)||[]);for(var n=void 0===t,r=[],i=0,a=this.length;i0&&this.spawn(r).updateStyle().emit("class"),this},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var n=this;if(null==t)t=250;else if(0===t)return n;return n.addClass(e),setTimeout((function(){n.removeClass(e)}),t),n}};qi.className=qi.classNames=qi.classes;var Yi={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:I,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Yi.variable="(?:[\\w-.]|(?:\\\\"+Yi.metaChar+"))+",Yi.className="(?:[\\w-]|(?:\\\\"+Yi.metaChar+"))+",Yi.value=Yi.string+"|"+Yi.number,Yi.id=Yi.variable,function(){var e,t,n;for(e=Yi.comparatorOp.split("|"),n=0;n=0||"="!==t&&(Yi.comparatorOp+="|\\!"+t)}();var Xi=0,Wi=1,Hi=2,Ki=3,Gi=4,Ui=5,Zi=6,$i=7,Qi=8,Ji=9,ea=10,ta=11,na=12,ra=13,ia=14,aa=15,oa=16,sa=17,la=18,ua=19,ca=20,da=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort((function(e,t){return function(e,t){return-1*A(e,t)}(e.selector,t.selector)})),ha=function(){for(var e,t={},n=0;n0&&l.edgeCount>0)return je("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(l.edgeCount>1)return je("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;1===l.edgeCount&&je("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},toString:function(){if(null!=this.toStringCache)return this.toStringCache;for(var e=function(e){return null==e?"":e},t=function(t){return v(t)?'"'+t+'"':e(t)},n=function(e){return" "+e+" "},r=function(r,a){var o=r.type,s=r.value;switch(o){case Xi:var l=e(s);return l.substring(0,l.length-1);case Ki:var u=r.field,c=r.operator;return"["+u+n(e(c))+t(s)+"]";case Ui:var d=r.operator,h=r.field;return"["+e(d)+h+"]";case Gi:return"["+r.field+"]";case Zi:var p=r.operator;return"[["+r.field+n(e(p))+t(s)+"]]";case $i:return s;case Qi:return"#"+s;case Ji:return"."+s;case sa:case aa:return i(r.parent,a)+n(">")+i(r.child,a);case la:case oa:return i(r.ancestor,a)+" "+i(r.descendant,a);case ua:var f=i(r.left,a),g=i(r.subject,a),v=i(r.right,a);return f+(f.length>0?" ":"")+g+v;case ca:return""}},i=function(e,t){return e.checks.reduce((function(n,i,a){return n+(t===e&&0===a?"$":"")+r(i,t)}),"")},a="",o=0;o1&&o=0&&(t=t.replace("!",""),c=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),u=!0),(o||l||u)&&(i=o||s?""+e:"",a=""+n),u&&(e=i=i.toLowerCase(),n=a=a.toLowerCase()),t){case"*=":r=i.indexOf(a)>=0;break;case"$=":r=i.indexOf(a,i.length-a.length)>=0;break;case"^=":r=0===i.indexOf(a);break;case"=":r=e===n;break;case">":d=!0,r=e>n;break;case">=":d=!0,r=e>=n;break;case"<":d=!0,r=e0;){var u=i.shift();t(u),a.add(u.id()),o&&r(i,a,u)}return e}function Ba(e,t,n){if(n.isParent())for(var r=n._private.children,i=0;i1&&void 0!==arguments[1])||arguments[1];return Ma(this,e,t,Ba)},_a.forEachUp=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Ma(this,e,t,Na)},_a.forEachUpAndDown=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Ma(this,e,t,za)},_a.ancestors=_a.parents,(Pa=Da={data:Fi.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Fi.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Fi.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Fi.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Fi.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Fi.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=Pa.data,Pa.removeAttr=Pa.removeData;var Ia,Aa,La=Da,Oa={};function Ra(e){return function(t){if(void 0===t&&(t=!0),0!==this.length&&this.isNode()&&!this.removed()){for(var n=0,r=this[0],i=r._private.edges,a=0;at})),minIndegree:Va("indegree",(function(e,t){return et})),minOutdegree:Va("outdegree",(function(e,t){return et}))}),L(Oa,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r0,c=u;u&&(l=l[0]);var d=c?l.position():{x:0,y:0};return i={x:s.x-d.x,y:s.y-d.y},void 0===e?i:i[e]}for(var h=0;h0,y=g;g&&(f=f[0]);var m=y?f.position():{x:0,y:0};void 0!==t?p.position(e,t+m[e]):void 0!==i&&p.position({x:i.x+m.x,y:i.y+m.y})}}else if(!a)return;return this}}).modelPosition=Ia.point=Ia.position,Ia.modelPositions=Ia.points=Ia.positions,Ia.renderedPoint=Ia.renderedPosition,Ia.relativePoint=Ia.relativePosition;var qa,Ya,Xa=Aa;qa=Ya={},Ya.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),i=n.pan(),a=t.x1*r+i.x,o=t.x2*r+i.x,s=t.y1*r+i.y,l=t.y2*r+i.y;return{x1:a,x2:o,y1:s,y2:l,w:o-a,h:l-s}},Ya.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();return t.styleEnabled()&&t.hasCompoundNodes()?(this.forEachUp((function(t){if(t.isParent()){var n=t._private;n.compoundBoundsClean=!1,n.bbCache=null,e||t.emitAndNotify("bounds")}})),this):this},Ya.updateCompoundBounds=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes())return this;if(!e&&t.batching())return this;function n(e){if(e.isParent()){var t=e._private,n=e.children(),r="include"===e.pstyle("compound-sizing-wrt-labels").value,i={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}},a=n.boundingBox({includeLabels:r,includeOverlays:!1,useCache:!1}),o=t.position;0!==a.w&&0!==a.h||((a={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue}).x1=o.x-a.w/2,a.x2=o.x+a.w/2,a.y1=o.y-a.h/2,a.y2=o.y+a.h/2);var s=i.width.left.value;"px"===i.width.left.units&&i.width.val>0&&(s=100*s/i.width.val);var l=i.width.right.value;"px"===i.width.right.units&&i.width.val>0&&(l=100*l/i.width.val);var u=i.height.top.value;"px"===i.height.top.units&&i.height.val>0&&(u=100*u/i.height.val);var c=i.height.bottom.value;"px"===i.height.bottom.units&&i.height.val>0&&(c=100*c/i.height.val);var d=y(i.width.val-a.w,s,l),h=d.biasDiff,p=d.biasComplementDiff,f=y(i.height.val-a.h,u,c),g=f.biasDiff,v=f.biasComplementDiff;t.autoPadding=function(e,t,n,r){if("%"!==n.units)return"px"===n.units?n.pfValue:0;switch(r){case"width":return e>0?n.pfValue*e:0;case"height":return t>0?n.pfValue*t:0;case"average":return e>0&&t>0?n.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?n.pfValue*t:n.pfValue*e:0;case"max":return e>0&&t>0?e>t?n.pfValue*e:n.pfValue*t:0;default:return 0}}(a.w,a.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value),t.autoWidth=Math.max(a.w,i.width.val),o.x=(-h+a.x1+a.x2+p)/2,t.autoHeight=Math.max(a.h,i.height.val),o.y=(-g+a.y1+a.y2+v)/2}function y(e,t,n){var r=0,i=0,a=t+n;return e>0&&a>0&&(r=t/a*e,i=n/a*e),{biasDiff:r,biasComplementDiff:i}}}for(var r=0;re.x2?r:e.x2,e.y1=ne.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},Ka=function(e,t){return null==t?e:Ha(e,t.x1,t.y1,t.x2,t.y2)},Ga=function(e,t,n){return Ue(e,t,n)},Ua=function(e,t,n){if(!t.cy().headless()){var r,i,a=t._private,o=a.rstyle,s=o.arrowWidth/2;if("none"!==t.pstyle(n+"-arrow-shape").value){"source"===n?(r=o.srcX,i=o.srcY):"target"===n?(r=o.tgtX,i=o.tgtY):(r=o.midX,i=o.midY);var l=a.arrowBounds=a.arrowBounds||{},u=l[n]=l[n]||{};u.x1=r-s,u.y1=i-s,u.x2=r+s,u.y2=i+s,u.w=u.x2-u.x1,u.h=u.y2-u.y1,Nt(u,1),Ha(e,u.x1,u.y1,u.x2,u.y2)}}},Za=function(e,t,n){if(!t.cy().headless()){var r;r=n?n+"-":"";var i=t._private,a=i.rstyle;if(t.pstyle(r+"label").strValue){var o,s,l,u,c=t.pstyle("text-halign"),d=t.pstyle("text-valign"),h=Ga(a,"labelWidth",n),p=Ga(a,"labelHeight",n),f=Ga(a,"labelX",n),g=Ga(a,"labelY",n),v=t.pstyle(r+"text-margin-x").pfValue,y=t.pstyle(r+"text-margin-y").pfValue,m=t.isEdge(),b=t.pstyle(r+"text-rotation"),x=t.pstyle("text-outline-width").pfValue,w=t.pstyle("text-border-width").pfValue/2,E=t.pstyle("text-background-padding").pfValue,k=p,C=h,S=C/2,P=k/2;if(m)o=f-S,s=f+S,l=g-P,u=g+P;else{switch(c.value){case"left":o=f-C,s=f;break;case"center":o=f-S,s=f+S;break;case"right":o=f,s=f+C}switch(d.value){case"top":l=g-k,u=g;break;case"center":l=g-P,u=g+P;break;case"bottom":l=g,u=g+k}}o+=v-Math.max(x,w)-E-2,s+=v+Math.max(x,w)+E+2,l+=y-Math.max(x,w)-E-2,u+=y+Math.max(x,w)+E+2;var D=n||"main",T=i.labelBounds,_=T[D]=T[D]||{};_.x1=o,_.y1=l,_.x2=s,_.y2=u,_.w=s-o,_.h=u-l;var M=m&&"autorotate"===b.strValue,B=null!=b.pfValue&&0!==b.pfValue;if(M||B){var N=M?Ga(i.rstyle,"labelAngle",n):b.pfValue,z=Math.cos(N),I=Math.sin(N),A=(o+s)/2,L=(l+u)/2;if(!m){switch(c.value){case"left":A=s;break;case"right":A=o}switch(d.value){case"top":L=u;break;case"bottom":L=l}}var O=function(e,t){return{x:(e-=A)*z-(t-=L)*I+A,y:e*I+t*z+L}},R=O(o,l),V=O(o,u),F=O(s,l),j=O(s,u);o=Math.min(R.x,V.x,F.x,j.x),s=Math.max(R.x,V.x,F.x,j.x),l=Math.min(R.y,V.y,F.y,j.y),u=Math.max(R.y,V.y,F.y,j.y)}var q=D+"Rot",Y=T[q]=T[q]||{};Y.x1=o,Y.y1=l,Y.x2=s,Y.y2=u,Y.w=s-o,Y.h=u-l,Ha(e,o,l,s,u),Ha(i.labelBounds.all,o,l,s,u)}return e}},$a=function(e,t){var n,r,i,a,o,s,l,u=e._private.cy,c=u.styleEnabled(),d=u.headless(),h=_t(),p=e._private,f=e.isNode(),g=e.isEdge(),v=p.rstyle,y=f&&c?e.pstyle("bounds-expansion").pfValue:[0],m=function(e){return"none"!==e.pstyle("display").value},b=!c||m(e)&&(!g||m(e.source())&&m(e.target()));if(b){var x=0;c&&t.includeOverlays&&0!==e.pstyle("overlay-opacity").value&&(x=e.pstyle("overlay-padding").value);var w=0;c&&t.includeUnderlays&&0!==e.pstyle("underlay-opacity").value&&(w=e.pstyle("underlay-padding").value);var E=Math.max(x,w),k=0;if(c&&(k=e.pstyle("width").pfValue/2),f&&t.includeNodes){var C=e.position();o=C.x,s=C.y;var S=e.outerWidth()/2,P=e.outerHeight()/2;Ha(h,n=o-S,i=s-P,r=o+S,a=s+P),c&&t.includeOutlines&&function(e,t){if(!t.cy().headless()){var n,r,i,a=t.pstyle("outline-opacity").value,o=t.pstyle("outline-width").value;if(a>0&&o>0){var s=t.pstyle("outline-offset").value,l=t.pstyle("shape").value,u=o+s,c=(e.w+2*u)/e.w,d=(e.h+2*u)/e.h,h=0;["diamond","pentagon","round-triangle"].includes(l)?(c=(e.w+2.4*u)/e.w,h=-u/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(l)?c=(e.w+2.4*u)/e.w:"star"===l?(c=(e.w+2.8*u)/e.w,d=(e.h+2.6*u)/e.h,h=-u/3.8):"triangle"===l?(c=(e.w+2.8*u)/e.w,d=(e.h+2.4*u)/e.h,h=-u/1.4):"vee"===l&&(c=(e.w+4.4*u)/e.w,d=(e.h+3.8*u)/e.h,h=.5*-u);var p=e.h*d-e.h,f=e.w*c-e.w;if(zt(e,[Math.ceil(p/2),Math.ceil(f/2)]),0!==h){var g=(r=0,i=h,{x1:(n=e).x1+r,x2:n.x2+r,y1:n.y1+i,y2:n.y2+i,w:n.w,h:n.h});Mt(e,g)}}}}(h,e)}else if(g&&t.includeEdges)if(c&&!d){var D=e.pstyle("curve-style").strValue;if(n=Math.min(v.srcX,v.midX,v.tgtX),r=Math.max(v.srcX,v.midX,v.tgtX),i=Math.min(v.srcY,v.midY,v.tgtY),a=Math.max(v.srcY,v.midY,v.tgtY),Ha(h,n-=k,i-=k,r+=k,a+=k),"haystack"===D){var T=v.haystackPts;if(T&&2===T.length){if(n=T[0].x,i=T[0].y,n>(r=T[1].x)){var _=n;n=r,r=_}if(i>(a=T[1].y)){var M=i;i=a,a=M}Ha(h,n-k,i-k,r+k,a+k)}}else if("bezier"===D||"unbundled-bezier"===D||D.endsWith("segments")||D.endsWith("taxi")){var B;switch(D){case"bezier":case"unbundled-bezier":B=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":B=v.linePts}if(null!=B)for(var N=0;N(r=A.x)){var L=n;n=r,r=L}if((i=I.y)>(a=A.y)){var O=i;i=a,a=O}Ha(h,n-=k,i-=k,r+=k,a+=k)}if(c&&t.includeEdges&&g&&(Ua(h,e,"mid-source"),Ua(h,e,"mid-target"),Ua(h,e,"source"),Ua(h,e,"target")),c)if("yes"===e.pstyle("ghost").value){var R=e.pstyle("ghost-offset-x").pfValue,V=e.pstyle("ghost-offset-y").pfValue;Ha(h,h.x1+R,h.y1+V,h.x2+R,h.y2+V)}var F=p.bodyBounds=p.bodyBounds||{};It(F,h),zt(F,y),Nt(F,1),c&&(n=h.x1,r=h.x2,i=h.y1,a=h.y2,Ha(h,n-E,i-E,r+E,a+E));var j=p.overlayBounds=p.overlayBounds||{};It(j,h),zt(j,y),Nt(j,1);var q=p.labelBounds=p.labelBounds||{};null!=q.all?((l=q.all).x1=1/0,l.y1=1/0,l.x2=-1/0,l.y2=-1/0,l.w=0,l.h=0):q.all=_t(),c&&t.includeLabels&&(t.includeMainLabels&&Za(h,e,null),g&&(t.includeSourceLabels&&Za(h,e,"source"),t.includeTargetLabels&&Za(h,e,"target")))}return h.x1=Wa(h.x1),h.y1=Wa(h.y1),h.x2=Wa(h.x2),h.y2=Wa(h.y2),h.w=Wa(h.x2-h.x1),h.h=Wa(h.y2-h.y1),h.w>0&&h.h>0&&b&&(zt(h,y),Nt(h,1)),h},Qa=function(e){var t=0,n=function(e){return(e?1:0)<0&&void 0!==arguments[0]?arguments[0]:bo,t=arguments.length>1?arguments[1]:void 0,n=0;n=0;s--)o(s);return this},wo.removeAllListeners=function(){return this.removeListener("*")},wo.emit=wo.trigger=function(e,t,n){var r=this.listeners,i=r.length;return this.emitting++,m(t)||(t=[t]),Co(this,(function(e,a){null!=n&&(r=[{event:a.event,type:a.type,namespace:a.namespace,callback:n}],i=r.length);for(var o=function(n){var i=r[n];if(i.type===a.type&&(!i.namespace||i.namespace===a.namespace||".*"===i.namespace)&&e.eventMatches(e.context,i,a)){var o=[a];null!=t&&function(e,t){for(var n=0;n1&&!r){var i=this.length-1,a=this[i],o=a._private.data.id;this[i]=void 0,this[e]=a,n.set(o,{ele:a,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map.get(n);if(!r)return this;var i=r.index;return this.unmergeAt(i),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&v(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=0;r=0;t--){e(this[t])&&this.unmergeAt(t)}return this},map:function(e,t){for(var n=[],r=0;rr&&(r=o,n=a)}return{value:r,ele:n}},min:function(e,t){for(var n,r=1/0,i=0;i=0&&i1&&void 0!==arguments[1])||arguments[1],n=this[0],r=n.cy();if(r.styleEnabled()&&n){this.cleanStyle();var i=n._private.style[e];return null!=i?i:t?r.style().getDefaultProperty(e):null}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var n=t.pstyle(e);return void 0!==n.pfValue?n.pfValue:n.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled())return t?t.pstyle(e).units:void 0},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];return n?t.style().getRenderedStyle(n,e):void 0},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=n.style();if(b(e)){var i=e;r.applyBypass(this,i,!1),this.emitAndNotify("style")}else if(v(e)){if(void 0===t){var a=this[0];return a?r.getStylePropertyValue(a,e):void 0}r.applyBypass(this,e,t,!1),this.emitAndNotify("style")}else if(void 0===e){var o=this[0];return o?r.getRawStyle(o):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=t.style();if(void 0===e)for(var r=0;r0&&t.push(c[0]),t.push(s[0])}return this.spawn(t,!0).filter(e)}),"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),Go.neighbourhood=Go.neighborhood,Go.closedNeighbourhood=Go.closedNeighborhood,Go.openNeighbourhood=Go.openNeighborhood,L(Go,{source:Ta((function(e){var t,n=this[0];return n&&(t=n._private.source||n.cy().collection()),t&&e?t.filter(e):t}),"source"),target:Ta((function(e){var t,n=this[0];return n&&(t=n._private.target||n.cy().collection()),t&&e?t.filter(e):t}),"target"),sources:Qo({attr:"source"}),targets:Qo({attr:"target"})}),L(Go,{edgesWith:Ta(Jo(),"edgesWith"),edgesTo:Ta(Jo({thisIsSrc:!0}),"edgesTo")}),L(Go,{connectedEdges:Ta((function(e){for(var t=[],n=0;n0);return a},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),Go.componentsOf=Go.components;var ts=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==e){var i=new $e,a=!1;if(t){if(t.length>0&&b(t[0])&&!k(t[0])){a=!0;for(var o=[],s=new Je,l=0,u=t.length;l0&&void 0!==arguments[0])||arguments[0],r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this,a=i.cy(),o=a._private,s=[],l=[],u=0,c=i.length;u0){for(var R=e.length===i.length?i:new ts(a,e),V=0;V0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this,r=[],i={},a=n._private.cy;function o(e){for(var t=e._private.edges,n=0;n0&&(e?D.emitAndNotify("remove"):t&&D.emit("remove"));for(var T=0;T1e-4&&Math.abs(s.v)>1e-4;);return a?function(e){return u[e*(u.length-1)|0]}:c}}(),as=function(e,t,n,r){var i=function(e,t,n,r){var i=4,a=.001,o=1e-7,s=10,l=11,u=1/(l-1),c="undefined"!=typeof Float32Array;if(4!==arguments.length)return!1;for(var d=0;d<4;++d)if("number"!=typeof arguments[d]||isNaN(arguments[d])||!isFinite(arguments[d]))return!1;e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0);var h=c?new Float32Array(l):new Array(l);function p(e,t){return 1-3*t+3*e}function f(e,t){return 3*t-6*e}function g(e){return 3*e}function v(e,t,n){return((p(t,n)*e+f(t,n))*e+g(t))*e}function y(e,t,n){return 3*p(t,n)*e*e+2*f(t,n)*e+g(t)}function m(t,r){for(var a=0;a0?i=l:r=l}while(Math.abs(a)>o&&++u=a?m(t,s):0===c?s:x(t,r,r+u)}var E=!1;function k(){E=!0,e===t&&n===r||b()}var C=function(i){return E||k(),e===t&&n===r?i:0===i?0:1===i?1:v(w(i),t,r)};C.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var S="generateBezier("+[e,t,n,r]+")";return C.toString=function(){return S},C}(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},os={linear:function(e,t,n){return e+(t-e)*n},ease:as(.25,.1,.25,1),"ease-in":as(.42,0,1,1),"ease-out":as(0,0,.58,1),"ease-in-out":as(.42,0,.58,1),"ease-in-sine":as(.47,0,.745,.715),"ease-out-sine":as(.39,.575,.565,1),"ease-in-out-sine":as(.445,.05,.55,.95),"ease-in-quad":as(.55,.085,.68,.53),"ease-out-quad":as(.25,.46,.45,.94),"ease-in-out-quad":as(.455,.03,.515,.955),"ease-in-cubic":as(.55,.055,.675,.19),"ease-out-cubic":as(.215,.61,.355,1),"ease-in-out-cubic":as(.645,.045,.355,1),"ease-in-quart":as(.895,.03,.685,.22),"ease-out-quart":as(.165,.84,.44,1),"ease-in-out-quart":as(.77,0,.175,1),"ease-in-quint":as(.755,.05,.855,.06),"ease-out-quint":as(.23,1,.32,1),"ease-in-out-quint":as(.86,0,.07,1),"ease-in-expo":as(.95,.05,.795,.035),"ease-out-expo":as(.19,1,.22,1),"ease-in-out-expo":as(1,0,0,1),"ease-in-circ":as(.6,.04,.98,.335),"ease-out-circ":as(.075,.82,.165,1),"ease-in-out-circ":as(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return os.linear;var r=is(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":as};function ss(e,t,n,r,i){if(1===r)return n;if(t===n)return n;var a=i(t,n,r);return null==e||((e.roundValue||e.color)&&(a=Math.round(a)),void 0!==e.min&&(a=Math.max(a,e.min)),void 0!==e.max&&(a=Math.min(a,e.max))),a}function ls(e,t){return null!=e.pfValue||null!=e.value?null==e.pfValue||null!=t&&"%"===t.type.units?e.value:e.pfValue:e}function us(e,t,n,r,i){var a=null!=i?i.type:null;n<0?n=0:n>1&&(n=1);var o=ls(e,i),s=ls(t,i);if(x(o)&&x(s))return ss(a,o,s,n,r);if(m(o)&&m(s)){for(var l=[],u=0;u0?("spring"===d&&h.push(o.duration),o.easingImpl=os[d].apply(null,h)):o.easingImpl=os[d]}var p,f=o.easingImpl;if(p=0===o.duration?1:(n-l)/o.duration,o.applying&&(p=o.progress),p<0?p=0:p>1&&(p=1),null==o.delay){var g=o.startPosition,y=o.position;if(y&&i&&!e.locked()){var m={};ds(g.x,y.x)&&(m.x=us(g.x,y.x,p,f)),ds(g.y,y.y)&&(m.y=us(g.y,y.y,p,f)),e.position(m)}var b=o.startPan,x=o.pan,w=a.pan,E=null!=x&&r;E&&(ds(b.x,x.x)&&(w.x=us(b.x,x.x,p,f)),ds(b.y,x.y)&&(w.y=us(b.y,x.y,p,f)),e.emit("pan"));var k=o.startZoom,C=o.zoom,S=null!=C&&r;S&&(ds(k,C)&&(a.zoom=Tt(a.minZoom,us(k,C,p,f),a.maxZoom)),e.emit("zoom")),(E||S)&&e.emit("viewport");var P=o.style;if(P&&P.length>0&&i){for(var D=0;D=0;t--){(0,e[t])()}e.splice(0,e.length)},c=a.length-1;c>=0;c--){var d=a[c],h=d._private;h.stopped?(a.splice(c,1),h.hooked=!1,h.playing=!1,h.started=!1,u(h.frames)):(h.playing||h.applying)&&(h.playing&&h.applying&&(h.applying=!1),h.started||hs(0,d,e),cs(t,d,e,n),h.applying&&(h.applying=!1),u(h.frames),null!=h.step&&h.step(e),d.completed()&&(a.splice(c,1),h.hooked=!1,h.playing=!1,h.started=!1,u(h.completes)),s=!0)}return n||0!==a.length||0!==o.length||r.push(t),s}for(var a=!1,o=0;o0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}var fs={animate:Fi.animate(),animation:Fi.animation(),animated:Fi.animated(),clearQueue:Fi.clearQueue(),delay:Fi.delay(),delayAnimation:Fi.delayAnimation(),stop:Fi.stop(),addToAnimationPool:function(e){this.styleEnabled()&&this._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,e.styleEnabled()){var t=e.renderer();t&&t.beforeRender?t.beforeRender((function(t,n){ps(n,e)}),t.beforeRenderPriorities.animations):function t(){e._private.animationsRunning&&xe((function(n){ps(n,e),t()}))}()}}},gs={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&k(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},vs=function(e){return v(e)?new ka(e):e},ys={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new xo(gs,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,vs(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,vs(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,vs(t),n),this},once:function(e,t,n){return this.emitter().one(e,vs(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};Fi.eventAliasesOn(ys);var ms={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};ms.jpeg=ms.jpg;var bs={layout:function(e){if(null!=e)if(null!=e.name){var t=e.name,n=this.extension("layout",t);if(null!=n){var r;r=v(e.eles)?this.$(e.eles):null!=e.eles?e.eles:this.$();var i=new n(L({},e,{cy:this,eles:r}));return i}Ve("No such layout `"+t+"` found. Did you forget to import it and `cytoscape.use()` it?")}else Ve("A `name` must be specified to make a layout");else Ve("Layout options must be specified to make a layout")}};bs.createLayout=bs.makeLayout=bs.layout;var xs={notify:function(e,t){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var r=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();null!=t&&r.merge(t)}else if(n.notificationsEnabled){var i=this.renderer();!this.destroyed()&&i&&i.notify(e,t)}},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(0===e.batchCount)return this;if(e.batchCount--,0===e.batchCount){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach((function(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)}))}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch((function(){for(var n=Object.keys(e),r=0;r0;)e.removeChild(e.childNodes[0]);this._private.renderer=null,this.mutableElements().forEach((function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]}))},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};Es.invalidateDimensions=Es.resize;var ks={collection:function(e,t){return v(e)?this.$(e):E(e)?e.collection():m(e)?(t||(t={}),new ts(this,e,t.unique,t.removed)):new ts(this)},nodes:function(e){var t=this.$((function(e){return e.isNode()}));return e?t.filter(e):t},edges:function(e){var t=this.$((function(e){return e.isEdge()}));return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};ks.elements=ks.filter=ks.$;var Cs={};Cs.apply=function(e){for(var t=this._private.cy.collection(),n=0;n0;if(d||c&&h){var p=void 0;d&&h||d?p=l.properties:h&&(p=l.mappedProperties);for(var f=0;f1&&(g=1),s.color){var w=i.valueMin[0],E=i.valueMax[0],k=i.valueMin[1],C=i.valueMax[1],S=i.valueMin[2],P=i.valueMax[2],D=null==i.valueMin[3]?1:i.valueMin[3],T=null==i.valueMax[3]?1:i.valueMax[3],_=[Math.round(w+(E-w)*g),Math.round(k+(C-k)*g),Math.round(S+(P-S)*g),Math.round(D+(T-D)*g)];n={bypass:i.bypass,name:i.name,value:_,strValue:"rgb("+_[0]+", "+_[1]+", "+_[2]+")"}}else{if(!s.number)return!1;var M=i.valueMin+(i.valueMax-i.valueMin)*g;n=this.parse(i.name,M,i.bypass,"mapping")}if(!n)return f(),!1;n.mapping=i,i=n;break;case o.data:for(var B=i.field.split("."),N=d.data,z=0;z0&&a>0){for(var s={},l=!1,u=0;u0?e.delayAnimation(o).play().promise().then(t):t()})).then((function(){return e.animation({style:s,duration:a,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()})).then((function(){n.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1}))}else r.transitioning&&(this.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1)},Cs.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);null!=s&&s(n,r)&&a(o)},Cs.checkZOrderTrigger=function(e,t,n,r){var i=this;this.checkTrigger(e,t,n,r,(function(e){return e.triggersZOrder}),(function(){i._private.cy.notify("zorder",e)}))},Cs.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,(function(e){return e.triggersBounds}),(function(i){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),!i.triggersBoundsOfParallelBeziers||"curve-style"!==t||"bezier"!==n&&"bezier"!==r||e.parallelEdges().forEach((function(e){e.isBundledBezier()&&e.dirtyBoundingBoxCache()})),!i.triggersBoundsOfConnectedEdges||"display"!==t||"none"!==n&&"none"!==r||e.connectedEdges().forEach((function(e){e.dirtyBoundingBoxCache()}))}))},Cs.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r)};var Ss={applyBypass:function(e,t,n,r){var i=[];if("*"===t||"**"===t){if(void 0!==n)for(var a=0;at.length?i.substr(t.length):""}function o(){n=n.length>r.length?n.substr(r.length):""}for(i=i.replace(/[/][*](\s|.)+?[*][/]/g,"");;){if(i.match(/^\s*$/))break;var s=i.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!s){je("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+i);break}t=s[0];var l=s[1];if("core"!==l)if(new ka(l).invalid){je("Skipping parsing of block: Invalid selector found in string stylesheet: "+l),a();continue}var u=s[2],c=!1;n=u;for(var d=[];;){if(n.match(/^\s*$/))break;var h=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!h){je("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+u),c=!0;break}r=h[0];var p=h[1],f=h[2];if(this.properties[p])this.parse(p,f)?(d.push({name:p,val:f}),o()):(je("Skipping property: Invalid property definition in: "+r),o());else je("Skipping property: Invalid property name in: "+r),o()}if(c){a();break}this.selector(l);for(var g=0;g=7&&"d"===t[0]&&(l=new RegExp(o.data.regex).exec(t))){if(n)return!1;var d=o.data;return{name:e,value:l,strValue:""+t,mapped:d,field:l[1],bypass:n}}if(t.length>=10&&"m"===t[0]&&(u=new RegExp(o.mapData.regex).exec(t))){if(n)return!1;if(c.multiple)return!1;var h=o.mapData;if(!c.color&&!c.number)return!1;var p=this.parse(e,u[4]);if(!p||p.mapped)return!1;var f=this.parse(e,u[5]);if(!f||f.mapped)return!1;if(p.pfValue===f.pfValue||p.strValue===f.strValue)return je("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+p.strValue+"`"),this.parse(e,p.strValue);if(c.color){var g=p.value,b=f.value;if(!(g[0]!==b[0]||g[1]!==b[1]||g[2]!==b[2]||g[3]!==b[3]&&(null!=g[3]&&1!==g[3]||null!=b[3]&&1!==b[3])))return!1}return{name:e,value:u,strValue:""+t,mapped:h,field:u[1],fieldMin:parseFloat(u[2]),fieldMax:parseFloat(u[3]),valueMin:p.value,valueMax:f.value,bypass:n}}}if(c.multiple&&"multiple"!==r){var w;if(w=s?t.split(/\s+/):m(t)?t:[t],c.evenMultiple&&w.length%2!=0)return null;for(var E=[],k=[],C=[],S="",P=!1,D=0;D0?" ":"")+T.strValue}return c.validate&&!c.validate(E,k)?null:c.singleEnum&&P?1===E.length&&v(E[0])?{name:e,value:E[0],strValue:E[0],bypass:n}:null:{name:e,value:E,pfValue:C,strValue:S,bypass:n,units:k}}var _,B,N=function(){for(var r=0;rc.max||c.strictMax&&t===c.max))return null;var V={name:e,value:t,strValue:""+t+(z||""),units:z,bypass:n};return c.unitless||"px"!==z&&"em"!==z?V.pfValue=t:V.pfValue="px"!==z&&z?this.getEmSizeInPixels()*t:t,"ms"!==z&&"s"!==z||(V.pfValue="ms"===z?t:1e3*t),"deg"!==z&&"rad"!==z||(V.pfValue="rad"===z?t:(_=t,Math.PI*_/180)),"%"===z&&(V.pfValue=t/100),V}if(c.propList){var F=[],j=""+t;if("none"===j);else{for(var q=j.split(/\s*,\s*|\s+/),Y=0;Y0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0)return{zoom:o=(o=(o=Math.min((s-2*t)/n.w,(l-2*t)/n.h))>this._private.maxZoom?this._private.maxZoom:o)=n.minZoom&&(n.maxZoom=t),this},minZoom:function(e){return void 0===e?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return void 0===e?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t,n,r=this._private,i=r.pan,a=r.zoom,o=!1;if(r.zoomingEnabled||(o=!0),x(e)?n=e:b(e)&&(n=e.level,null!=e.position?t=yt(e.position,a,i):null!=e.renderedPosition&&(t=e.renderedPosition),null==t||r.panningEnabled||(o=!0)),n=(n=n>r.maxZoom?r.maxZoom:n)t.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=s,i.push("zoom"))}if(r&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;x(l.x)&&(t.pan.x=l.x,o=!1),x(l.y)&&(t.pan.y=l.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(v(e)){var n=e;e=this.mutableElements().filter(n)}else E(e)||(e=this.mutableElements());if(0!==e.length){var r=e.boundingBox(),i=this.width(),a=this.height();return{x:(i-(t=void 0===t?this._private.zoom:t)*(r.x1+r.x2))/2,y:(a-t*(r.y1+r.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container,i=this;return n.sizeCache=n.sizeCache||(r?(e=i.window().getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){return e?(this._private.multiClickDebounceTime=e,this):this._private.multiClickDebounceTime}};As.centre=As.center,As.autolockNodes=As.autolock,As.autoungrabifyNodes=As.autoungrabify;var Ls={data:Fi.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Fi.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Fi.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Fi.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Ls.attr=Ls.data,Ls.removeAttr=Ls.removeData;var Os=function(e){var t=this,n=(e=L({},e)).container;n&&!w(n)&&w(n[0])&&(n=n[0]);var r=n?n._cyreg:null;(r=r||{})&&r.cy&&(r.cy.destroy(),r={});var i=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var a=void 0!==u&&void 0!==n&&!e.headless,o=e;o.layout=L({name:a?"grid":"null"},o.layout),o.renderer=L({name:a?"canvas":"null"},o.renderer);var s=function(e,t,n){return void 0!==t?t:void 0!==n?n:e},l=this._private={container:n,ready:!1,options:o,elements:new ts(this),listeners:[],aniEles:new ts(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?a:o.styleEnabled,zoom:x(o.zoom)?o.zoom:1,pan:{x:b(o.pan)&&x(o.pan.x)?o.pan.x:0,y:b(o.pan)&&x(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});l.styleEnabled&&t.setStyle([]);var c=L({},o,o.renderer);t.initRenderer(c);!function(e,t){if(e.some(T))return vr.all(e).then(t);t(e)}([o.style,o.elements],(function(e){var n=e[0],a=e[1];l.styleEnabled&&t.style().append(n),function(e,n,r){t.notifications(!1);var i=t.mutableElements();i.length>0&&i.remove(),null!=e&&(b(e)||m(e))&&t.add(e),t.one("layoutready",(function(e){t.notifications(!0),t.emit(e),t.one("load",n),t.emitAndNotify("load")})).one("layoutstop",(function(){t.one("done",r),t.emit("done")}));var a=L({},t._private.options.layout);a.eles=t.elements(),t.layout(a).run()}(a,(function(){t.startAnimationLoop(),l.ready=!0,y(o.ready)&&t.on("ready",o.ready);for(var e=0;e0,u=_t(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(E(n.roots))e=n.roots;else if(m(n.roots)){for(var c=[],d=0;d0;){var N=_.shift(),z=T(N,M);if(z)N.outgoers().filter((function(e){return e.isNode()&&i.has(e)})).forEach(B);else if(null===z){je("Detected double maximal shift for node `"+N.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}D();var I=0;if(n.avoidOverlap)for(var L=0;L0&&b[0].length<=3?l/2:0),d=2*Math.PI/b[r].length*i;return 0===r&&1===b[0].length&&(c=1),{x:G+c*Math.cos(d),y:U+c*Math.sin(d)}}return{x:G+(i+1-(a+1)/2)*o,y:(r+1)*s}})),this};var Xs={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Ws(e){this.options=L({},Xs,e)}Ws.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,a=r.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));for(var o,s=_t(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l=s.x1+s.w/2,u=s.y1+s.h/2,c=(void 0===t.sweep?2*Math.PI-2*Math.PI/a.length:t.sweep)/Math.max(1,a.length-1),d=0,h=0;h1&&t.avoidOverlap){d*=1.75;var v=Math.cos(c)-Math.cos(0),y=Math.sin(c)-Math.sin(0),m=Math.sqrt(d*d/(v*v+y*y));o=Math.max(m,o)}return r.nodes().layoutPositions(this,t,(function(e,n){var r=t.startAngle+n*c*(i?1:-1),a=o*Math.cos(r),s=o*Math.sin(r);return{x:l+a,y:u+s}})),this};var Hs,Ks={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Gs(e){this.options=L({},Ks,e)}Gs.prototype.run=function(){for(var e=this.options,t=e,n=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,r=e.cy,i=t.eles,a=i.nodes().not(":parent"),o=_t(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),s=o.x1+o.w/2,l=o.y1+o.h/2,u=[],c=0,d=0;d0)Math.abs(m[0].value-x.value)>=v&&(m=[],y.push(m));m.push(x)}var w=c+t.minNodeSpacing;if(!t.avoidOverlap){var E=y.length>0&&y[0].length>1,k=(Math.min(o.w,o.h)/2-w)/(y.length+E?1:0);w=Math.min(w,k)}for(var C=0,S=0;S1&&t.avoidOverlap){var _=Math.cos(T)-Math.cos(0),M=Math.sin(T)-Math.sin(0),B=Math.sqrt(w*w/(_*_+M*M));C=Math.max(B,C)}P.r=C,C+=w}if(t.equidistant){for(var N=0,z=0,I=0;I=e.numIter)&&(rl(r,e),r.temperature=r.temperature*e.coolingFactor,!(r.temperature=e.animationThreshold&&a(),xe(t)):(gl(r,e),s())}()}else{for(;u;)u=o(l),l++;gl(r,e),s()}return this},Zs.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},Zs.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var $s=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),a=_t(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},s=n.eles.components(),l={},u=0;u0){o.graphSet.push(E);for(u=0;ur.count?0:r.graph},Js=function e(t,n,r,i){var a=i.graphSet[r];if(-10)var s=(u=r.nodeOverlap*o)*i/(g=Math.sqrt(i*i+a*a)),l=u*a/g;else{var u,c=ll(e,i,a),d=ll(t,-1*i,-1*a),h=d.x-c.x,p=d.y-c.y,f=h*h+p*p,g=Math.sqrt(f);s=(u=(e.nodeRepulsion+t.nodeRepulsion)/f)*h/g,l=u*p/g}e.isLocked||(e.offsetX-=s,e.offsetY-=l),t.isLocked||(t.offsetX+=s,t.offsetY+=l)}},sl=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else i=t.maxX-e.minX;if(r>0)var a=e.maxY-t.minY;else a=t.maxY-e.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},ll=function(e,t,n){var r=e.positionX,i=e.positionY,a=e.height||1,o=e.width||1,s=n/t,l=a/o,u={};return 0===t&&0n?(u.x=r,u.y=i+a/2,u):0t&&-1*l<=s&&s<=l?(u.x=r-o/2,u.y=i-o*n/2/t,u):0=l)?(u.x=r+a*t/2/n,u.y=i+a/2,u):0>n&&(s<=-1*l||s>=l)?(u.x=r-a*t/2/n,u.y=i-a/2,u):u},ul=function(e,t){for(var n=0;n1){var f=t.gravity*d/p,g=t.gravity*h/p;c.offsetX+=f,c.offsetY+=g}}}}},dl=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var a=n[r++],o=e.idToIndex[a],s=e.layoutNodes[o],l=s.children;if(0n)var i={x:n*e/r,y:n*t/r};else i={x:e,y:t};return i},fl=function e(t,n){var r=t.parentId;if(null!=r){var i=n.layoutNodes[n.idToIndex[r]],a=!1;return(null==i.maxX||t.maxX+i.padRight>i.maxX)&&(i.maxX=t.maxX+i.padRight,a=!0),(null==i.minX||t.minX-i.padLefti.maxY)&&(i.maxY=t.maxY+i.padBottom,a=!0),(null==i.minY||t.minY-i.padTopf&&(d+=p+t.componentSpacing,c=0,h=0,p=0)}}},vl={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function yl(e){this.options=L({},vl,e)}yl.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=r.nodes().not(":parent");t.sort&&(i=i.sort(t.sort));var a=_t(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(0===a.h||0===a.w)r.nodes().layoutPositions(this,t,(function(e){return{x:a.x1,y:a.y1}}));else{var o=i.size(),s=Math.sqrt(o*a.h/a.w),l=Math.round(s),u=Math.round(a.w/a.h*s),c=function(e){if(null==e)return Math.min(l,u);Math.min(l,u)==l?l=e:u=e},d=function(e){if(null==e)return Math.max(l,u);Math.max(l,u)==l?l=e:u=e},h=t.rows,p=null!=t.cols?t.cols:t.columns;if(null!=h&&null!=p)l=h,u=p;else if(null!=h&&null==p)l=h,u=Math.ceil(o/l);else if(null==h&&null!=p)u=p,l=Math.ceil(o/u);else if(u*l>o){var f=c(),g=d();(f-1)*g>=o?c(f-1):(g-1)*f>=o&&d(g-1)}else for(;u*l=o?d(y+1):c(v+1)}var m=a.w/u,b=a.h/l;if(t.condense&&(m=0,b=0),t.avoidOverlap)for(var x=0;x=u&&(B=0,M++)},z={},I=0;I(r=qt(e,t,x[w],x[w+1],x[w+2],x[w+3])))return v(n,r),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType)for(x=a.allpts,w=0;w+5(r=jt(e,t,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5])))return v(n,r),!0;m=m||i.source,b=b||i.target;var E=o.getArrowWidth(l,c),k=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}];for(w=0;w0&&(y(m),y(b))}function b(e,t,n){return Ue(e,t,n)}function x(n,r){var i,a=n._private,o=f;i=r?r+"-":"",n.boundingBox();var s=a.labelBounds[r||"main"],l=n.pstyle(i+"label").value;if("yes"===n.pstyle("text-events").strValue&&l){var u=b(a.rscratch,"labelX",r),c=b(a.rscratch,"labelY",r),d=b(a.rscratch,"labelAngle",r),h=n.pstyle(i+"text-margin-x").pfValue,p=n.pstyle(i+"text-margin-y").pfValue,g=s.x1-o-h,y=s.x2+o-h,m=s.y1-o-p,x=s.y2+o-p;if(d){var w=Math.cos(d),E=Math.sin(d),k=function(e,t){return{x:(e-=u)*w-(t-=c)*E+u,y:e*E+t*w+c}},C=k(g,m),S=k(g,x),P=k(y,m),D=k(y,x),T=[C.x+h,C.y+p,P.x+h,P.y+p,D.x+h,D.y+p,S.x+h,S.y+p];if(Yt(e,t,T))return v(n),!0}else if(Lt(s,e,t))return v(n),!0}}n&&(l=l.interactive);for(var w=l.length-1;w>=0;w--){var E=l[w];E.isNode()?y(E)||x(E):m(E)||x(E)||x(E,"source")||x(E,"target")}return u},getAllInBox:function(e,t,n,r){for(var i,a,o=this.getCachedZSortedEles().interactive,s=[],l=Math.min(e,n),u=Math.max(e,n),c=Math.min(t,r),d=Math.max(t,r),h=_t({x1:e=l,y1:t=c,x2:n=u,y2:r=d}),p=0;p0?-(Math.PI-a.ang):Math.PI+a.ang),Zl(t,n,Ul),zl=Gl.nx*Ul.ny-Gl.ny*Ul.nx,Il=Gl.nx*Ul.nx-Gl.ny*-Ul.ny,Ol=Math.asin(Math.max(-1,Math.min(1,zl))),Math.abs(Ol)<1e-6)return Bl=t.x,Nl=t.y,void(Vl=jl=0);Al=1,Ll=!1,Il<0?Ol<0?Ol=Math.PI+Ol:(Ol=Math.PI-Ol,Al=-1,Ll=!0):Ol>0&&(Al=-1,Ll=!0),jl=void 0!==t.radius?t.radius:r,Rl=Ol/2,ql=Math.min(Gl.len/2,Ul.len/2),i?(Fl=Math.abs(Math.cos(Rl)*jl/Math.sin(Rl)))>ql?(Fl=ql,Vl=Math.abs(Fl*Math.sin(Rl)/Math.cos(Rl))):Vl=jl:(Fl=Math.min(ql,jl),Vl=Math.abs(Fl*Math.sin(Rl)/Math.cos(Rl))),Wl=t.x+Ul.nx*Fl,Hl=t.y+Ul.ny*Fl,Bl=Wl-Ul.ny*Vl*Al,Nl=Hl+Ul.nx*Vl*Al,Yl=t.x+Gl.nx*Fl,Xl=t.y+Gl.ny*Fl,Kl=t};function Ql(e,t){0===t.radius?e.lineTo(t.cx,t.cy):e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function Jl(e,t,n,r){var i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];return 0===r||0===t.radius?{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:($l(e,t,n,r,i),{cx:Bl,cy:Nl,radius:Vl,startX:Yl,startY:Xl,stopX:Wl,stopY:Hl,startAngle:Gl.ang+Math.PI/2*Al,endAngle:Ul.ang-Math.PI/2*Al,counterClockwise:Ll})}var eu={};function tu(e){var t=[];if(null!=e){for(var n=0;n0?Math.max(e-t,0):Math.min(e+t,0)},w=x(m,v),E=x(b,y),k=!1;"auto"===c?u=Math.abs(w)>Math.abs(E)?"horizontal":"vertical":"upward"===c||"downward"===c?(u="vertical",k=!0):"leftward"!==c&&"rightward"!==c||(u="horizontal",k=!0);var C,S="vertical"===u,P=S?E:w,D=S?b:m,T=Et(D),_=!1;(k&&(h||f)||!("downward"===c&&D<0||"upward"===c&&D>0||"leftward"===c&&D>0||"rightward"===c&&D<0)||(P=(T*=-1)*Math.abs(P),_=!0),h)?C=(p<0?1+p:p)*P:C=(p<0?P:0)+p*T;var M=function(e){return Math.abs(e)=Math.abs(P)},B=M(C),N=M(Math.abs(P)-Math.abs(C));if((B||N)&&!_)if(S){var z=Math.abs(D)<=a/2,I=Math.abs(m)<=o/2;if(z){var A=(r.x1+r.x2)/2,L=r.y1,O=r.y2;n.segpts=[A,L,A,O]}else if(I){var R=(r.y1+r.y2)/2,V=r.x1,F=r.x2;n.segpts=[V,R,F,R]}else n.segpts=[r.x1,r.y2]}else{var j=Math.abs(D)<=i/2,q=Math.abs(b)<=s/2;if(j){var Y=(r.y1+r.y2)/2,X=r.x1,W=r.x2;n.segpts=[X,Y,W,Y]}else if(q){var H=(r.x1+r.x2)/2,K=r.y1,G=r.y2;n.segpts=[H,K,H,G]}else n.segpts=[r.x2,r.y1]}else if(S){var U=r.y1+C+(l?a/2*T:0),Z=r.x1,$=r.x2;n.segpts=[Z,U,$,U]}else{var Q=r.x1+C+(l?i/2*T:0),J=r.y1,ee=r.y2;n.segpts=[Q,J,Q,ee]}if(n.isRound){var te=e.pstyle("taxi-radius").value,ne="arc-radius"===e.pstyle("radius-type").value[0];n.radii=new Array(n.segpts.length/2).fill(te),n.isArcRadius=new Array(n.segpts.length/2).fill(ne)}},eu.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if("bezier"===n.edgeType){var r=t.srcPos,i=t.tgtPos,a=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,c=t.tgtShape,d=t.srcCornerRadius,h=t.tgtCornerRadius,p=t.srcRs,f=t.tgtRs,g=!x(n.startX)||!x(n.startY),v=!x(n.arrowStartX)||!x(n.arrowStartY),y=!x(n.endX)||!x(n.endY),m=!x(n.arrowEndX)||!x(n.arrowEndY),b=3*(this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth),w=kt({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),E=wh.poolIndex()){var p=d;d=h,h=p}var f=s.srcPos=d.position(),g=s.tgtPos=h.position(),v=s.srcW=d.outerWidth(),y=s.srcH=d.outerHeight(),m=s.tgtW=h.outerWidth(),b=s.tgtH=h.outerHeight(),w=s.srcShape=n.nodeShapes[t.getNodeShape(d)],E=s.tgtShape=n.nodeShapes[t.getNodeShape(h)],k=s.srcCornerRadius="auto"===d.pstyle("corner-radius").value?"auto":d.pstyle("corner-radius").pfValue,C=s.tgtCornerRadius="auto"===h.pstyle("corner-radius").value?"auto":h.pstyle("corner-radius").pfValue,S=s.tgtRs=h._private.rscratch,P=s.srcRs=d._private.rscratch;s.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var D=0;D0){var H=u,K=Ct(H,bt(t)),G=Ct(H,bt(W)),U=K;if(G2)Ct(H,{x:W[2],y:W[3]})0){var le=c,ue=Ct(le,bt(t)),ce=Ct(le,bt(se)),de=ue;if(ce2)Ct(le,{x:se[2],y:se[3]})=c||b){d={cp:v,segment:m};break}}if(d)break}var x=d.cp,w=d.segment,E=(c-p)/w.length,k=w.t1-w.t0,C=u?w.t0+k*E:w.t1-k*E;C=Tt(0,C,1),t=Dt(x.p0,x.p1,x.p2,C),l=function(e,t,n,r){var i=Tt(0,r-.001,1),a=Tt(0,r+.001,1),o=Dt(e,t,n,i),s=Dt(e,t,n,a);return su(o,s)}(x.p0,x.p1,x.p2,C);break;case"straight":case"segments":case"haystack":for(var S,P,D,T,_=0,M=r.allpts.length,B=0;B+3=c));B+=2);var N=(c-P)/S;N=Tt(0,N,1),t=function(e,t,n,r){var i=t.x-e.x,a=t.y-e.y,o=kt(e,t),s=i/o,l=a/o;return n=null==n?0:n,r=null!=r?r:n*o,{x:e.x+s*r,y:e.y+l*r}}(D,T,N),l=su(D,T)}o("labelX",s,t.x),o("labelY",s,t.y),o("labelAutoAngle",s,l)}};l("source"),l("target"),this.applyLabelDimensions(e)}},au.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},au.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),i=this.calculateLabelDimensions(e,r),a=e.pstyle("line-height").pfValue,o=e.pstyle("text-wrap").strValue,s=Ue(n.rscratch,"labelWrapCachedLines",t)||[],l="wrap"!==o?1:Math.max(s.length,1),u=i.height/l,c=u*a,d=i.width,h=i.height+(l-1)*(a-1)*u;Ze(n.rstyle,"labelWidth",t,d),Ze(n.rscratch,"labelWidth",t,d),Ze(n.rstyle,"labelHeight",t,h),Ze(n.rscratch,"labelHeight",t,h),Ze(n.rscratch,"labelLineHeight",t,c)},au.getLabelText=function(e,t){var n=e._private,r=t?t+"-":"",i=e.pstyle(r+"label").strValue,a=e.pstyle("text-transform").value,o=function(e,r){return r?(Ze(n.rscratch,e,t,r),r):Ue(n.rscratch,e,t)};if(!i)return"";"none"==a||("uppercase"==a?i=i.toUpperCase():"lowercase"==a&&(i=i.toLowerCase()));var s=e.pstyle("text-wrap").value;if("wrap"===s){var u=o("labelKey");if(null!=u&&o("labelWrapKey")===u)return o("labelWrapCachedText");for(var c=i.split("\n"),d=e.pstyle("text-max-width").pfValue,h="anywhere"===e.pstyle("text-overflow-wrap").value,p=[],f=/[\s\u200b]+|$/g,g=0;gd){var b,x="",w=0,E=l(v.matchAll(f));try{for(E.s();!(b=E.n()).done;){var k=b.value,C=k[0],S=v.substring(w,k.index);w=k.index+C.length;var P=0===x.length?S:x+S+C;this.calculateLabelDimensions(e,P).width<=d?x+=S+C:(x&&p.push(x),x=S+C)}}catch(e){E.e(e)}finally{E.f()}x.match(/^[\s\u200b]+$/)||p.push(x)}else p.push(v)}o("labelWrapCachedLines",p),i=o("labelWrapCachedText",p.join("\n")),o("labelWrapKey",u)}else if("ellipsis"===s){var D=e.pstyle("text-max-width").pfValue,T="",_=!1;if(this.calculateLabelDimensions(e,i).widthD)break;T+=i[M],M===i.length-1&&(_=!0)}return _||(T+="…"),T}return i},au.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,n=e.pstyle("text-halign").strValue;if("auto"!==t)return t;if(!e.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},au.calculateLabelDimensions=function(e,t){var n=this,r=n.cy.window().document,i=Te(t,e._private.labelDimsKey),a=n.labelDimCache||(n.labelDimCache=[]),o=a[i];if(null!=o)return o;var s=e.pstyle("font-style").strValue,l=e.pstyle("font-size").pfValue,u=e.pstyle("font-family").strValue,c=e.pstyle("font-weight").strValue,d=this.labelCalcCanvas,h=this.labelCalcCanvasContext;if(!d){d=this.labelCalcCanvas=r.createElement("canvas"),h=this.labelCalcCanvasContext=d.getContext("2d");var p=d.style;p.position="absolute",p.left="-9999px",p.top="-9999px",p.zIndex="-1",p.visibility="hidden",p.pointerEvents="none"}h.font="".concat(s," ").concat(c," ").concat(l,"px ").concat(u);for(var f=0,g=0,v=t.split("\n"),y=0;y1&&void 0!==arguments[1])||arguments[1];if(t.merge(e),n)for(var r=0;r=e.desktopTapThreshold2}var D=i(t);v&&(e.hoverData.tapholdCancelled=!0);n=!0,r(g,["mousemove","vmousemove","tapdrag"],t,{x:c[0],y:c[1]});var T=function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:c[0],y:c[1]}}),f[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()};if(3===e.hoverData.which){if(v){var _={originalEvent:t,type:"cxtdrag",position:{x:c[0],y:c[1]}};m?m.emit(_):o.emit(_),e.hoverData.cxtDragged=!0,e.hoverData.cxtOver&&g===e.hoverData.cxtOver||(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:c[0],y:c[1]}}),e.hoverData.cxtOver=g,g&&g.emit({originalEvent:t,type:"cxtdragover",position:{x:c[0],y:c[1]}}))}}else if(e.hoverData.dragging){if(n=!0,o.panningEnabled()&&o.userPanningEnabled()){var M;if(e.hoverData.justStartedPan){var B=e.hoverData.mdownPos;M={x:(c[0]-B[0])*s,y:(c[1]-B[1])*s},e.hoverData.justStartedPan=!1}else M={x:b[0]*s,y:b[1]*s};o.panBy(M),o.emit("dragpan"),e.hoverData.dragged=!0}c=e.projectIntoViewport(t.clientX,t.clientY)}else if(1!=f[4]||null!=m&&!m.pannable()){if(m&&m.pannable()&&m.active()&&m.unactivate(),m&&m.grabbed()||g==y||(y&&r(y,["mouseout","tapdragout"],t,{x:c[0],y:c[1]}),g&&r(g,["mouseover","tapdragover"],t,{x:c[0],y:c[1]}),e.hoverData.last=g),m)if(v){if(o.boxSelectionEnabled()&&D)m&&m.grabbed()&&(d(w),m.emit("freeon"),w.emit("free"),e.dragData.didDrag&&(m.emit("dragfreeon"),w.emit("dragfree"))),T();else if(m&&m.grabbed()&&e.nodeIsDraggable(m)){var N=!e.dragData.didDrag;N&&e.redrawHint("eles",!0),e.dragData.didDrag=!0,e.hoverData.draggingEles||u(w,{inDragLayer:!0});var z={x:0,y:0};if(x(b[0])&&x(b[1])&&(z.x+=b[0],z.y+=b[1],N)){var I=e.hoverData.dragDelta;I&&x(I[0])&&x(I[1])&&(z.x+=I[0],z.y+=I[1])}e.hoverData.draggingEles=!0,w.silentShift(z).emit("position drag"),e.redrawHint("drag",!0),e.redraw()}}else!function(){var t=e.hoverData.dragDelta=e.hoverData.dragDelta||[];0===t.length?(t.push(b[0]),t.push(b[1])):(t[0]+=b[0],t[1]+=b[1])}();n=!0}else if(v){if(e.hoverData.dragging||!o.boxSelectionEnabled()||!D&&o.panningEnabled()&&o.userPanningEnabled()){if(!e.hoverData.selecting&&o.panningEnabled()&&o.userPanningEnabled()){a(m,e.hoverData.downs)&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,f[4]=0,e.data.bgActivePosistion=bt(h),e.redrawHint("select",!0),e.redraw())}}else T();m&&m.pannable()&&m.active()&&m.unactivate()}return f[2]=c[0],f[3]=c[1],n?(t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),!1):void 0}}),!1),e.registerBinding(t,"mouseup",(function(t){if((1!==e.hoverData.which||1===t.which||!e.hoverData.capture)&&e.hoverData.capture){e.hoverData.capture=!1;var a=e.cy,o=e.projectIntoViewport(t.clientX,t.clientY),s=e.selection,l=e.findNearestElement(o[0],o[1],!0,!1),u=e.dragData.possibleDragElements,c=e.hoverData.down,h=i(t);if(e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,c&&c.unactivate(),3===e.hoverData.which){var p={originalEvent:t,type:"cxttapend",position:{x:o[0],y:o[1]}};if(c?c.emit(p):a.emit(p),!e.hoverData.cxtDragged){var f={originalEvent:t,type:"cxttap",position:{x:o[0],y:o[1]}};c?c.emit(f):a.emit(f)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(1===e.hoverData.which){if(r(l,["mouseup","tapend","vmouseup"],t,{x:o[0],y:o[1]}),e.dragData.didDrag||e.hoverData.dragged||e.hoverData.selecting||e.hoverData.isOverThresholdDrag||(r(c,["click","tap","vclick"],t,{x:o[0],y:o[1]}),b=!1,t.timeStamp-w<=a.multiClickDebounceTime()?(m&&clearTimeout(m),b=!0,w=null,r(c,["dblclick","dbltap","vdblclick"],t,{x:o[0],y:o[1]})):(m=setTimeout((function(){b||r(c,["oneclick","onetap","voneclick"],t,{x:o[0],y:o[1]})}),a.multiClickDebounceTime()),w=t.timeStamp)),null!=c||e.dragData.didDrag||e.hoverData.selecting||e.hoverData.dragged||i(t)||(a.$(n).unselect(["tapunselect"]),u.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=u=a.collection()),l!=c||e.dragData.didDrag||e.hoverData.selecting||null!=l&&l._private.selectable&&(e.hoverData.dragging||("additive"===a.selectionType()||h?l.selected()?l.unselect(["tapunselect"]):l.select(["tapselect"]):h||(a.$(n).unmerge(l).unselect(["tapunselect"]),l.select(["tapselect"]))),e.redrawHint("eles",!0)),e.hoverData.selecting){var g=a.collection(e.getAllInBox(s[0],s[1],s[2],s[3]));e.redrawHint("select",!0),g.length>0&&e.redrawHint("eles",!0),a.emit({type:"boxend",originalEvent:t,position:{x:o[0],y:o[1]}});var v=function(e){return e.selectable()&&!e.selected()};"additive"===a.selectionType()||h||a.$(n).unmerge(g).unselect(),g.emit("box").stdFilter(v).select().emit("boxselect"),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!s[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var y=c&&c.grabbed();d(u),y&&(c.emit("freeon"),u.emit("free"),e.dragData.didDrag&&(c.emit("dragfreeon"),u.emit("dragfree")))}}s[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null}}),!1);var k,C,S,P,D,T,_,M,B,N,z,I,A,L=function(t){if(!e.scrollingPage){var n=e.cy,r=n.zoom(),i=n.pan(),a=e.projectIntoViewport(t.clientX,t.clientY),o=[a[0]*r+i.x,a[1]*r+i.y];if(e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||0!==e.selection[4])t.preventDefault();else if(n.panningEnabled()&&n.userPanningEnabled()&&n.zoomingEnabled()&&n.userZoomingEnabled()){var s;t.preventDefault(),e.data.wheelZooming=!0,clearTimeout(e.data.wheelTimeout),e.data.wheelTimeout=setTimeout((function(){e.data.wheelZooming=!1,e.redrawHint("eles",!0),e.redraw()}),150),s=null!=t.deltaY?t.deltaY/-250:null!=t.wheelDeltaY?t.wheelDeltaY/1e3:t.wheelDelta/1e3,s*=e.wheelSensitivity,1===t.deltaMode&&(s*=33);var l=n.zoom()*Math.pow(10,s);"gesturechange"===t.type&&(l=e.gestureStartZoom*t.scale),n.zoom({level:l,renderedPosition:{x:o[0],y:o[1]}}),n.emit("gesturechange"===t.type?"pinchzoom":"scrollzoom")}}};e.registerBinding(e.container,"wheel",L,!0),e.registerBinding(t,"scroll",(function(t){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout((function(){e.scrollingPage=!1}),250)}),!0),e.registerBinding(e.container,"gesturestart",(function(t){e.gestureStartZoom=e.cy.zoom(),e.hasTouchStarted||t.preventDefault()}),!0),e.registerBinding(e.container,"gesturechange",(function(t){e.hasTouchStarted||L(t)}),!0),e.registerBinding(e.container,"mouseout",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseout",position:{x:n[0],y:n[1]}})}),!1),e.registerBinding(e.container,"mouseover",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseover",position:{x:n[0],y:n[1]}})}),!1);var O,R,V,F,j,q,Y,X=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},W=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(e.registerBinding(e.container,"touchstart",O=function(t){if(e.hasTouchStarted=!0,E(t)){p(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var n=e.cy,i=e.touchData.now,a=e.touchData.earlier;if(t.touches[0]){var o=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);i[0]=o[0],i[1]=o[1]}if(t.touches[1]){o=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY);i[2]=o[0],i[3]=o[1]}if(t.touches[2]){o=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY);i[4]=o[0],i[5]=o[1]}if(t.touches[1]){e.touchData.singleTouchMoved=!0,d(e.dragData.touchDragEles);var l=e.findContainerClientCoords();B=l[0],N=l[1],z=l[2],I=l[3],k=t.touches[0].clientX-B,C=t.touches[0].clientY-N,S=t.touches[1].clientX-B,P=t.touches[1].clientY-N,A=0<=k&&k<=z&&0<=S&&S<=z&&0<=C&&C<=I&&0<=P&&P<=I;var h=n.pan(),f=n.zoom();D=X(k,C,S,P),T=W(k,C,S,P),M=[((_=[(k+S)/2,(C+P)/2])[0]-h.x)/f,(_[1]-h.y)/f];if(T<4e4&&!t.touches[2]){var g=e.findNearestElement(i[0],i[1],!0,!0),v=e.findNearestElement(i[2],i[3],!0,!0);return g&&g.isNode()?(g.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=g):v&&v.isNode()?(v.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=v):n.emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!0,e.touchData.cxtDragged=!1,e.data.bgActivePosistion=void 0,void e.redraw()}}if(t.touches[2])n.boxSelectionEnabled()&&t.preventDefault();else if(t.touches[1]);else if(t.touches[0]){var y=e.findNearestElements(i[0],i[1],!0,!0),m=y[0];if(null!=m&&(m.activate(),e.touchData.start=m,e.touchData.starts=y,e.nodeIsGrabbable(m))){var b=e.dragData.touchDragEles=n.collection(),x=null;e.redrawHint("eles",!0),e.redrawHint("drag",!0),m.selected()?(x=n.$((function(t){return t.selected()&&e.nodeIsGrabbable(t)})),u(x,{addToList:b})):c(m,{addToList:b}),s(m);var w=function(e){return{originalEvent:t,type:e,position:{x:i[0],y:i[1]}}};m.emit(w("grabon")),x?x.forEach((function(e){e.emit(w("grab"))})):m.emit(w("grab"))}r(m,["touchstart","tapstart","vmousedown"],t,{x:i[0],y:i[1]}),null==m&&(e.data.bgActivePosistion={x:o[0],y:o[1]},e.redrawHint("select",!0),e.redraw()),e.touchData.singleTouchMoved=!1,e.touchData.singleTouchStartTime=+new Date,clearTimeout(e.touchData.tapholdTimeout),e.touchData.tapholdTimeout=setTimeout((function(){!1!==e.touchData.singleTouchMoved||e.pinching||e.touchData.selecting||r(e.touchData.start,["taphold"],t,{x:i[0],y:i[1]})}),e.tapholdDuration)}if(t.touches.length>=1){for(var L=e.touchData.startPosition=[null,null,null,null,null,null],O=0;O=e.touchTapThreshold2}if(n&&e.touchData.cxt){t.preventDefault();var w=t.touches[0].clientX-B,_=t.touches[0].clientY-N,z=t.touches[1].clientX-B,I=t.touches[1].clientY-N,L=W(w,_,z,I);if(L/T>=2.25||L>=22500){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var O={originalEvent:t,type:"cxttapend",position:{x:s[0],y:s[1]}};e.touchData.start?(e.touchData.start.unactivate().emit(O),e.touchData.start=null):o.emit(O)}}if(n&&e.touchData.cxt){O={originalEvent:t,type:"cxtdrag",position:{x:s[0],y:s[1]}};e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(O):o.emit(O),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var R=e.findNearestElement(s[0],s[1],!0,!0);e.touchData.cxtOver&&R===e.touchData.cxtOver||(e.touchData.cxtOver&&e.touchData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:s[0],y:s[1]}}),e.touchData.cxtOver=R,R&&R.emit({originalEvent:t,type:"cxtdragover",position:{x:s[0],y:s[1]}}))}else if(n&&t.touches[2]&&o.boxSelectionEnabled())t.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:s[0],y:s[1]}}),e.touchData.selecting=!0,e.touchData.didSelect=!0,i[4]=1,i&&0!==i.length&&void 0!==i[0]?(i[2]=(s[0]+s[2]+s[4])/3,i[3]=(s[1]+s[3]+s[5])/3):(i[0]=(s[0]+s[2]+s[4])/3,i[1]=(s[1]+s[3]+s[5])/3,i[2]=(s[0]+s[2]+s[4])/3+1,i[3]=(s[1]+s[3]+s[5])/3+1),e.redrawHint("select",!0),e.redraw();else if(n&&t.touches[1]&&!e.touchData.didSelect&&o.zoomingEnabled()&&o.panningEnabled()&&o.userZoomingEnabled()&&o.userPanningEnabled()){if(t.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),ee=e.dragData.touchDragEles){e.redrawHint("drag",!0);for(var V=0;V0&&!e.hoverData.draggingEles&&!e.swipePanning&&null!=e.data.bgActivePosistion&&(e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.redraw())}},!1),e.registerBinding(t,"touchcancel",V=function(t){var n=e.touchData.start;e.touchData.capture=!1,n&&n.unactivate()}),e.registerBinding(t,"touchend",F=function(t){var i=e.touchData.start;if(e.touchData.capture){0===t.touches.length&&(e.touchData.capture=!1),t.preventDefault();var a=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var o,s=e.cy,l=s.zoom(),u=e.touchData.now,c=e.touchData.earlier;if(t.touches[0]){var h=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);u[0]=h[0],u[1]=h[1]}if(t.touches[1]){h=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY);u[2]=h[0],u[3]=h[1]}if(t.touches[2]){h=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY);u[4]=h[0],u[5]=h[1]}if(i&&i.unactivate(),e.touchData.cxt){if(o={originalEvent:t,type:"cxttapend",position:{x:u[0],y:u[1]}},i?i.emit(o):s.emit(o),!e.touchData.cxtDragged){var p={originalEvent:t,type:"cxttap",position:{x:u[0],y:u[1]}};i?i.emit(p):s.emit(p)}return e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,void e.redraw()}if(!t.touches[2]&&s.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var f=s.collection(e.getAllInBox(a[0],a[1],a[2],a[3]));a[0]=void 0,a[1]=void 0,a[2]=void 0,a[3]=void 0,a[4]=0,e.redrawHint("select",!0),s.emit({type:"boxend",originalEvent:t,position:{x:u[0],y:u[1]}});f.emit("box").stdFilter((function(e){return e.selectable()&&!e.selected()})).select().emit("boxselect"),f.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(null!=i&&i.unactivate(),t.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(t.touches[1]);else if(t.touches[0]);else if(!t.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var g=e.dragData.touchDragEles;if(null!=i){var v=i._private.grabbed;d(g),e.redrawHint("drag",!0),e.redrawHint("eles",!0),v&&(i.emit("freeon"),g.emit("free"),e.dragData.didDrag&&(i.emit("dragfreeon"),g.emit("dragfree"))),r(i,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]}),i.unactivate(),e.touchData.start=null}else{var y=e.findNearestElement(u[0],u[1],!0,!0);r(y,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]})}var m=e.touchData.startPosition[0]-u[0],b=m*m,x=e.touchData.startPosition[1]-u[1],w=(b+x*x)*l*l;e.touchData.singleTouchMoved||(i||s.$(":selected").unselect(["tapunselect"]),r(i,["tap","vclick"],t,{x:u[0],y:u[1]}),j=!1,t.timeStamp-Y<=s.multiClickDebounceTime()?(q&&clearTimeout(q),j=!0,Y=null,r(i,["dbltap","vdblclick"],t,{x:u[0],y:u[1]})):(q=setTimeout((function(){j||r(i,["onetap","voneclick"],t,{x:u[0],y:u[1]})}),s.multiClickDebounceTime()),Y=t.timeStamp)),null!=i&&!e.dragData.didDrag&&i._private.selectable&&w2){for(var p=[c[0],c[1]],f=Math.pow(p[0]-e,2)+Math.pow(p[1]-t,2),g=1;g0)return g[0]}return null},p=Object.keys(d),f=0;f0?u:Rt(i,a,e,t,n,r,o,s)},checkPoint:function(e,t,n,r,i,a,o,s){var l=2*(s="auto"===s?nn(r,i):s);if(Xt(e,t,this.points,a,o,r,i-l,[0,-1],n))return!0;if(Xt(e,t,this.points,a,o,r-l,i,[0,-1],n))return!0;var u=r/2+2*n,c=i/2+2*n;return!!Yt(e,t,[a-u,o-c,a-u,o,a+u,o,a+u,o-c])||(!!Kt(e,t,l,l,a+r/2-s,o+i/2-s,n)||!!Kt(e,t,l,l,a-r/2+s,o+i/2-s,n))}}},gu.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",Jt(3,0)),this.generateRoundPolygon("round-triangle",Jt(3,0)),this.generatePolygon("rectangle",Jt(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",Jt(5,0)),this.generateRoundPolygon("round-pentagon",Jt(5,0)),this.generatePolygon("hexagon",Jt(6,0)),this.generateRoundPolygon("round-hexagon",Jt(6,0)),this.generatePolygon("heptagon",Jt(7,0)),this.generateRoundPolygon("round-heptagon",Jt(7,0)),this.generatePolygon("octagon",Jt(8,0)),this.generateRoundPolygon("round-octagon",Jt(8,0));var r=new Array(20),i=tn(5,0),a=tn(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s=e.deqFastCost*g)break}else if(i){if(p>=e.deqCost*l||p>=e.deqAvgCost*s)break}else if(f>=e.deqNoDrawCost*(1e3/60))break;var v=e.deq(t,d,c);if(!(v.length>0))break;for(var y=0;y0&&(e.onDeqd(t,u),!i&&e.shouldRedraw(t,u,d,c)&&r())}),i(t))}}},wu=function(){function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Le;t(this,e),this.idsByKey=new $e,this.keyForId=new $e,this.cachesByLvl=new $e,this.lvls=[],this.getKey=n,this.doesEleInvalidateKey=r}return r(e,[{key:"getIdsFor",value:function(e){null==e&&Ve("Can not get id list for null key");var t=this.idsByKey,n=this.idsByKey.get(e);return n||(n=new Je,t.set(e,n)),n}},{key:"addIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).add(t)}},{key:"deleteIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).delete(t)}},{key:"getNumberOfIdsForKey",value:function(e){return null==e?0:this.getIdsFor(e).size}},{key:"updateKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t),r=this.getKey(e);this.deleteIdForKey(n,t),this.addIdForKey(r,t),this.keyForId.set(t,r)}},{key:"deleteKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteIdForKey(n,t),this.keyForId.delete(t)}},{key:"keyHasChangedFor",value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:"isInvalid",value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:"getCachesAt",value:function(e){var t=this.cachesByLvl,n=this.lvls,r=t.get(e);return r||(r=new $e,t.set(e,r),n.push(e)),r}},{key:"getCache",value:function(e,t){return this.getCachesAt(t).get(e)}},{key:"get",value:function(e,t){var n=this.getKey(e),r=this.getCache(n,t);return null!=r&&this.updateKeyMappingFor(e),r}},{key:"getForCachedKey",value:function(e,t){var n=this.keyForId.get(e.id());return this.getCache(n,t)}},{key:"hasCache",value:function(e,t){return this.getCachesAt(t).has(e)}},{key:"has",value:function(e,t){var n=this.getKey(e);return this.hasCache(n,t)}},{key:"setCache",value:function(e,t,n){n.key=e,this.getCachesAt(t).set(e,n)}},{key:"set",value:function(e,t,n){var r=this.getKey(e);this.setCache(r,t,n),this.updateKeyMappingFor(e)}},{key:"deleteCache",value:function(e,t){this.getCachesAt(t).delete(e)}},{key:"delete",value:function(e,t){var n=this.getKey(e);this.deleteCache(n,t)}},{key:"invalidateKey",value:function(e){var t=this;this.lvls.forEach((function(n){return t.deleteCache(e,n)}))}},{key:"invalidate",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteKeyMappingFor(e);var r=this.doesEleInvalidateKey(e);return r&&this.invalidateKey(n),r||0===this.getNumberOfIdsForKey(n)}}]),e}(),Eu={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},ku=He({getKey:null,doesEleInvalidateKey:Le,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:Ae,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Cu=function(e,t){this.renderer=e,this.onDequeues=[];var n=ku(t);L(this,n),this.lookup=new wu(n.getKey,n.doesEleInvalidateKey),this.setupDequeueing()},Su=Cu.prototype;Su.reasons=Eu,Su.getTextureQueue=function(e){return this.eleImgCaches=this.eleImgCaches||{},this.eleImgCaches[e]=this.eleImgCaches[e]||[]},Su.getRetiredTextureQueue=function(e){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[e]=t[e]||[]},Su.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new rt((function(e,t){return t.reqs-e.reqs}))},Su.getElementKeyToQueue=function(){return this.eleKeyToCacheQueue=this.eleKeyToCacheQueue||{}},Su.getElement=function(e,t,n,r,i){var a=this,o=this.renderer,s=o.cy.zoom(),l=this.lookup;if(!t||0===t.w||0===t.h||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed())return null;if(!a.allowEdgeTxrCaching&&e.isEdge()||!a.allowParentTxrCaching&&e.isParent())return null;if(null==r&&(r=Math.ceil(wt(s*n))),r<-4)r=-4;else if(s>=7.99||r>3)return null;var u=Math.pow(2,r),c=t.h*u,d=t.w*u,h=o.eleTextBiggerThanMin(e,u);if(!this.isVisible(e,h))return null;var p,f=l.get(e,r);if(f&&f.invalidated&&(f.invalidated=!1,f.texture.invalidatedWidth-=f.width),f)return f;if(p=c<=25?25:c<=50?50:50*Math.ceil(c/50),c>1024||d>1024)return null;var g=a.getTextureQueue(p),v=g[g.length-2],y=function(){return a.recycleTexture(p,d)||a.addTexture(p,d)};v||(v=g[g.length-1]),v||(v=y()),v.width-v.usedWidthr;D--)S=a.getElement(e,t,n,D,Eu.downscale);P()}else{var T;if(!x&&!w&&!E)for(var _=r-1;_>=-4;_--){var M=l.get(e,_);if(M){T=M;break}}if(b(T))return a.queueElement(e,r),T;v.context.translate(v.usedWidth,0),v.context.scale(u,u),this.drawElement(v.context,e,t,h,!1),v.context.scale(1/u,1/u),v.context.translate(-v.usedWidth,0)}return f={x:v.usedWidth,texture:v,level:r,scale:u,width:d,height:c,scaledLabelShown:h},v.usedWidth+=Math.ceil(d+8),v.eleCaches.push(f),l.set(e,r,f),a.checkTextureFullness(v),f},Su.invalidateElements=function(e){for(var t=0;t=.2*e.width&&this.retireTexture(e)},Su.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>.8&&e.fullnessChecks>=10?Ke(t,e):e.fullnessChecks++},Su.retireTexture=function(e){var t=e.height,n=this.getTextureQueue(t),r=this.lookup;Ke(n,e),e.retired=!0;for(var i=e.eleCaches,a=0;a=t)return a.retired=!1,a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,Ge(a.eleCaches),a.context.setTransform(1,0,0,1,0,0),a.context.clearRect(0,0,a.width,a.height),Ke(r,a),n.push(a),a}},Su.queueElement=function(e,t){var n=this.getElementQueue(),r=this.getElementKeyToQueue(),i=this.getKey(e),a=r[i];if(a)a.level=Math.max(a.level,t),a.eles.merge(e),a.reqs++,n.updateItem(a);else{var o={eles:e.spawn().merge(e),level:t,reqs:1,key:i};n.push(o),r[i]=o}},Su.dequeue=function(e){for(var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=[],i=this.lookup,a=0;a<1&&t.size()>0;a++){var o=t.pop(),s=o.key,l=o.eles[0],u=i.hasCache(l,o.level);if(n[s]=null,!u){r.push(o);var c=this.getBoundingBox(l);this.getElement(l,c,e,o.level,Eu.dequeue)}}return r},Su.removeFromQueue=function(e){var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=this.getKey(e),i=n[r];null!=i&&(1===i.eles.length?(i.reqs=Ie,t.updateItem(i),t.pop(),n[r]=null):i.eles.unmerge(e))},Su.onDequeue=function(e){this.onDequeues.push(e)},Su.offDequeue=function(e){Ke(this.onDequeues,e)},Su.setupDequeueing=xu({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n=3.99||n>2)return null;r.validateLayersElesOrdering(n,e);var o,s,l=r.layersByLevel,u=Math.pow(2,n),c=l[n]=l[n]||[];if(r.levelIsComplete(n,e))return c;!function(){var t=function(t){if(r.validateLayersElesOrdering(t,e),r.levelIsComplete(t,e))return s=l[t],!0},i=function(e){if(!s)for(var r=n+e;-4<=r&&r<=2&&!t(r);r+=e);};i(1),i(-1);for(var a=c.length-1;a>=0;a--){var o=c[a];o.invalid&&Ke(c,o)}}();var d=function(t){var i=(t=t||{}).after;if(function(){if(!o){o=_t();for(var t=0;t16e6)return null;var a=r.makeLayer(o,n);if(null!=i){var s=c.indexOf(i)+1;c.splice(s,0,a)}else(void 0===t.insert||t.insert)&&c.unshift(a);return a};if(r.skipping&&!a)return null;for(var h=null,p=e.length/1,f=!a,g=0;g=p||!Ot(h.bb,v.boundingBox()))&&!(h=d({insert:!0,after:h})))return null;s||f?r.queueLayer(h,v):r.drawEleInLayer(h,v,n,t),h.eles.push(v),m[n]=h}}return s||(f?null:c)},Du.getEleLevelForLayerLevel=function(e,t){return e},Du.drawEleInLayer=function(e,t,n,r){var i=this.renderer,a=e.context,o=t.boundingBox();0!==o.w&&0!==o.h&&t.visible()&&(n=this.getEleLevelForLayerLevel(n,r),i.setImgSmoothing(a,!1),i.drawCachedElement(a,t,null,null,n,!0),i.setImgSmoothing(a,!0))},Du.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,i=0;i0)return!1;if(a.invalid)return!1;r+=a.eles.length}return r===t.length},Du.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r0){e=!0;break}}return e},Du.invalidateElements=function(e){var t=this;0!==e.length&&(t.lastInvalidationTime=we(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,(function(e,n,r){t.invalidateLayer(e)})))},Du.invalidateLayer=function(e){if(this.lastInvalidationTime=we(),!e.invalid){var t=e.level,n=e.eles,r=this.layersByLevel[t];Ke(r,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var i=0;i3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this,s=t._private.rscratch;if((!a||t.visible())&&!s.badLine&&null!=s.allpts&&!isNaN(s.allpts[0])){var l;n&&(l=n,e.translate(-l.x1,-l.y1));var u=a?t.pstyle("opacity").value:1,c=a?t.pstyle("line-opacity").value:1,d=t.pstyle("curve-style").value,h=t.pstyle("line-style").value,p=t.pstyle("width").pfValue,f=t.pstyle("line-cap").value,g=t.pstyle("line-outline-width").value,v=t.pstyle("line-outline-color").value,y=u*c,m=u*c,b=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;"straight-triangle"===d?(o.eleStrokeStyle(e,t,n),o.drawEdgeTrianglePath(t,e,s.allpts)):(e.lineWidth=p,e.lineCap=f,o.eleStrokeStyle(e,t,n),o.drawEdgePath(t,e,s.allpts,h),e.lineCap="butt")},x=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;e.lineWidth=p+g,e.lineCap=f,g>0?(o.colorStrokeStyle(e,v[0],v[1],v[2],n),"straight-triangle"===d?o.drawEdgeTrianglePath(t,e,s.allpts):(o.drawEdgePath(t,e,s.allpts,h),e.lineCap="butt")):e.lineCap="butt"},w=function(){i&&o.drawEdgeOverlay(e,t)},E=function(){i&&o.drawEdgeUnderlay(e,t)},k=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;o.drawArrowheads(e,t,n)},C=function(){o.drawElementText(e,t,null,r)};e.lineJoin="round";var S="yes"===t.pstyle("ghost").value;if(S){var P=t.pstyle("ghost-offset-x").pfValue,D=t.pstyle("ghost-offset-y").pfValue,T=t.pstyle("ghost-opacity").value,_=y*T;e.translate(P,D),b(_),k(_),e.translate(-P,-D)}else x();E(),b(),k(),w(),C(),n&&e.translate(l.x1,l.y1)}}},Wu=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,n){if(n.visible()){var r=n.pstyle("".concat(e,"-opacity")).value;if(0!==r){var i=this,a=i.usePaths(),o=n._private.rscratch,s=2*n.pstyle("".concat(e,"-padding")).pfValue,l=n.pstyle("".concat(e,"-color")).value;t.lineWidth=s,"self"!==o.edgeType||a?t.lineCap="round":t.lineCap="butt",i.colorStrokeStyle(t,l[0],l[1],l[2],r),i.drawEdgePath(n,t,o.allpts,"solid")}}}};Xu.drawEdgeOverlay=Wu("overlay"),Xu.drawEdgeUnderlay=Wu("underlay"),Xu.drawEdgePath=function(e,t,n,r){var i,a=e._private.rscratch,o=t,s=!1,u=this.usePaths(),c=e.pstyle("line-dash-pattern").pfValue,d=e.pstyle("line-dash-offset").pfValue;if(u){var h=n.join("$");a.pathCacheKey&&a.pathCacheKey===h?(i=t=a.pathCache,s=!0):(i=t=new Path2D,a.pathCacheKey=h,a.pathCache=i)}if(o.setLineDash)switch(r){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash(c),o.lineDashOffset=d;break;case"solid":o.setLineDash([])}if(!s&&!a.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),a.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var p=2;p+35&&void 0!==arguments[5]?arguments[5]:5,o=arguments.length>6?arguments[6]:void 0;e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.quadraticCurveTo(t+r,n,t+r,n+a),e.lineTo(t+r,n+i-a),e.quadraticCurveTo(t+r,n+i,t+r-a,n+i),e.lineTo(t+a,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a),e.lineTo(t,n+a),e.quadraticCurveTo(t,n,t+a,n),e.closePath(),o?e.stroke():e.fill()}Ku.eleTextBiggerThanMin=function(e,t){if(!t){var n=e.cy().zoom(),r=this.getPixelRatio(),i=Math.ceil(wt(n*r));t=Math.pow(2,i)}return!(e.pstyle("font-size").pfValue*t5&&void 0!==arguments[5])||arguments[5],o=this;if(null==r){if(a&&!o.eleTextBiggerThanMin(t))return}else if(!1===r)return;if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value)return;var l=o.getLabelJustification(t);e.textAlign=l,e.textBaseline="bottom"}else{var u=t.element()._private.rscratch.badLine,c=t.pstyle("label"),d=t.pstyle("source-label"),h=t.pstyle("target-label");if(u||(!c||!c.value)&&(!d||!d.value)&&(!h||!h.value))return;e.textAlign="center",e.textBaseline="bottom"}var p,f=!n;n&&(p=n,e.translate(-p.x1,-p.y1)),null==i?(o.drawText(e,t,null,f,a),t.isEdge()&&(o.drawText(e,t,"source",f,a),o.drawText(e,t,"target",f,a))):o.drawText(e,t,i,f,a),n&&e.translate(p.x1,p.y1)},Ku.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n2&&void 0!==arguments[2])||arguments[2],r=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",a=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,s=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*s,u=t.pstyle("color").value,c=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+i+" "+a,e.lineJoin="round",this.colorFillStyle(e,u[0],u[1],u[2],s),this.colorStrokeStyle(e,c[0],c[1],c[2],l)},Ku.getTextAngle=function(e,t){var n=e._private.rscratch,r=t?t+"-":"",i=e.pstyle(r+"text-rotation"),a=Ue(n,"labelAngle",t);return"autorotate"===i.strValue?e.isEdge()?a:0:"none"===i.strValue?0:i.pfValue},Ku.drawText=function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=t._private,o=a.rscratch,s=i?t.effectiveOpacity():1;if(!i||0!==s&&0!==t.pstyle("text-opacity").value){"main"===n&&(n=null);var l,u,c=Ue(o,"labelX",n),d=Ue(o,"labelY",n),h=this.getLabelText(t,n);if(null!=h&&""!==h&&!isNaN(c)&&!isNaN(d)){this.setupTextStyle(e,t,i);var p,f=n?n+"-":"",g=Ue(o,"labelWidth",n),v=Ue(o,"labelHeight",n),y=t.pstyle(f+"text-margin-x").pfValue,m=t.pstyle(f+"text-margin-y").pfValue,b=t.isEdge(),x=t.pstyle("text-halign").value,w=t.pstyle("text-valign").value;switch(b&&(x="center",w="center"),c+=y,d+=m,0!==(p=r?this.getTextAngle(t,n):0)&&(l=c,u=d,e.translate(l,u),e.rotate(p),c=0,d=0),w){case"top":break;case"center":d+=v/2;break;case"bottom":d+=v}var E=t.pstyle("text-background-opacity").value,k=t.pstyle("text-border-opacity").value,C=t.pstyle("text-border-width").pfValue,S=t.pstyle("text-background-padding").pfValue,P=t.pstyle("text-background-shape").strValue,D=0===P.indexOf("round"),T=2;if(E>0||C>0&&k>0){var _=c-S;switch(x){case"left":_-=g;break;case"center":_-=g/2}var M=d-v-S,B=g+2*S,N=v+2*S;if(E>0){var z=e.fillStyle,I=t.pstyle("text-background-color").value;e.fillStyle="rgba("+I[0]+","+I[1]+","+I[2]+","+E*s+")",D?Gu(e,_,M,B,N,T):e.fillRect(_,M,B,N),e.fillStyle=z}if(C>0&&k>0){var A=e.strokeStyle,L=e.lineWidth,O=t.pstyle("text-border-color").value,R=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+k*s+")",e.lineWidth=C,e.setLineDash)switch(R){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=C/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(D?Gu(e,_,M,B,N,T,"stroke"):e.strokeRect(_,M,B,N),"double"===R){var V=C/2;D?Gu(e,_+V,M+V,B-2*V,N-2*V,T,"stroke"):e.strokeRect(_+V,M+V,B-2*V,N-2*V)}e.setLineDash&&e.setLineDash([]),e.lineWidth=L,e.strokeStyle=A}}var F=2*t.pstyle("text-outline-width").pfValue;if(F>0&&(e.lineWidth=F),"wrap"===t.pstyle("text-wrap").value){var j=Ue(o,"labelWrapCachedLines",n),q=Ue(o,"labelLineHeight",n),Y=g/2,X=this.getLabelJustification(t);switch("auto"===X||("left"===x?"left"===X?c+=-g:"center"===X&&(c+=-Y):"center"===x?"left"===X?c+=-Y:"right"===X&&(c+=Y):"right"===x&&("center"===X?c+=Y:"right"===X&&(c+=g))),w){case"top":d-=(j.length-1)*q;break;case"center":case"bottom":d-=(j.length-1)*q}for(var W=0;W0&&e.strokeText(j[W],c,d),e.fillText(j[W],c,d),d+=q}else F>0&&e.strokeText(h,c,d),e.fillText(h,c,d);0!==p&&(e.rotate(-p),e.translate(-l,-u))}}};var Uu={drawNode:function(e,t,n){var r,i,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],l=this,u=t._private,c=u.rscratch,d=t.position();if(x(d.x)&&x(d.y)&&(!s||t.visible())){var h,p,f=s?t.effectiveOpacity():1,g=l.usePaths(),v=!1,y=t.padding();r=t.width()+2*y,i=t.height()+2*y,n&&(p=n,e.translate(-p.x1,-p.y1));for(var m=t.pstyle("background-image"),b=m.value,w=new Array(b.length),E=new Array(b.length),k=0,C=0;C0&&void 0!==arguments[0]?arguments[0]:M;l.eleFillStyle(e,t,n)},H=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:R;l.colorStrokeStyle(e,B[0],B[1],B[2],t)},K=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:q;l.colorStrokeStyle(e,F[0],F[1],F[2],t)},G=function(e,t,n,r){var i,a=l.nodePathCache=l.nodePathCache||[],o=_e("polygon"===n?n+","+r.join(","):n,""+t,""+e,""+X),s=a[o],u=!1;return null!=s?(i=s,u=!0,c.pathCache=i):(i=new Path2D,a[o]=c.pathCache=i),{path:i,cacheHit:u}},U=t.pstyle("shape").strValue,Z=t.pstyle("shape-polygon-points").pfValue;if(g){e.translate(d.x,d.y);var $=G(r,i,U,Z);h=$.path,v=$.cacheHit}var Q=function(){if(!v){var n=d;g&&(n={x:0,y:0}),l.nodeShapes[l.getNodeShape(t)].draw(h||e,n.x,n.y,r,i,X,c)}g?e.fill(h):e.fill()},J=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=u.backgrounding,a=0,o=0;o0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f;l.hasPie(t)&&(l.drawPie(e,t,a),n&&(g||l.nodeShapes[l.getNodeShape(t)].draw(e,d.x,d.y,r,i,X,c)))},te=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,n=(T>0?T:-T)*t,r=T>0?0:255;0!==T&&(l.colorFillStyle(e,r,r,r,n),g?e.fill(h):e.fill())},ne=function(){if(_>0){if(e.lineWidth=_,e.lineCap=I,e.lineJoin=z,e.setLineDash)switch(N){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(L),e.lineDashOffset=O;break;case"solid":case"double":e.setLineDash([])}if("center"!==A){if(e.save(),e.lineWidth*=2,"inside"===A)g?e.clip(h):e.clip();else{var t=new Path2D;t.rect(-r/2-_,-i/2-_,r+2*_,i+2*_),t.addPath(h),e.clip(t,"evenodd")}g?e.stroke(h):e.stroke(),e.restore()}else g?e.stroke(h):e.stroke();if("double"===N){e.lineWidth=_/3;var n=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",g?e.stroke(h):e.stroke(),e.globalCompositeOperation=n}e.setLineDash&&e.setLineDash([])}},re=function(){if(V>0){if(e.lineWidth=V,e.lineCap="butt",e.setLineDash)switch(j){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}var n=d;g&&(n={x:0,y:0});var a=l.getNodeShape(t),o=_;"inside"===A&&(o=0),"outside"===A&&(o*=2);var s,u=(r+o+(V+Y))/r,c=(i+o+(V+Y))/i,h=r*u,p=i*c,f=l.nodeShapes[a].points;if(g)s=G(h,p,a,f).path;if("ellipse"===a)l.drawEllipsePath(s||e,n.x,n.y,h,p);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(a)){var v=0,y=0,m=0;"round-diamond"===a?v=1.4*(o+Y+V):"round-heptagon"===a?(v=1.075*(o+Y+V),m=-(o/2+Y+V)/35):"round-hexagon"===a?v=1.12*(o+Y+V):"round-pentagon"===a?(v=1.13*(o+Y+V),m=-(o/2+Y+V)/15):"round-tag"===a?(v=1.12*(o+Y+V),y=.07*(o/2+V+Y)):"round-triangle"===a&&(v=(o+Y+V)*(Math.PI/2),m=-(o+Y/2+V)/Math.PI),0!==v&&(h=r*(u=(r+v)/r),["round-hexagon","round-tag"].includes(a)||(p=i*(c=(i+v)/i)));for(var b=h/2,x=p/2,w=(X="auto"===X?rn(h,p):X)+(o+V+Y)/2,E=new Array(f.length/2),k=new Array(f.length/2),C=0;C0){if(r=r||n.position(),null==i||null==a){var d=n.padding();i=n.width()+2*d,a=n.height()+2*d}this.colorFillStyle(t,l[0],l[1],l[2],s),this.nodeShapes[u].draw(t,r.x,r.y,i+2*o,a+2*o,c),t.fill()}}}};Uu.drawNodeOverlay=Zu("overlay"),Uu.drawNodeUnderlay=Zu("underlay"),Uu.hasPie=function(e){return(e=e[0])._private.hasPie},Uu.drawPie=function(e,t,n,r){t=t[0],r=r||t.position();var i=t.cy().style(),a=t.pstyle("pie-size"),o=r.x,s=r.y,l=t.width(),u=t.height(),c=Math.min(l,u)/2,d=0;this.usePaths()&&(o=0,s=0),"%"===a.units?c*=a.pfValue:void 0!==a.pfValue&&(c=a.pfValue/2);for(var h=1;h<=i.pieBackgroundN;h++){var p=t.pstyle("pie-"+h+"-background-size").value,f=t.pstyle("pie-"+h+"-background-color").value,g=t.pstyle("pie-"+h+"-background-opacity").value*n,v=p/100;v+d>1&&(v=1-d);var y=1.5*Math.PI+2*Math.PI*d,m=y+2*Math.PI*v;0===p||d>=1||d+v>1||(e.beginPath(),e.moveTo(o,s),e.arc(o,s,c,y,m),e.closePath(),this.colorFillStyle(e,f[0],f[1],f[2],g),e.fill(),d+=v)}};var $u={};$u.getPixelRatio=function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=this.cy.window(),n=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/n},$u.paintCache=function(e){for(var t,n=this.paintCaches=this.paintCaches||[],r=!0,i=0;io.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!d&&(c[o.NODE]=!0,c[o.SELECT_BOX]=!0);var m=l.style(),b=l.zoom(),x=void 0!==i?i:b,w=l.pan(),E={x:w.x,y:w.y},k={zoom:b,pan:{x:w.x,y:w.y}},C=o.prevViewport;void 0===C||k.zoom!==C.zoom||k.pan.x!==C.pan.x||k.pan.y!==C.pan.y||g&&!f||(o.motionBlurPxRatio=1),a&&(E=a),x*=s,E.x*=s,E.y*=s;var S=o.getCachedZSortedEles();function P(e,t,n,r,i){var a=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",o.colorFillStyle(e,255,255,255,o.motionBlurTransparency),e.fillRect(t,n,r,i),e.globalCompositeOperation=a}function D(e,r){var s,l,c,d;o.clearingMotionBlur||e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(s=E,l=x,c=o.canvasWidth,d=o.canvasHeight):(s={x:w.x*p,y:w.y*p},l=b*p,c=o.canvasWidth*p,d=o.canvasHeight*p),e.setTransform(1,0,0,1,0,0),"motionBlur"===r?P(e,0,0,c,d):t||void 0!==r&&!r||e.clearRect(0,0,c,d),n||(e.translate(s.x,s.y),e.scale(l,l)),a&&e.translate(a.x,a.y),i&&e.scale(i,i)}if(d||(o.textureDrawLastFrame=!1),d){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=l.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var T=o.data.bufferContexts[o.TEXTURE_BUFFER];T.setTransform(1,0,0,1,0,0),T.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:T,drawOnlyNodeLayer:!0,forcedPxRatio:s*o.textureMult}),(k=o.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:o.canvasWidth,height:o.canvasHeight}).mpan={x:(0-k.pan.x)/k.zoom,y:(0-k.pan.y)/k.zoom}}c[o.DRAG]=!1,c[o.NODE]=!1;var _=u.contexts[o.NODE],M=o.textureCache.texture;k=o.textureCache.viewport;_.setTransform(1,0,0,1,0,0),h?P(_,0,0,k.width,k.height):_.clearRect(0,0,k.width,k.height);var B=m.core("outside-texture-bg-color").value,N=m.core("outside-texture-bg-opacity").value;o.colorFillStyle(_,B[0],B[1],B[2],N),_.fillRect(0,0,k.width,k.height);b=l.zoom();D(_,!1),_.clearRect(k.mpan.x,k.mpan.y,k.width/k.zoom/s,k.height/k.zoom/s),_.drawImage(M,k.mpan.x,k.mpan.y,k.width/k.zoom/s,k.height/k.zoom/s)}else o.textureOnViewport&&!t&&(o.textureCache=null);var z=l.extent(),I=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),A=o.hideEdgesOnViewport&&I,L=[];if(L[o.NODE]=!c[o.NODE]&&h&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,L[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),L[o.DRAG]=!c[o.DRAG]&&h&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,L[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),c[o.NODE]||n||r||L[o.NODE]){var O=h&&!L[o.NODE]&&1!==p;D(_=t||(O?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:u.contexts[o.NODE]),h&&!O?"motionBlur":void 0),A?o.drawCachedNodes(_,S.nondrag,s,z):o.drawLayeredElements(_,S.nondrag,s,z),o.debug&&o.drawDebugPoints(_,S.nondrag),n||h||(c[o.NODE]=!1)}if(!r&&(c[o.DRAG]||n||L[o.DRAG])){O=h&&!L[o.DRAG]&&1!==p;D(_=t||(O?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:u.contexts[o.DRAG]),h&&!O?"motionBlur":void 0),A?o.drawCachedNodes(_,S.drag,s,z):o.drawCachedElements(_,S.drag,s,z),o.debug&&o.drawDebugPoints(_,S.drag),n||h||(c[o.DRAG]=!1)}if(o.showFps||!r&&c[o.SELECT_BOX]&&!n){if(D(_=t||u.contexts[o.SELECT_BOX]),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){b=o.cy.zoom();var R=m.core("selection-box-border-width").value/b;_.lineWidth=R,_.fillStyle="rgba("+m.core("selection-box-color").value[0]+","+m.core("selection-box-color").value[1]+","+m.core("selection-box-color").value[2]+","+m.core("selection-box-opacity").value+")",_.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),R>0&&(_.strokeStyle="rgba("+m.core("selection-box-border-color").value[0]+","+m.core("selection-box-border-color").value[1]+","+m.core("selection-box-border-color").value[2]+","+m.core("selection-box-opacity").value+")",_.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(u.bgActivePosistion&&!o.hoverData.selecting){b=o.cy.zoom();var V=u.bgActivePosistion;_.fillStyle="rgba("+m.core("active-bg-color").value[0]+","+m.core("active-bg-color").value[1]+","+m.core("active-bg-color").value[2]+","+m.core("active-bg-opacity").value+")",_.beginPath(),_.arc(V.x,V.y,m.core("active-bg-size").pfValue/b,0,2*Math.PI),_.fill()}var F=o.lastRedrawTime;if(o.showFps&&F){F=Math.round(F);var j=Math.round(1e3/F);_.setTransform(1,0,0,1,0,0),_.fillStyle="rgba(255, 0, 0, 0.75)",_.strokeStyle="rgba(255, 0, 0, 0.75)",_.lineWidth=1,_.fillText("1 frame = "+F+" ms = "+j+" fps",0,20);_.strokeRect(0,30,250,20),_.fillRect(0,30,250*Math.min(j/60,1),20)}n||(c[o.SELECT_BOX]=!1)}if(h&&1!==p){var q=u.contexts[o.NODE],Y=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],X=u.contexts[o.DRAG],W=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],H=function(e,t,n){e.setTransform(1,0,0,1,0,0),n||!y?e.clearRect(0,0,o.canvasWidth,o.canvasHeight):P(e,0,0,o.canvasWidth,o.canvasHeight);var r=p;e.drawImage(t,0,0,o.canvasWidth*r,o.canvasHeight*r,0,0,o.canvasWidth,o.canvasHeight)};(c[o.NODE]||L[o.NODE])&&(H(q,Y,L[o.NODE]),c[o.NODE]=!1),(c[o.DRAG]||L[o.DRAG])&&(H(X,W,L[o.DRAG]),c[o.DRAG]=!1)}o.prevViewport=k,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),h&&(o.motionBlurTimeout=setTimeout((function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!d,o.mbFrames=0,c[o.NODE]=!0,c[o.DRAG]=!0,o.redraw()}),100)),t||l.emit("render")};for(var Qu={drawPolygonPath:function(e,t,n,r,i,a){var o=r/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*a[0],n+s*a[1]);for(var l=1;l0&&a>0){h.clearRect(0,0,i,a),h.globalCompositeOperation="source-over";var p=this.getCachedZSortedEles();if(e.full)h.translate(-n.x1*l,-n.y1*l),h.scale(l,l),this.drawElements(h,p),h.scale(1/l,1/l),h.translate(n.x1*l,n.y1*l);else{var f=t.pan(),g={x:f.x*l,y:f.y*l};l*=t.zoom(),h.translate(g.x,g.y),h.scale(l,l),this.drawElements(h,p),h.scale(1/l,1/l),h.translate(-g.x,-g.y)}e.bg&&(h.globalCompositeOperation="destination-over",h.fillStyle=e.bg,h.rect(0,0,i,a),h.fill())}return d},ac.png=function(e){return sc(e,this.bufferCanvasImage(e),"image/png")},ac.jpg=function(e){return sc(e,this.bufferCanvasImage(e),"image/jpeg")};var lc={nodeShapeImpl:function(e,t,n,r,i,a,o,s){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,i,a);case"polygon":return this.drawPolygonPath(t,n,r,i,a,o);case"round-polygon":return this.drawRoundPolygonPath(t,n,r,i,a,o,s);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,n,r,i,a,s);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,n,r,i,a,o,s);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,n,r,i,a,s);case"barrel":return this.drawBarrelPath(t,n,r,i,a)}}},uc=dc,cc=dc.prototype;function dc(e){var t=this,n=t.cy.window().document;t.data={canvases:new Array(cc.CANVAS_LAYERS),contexts:new Array(cc.CANVAS_LAYERS),canvasNeedsRedraw:new Array(cc.CANVAS_LAYERS),bufferCanvases:new Array(cc.BUFFER_COUNT),bufferContexts:new Array(cc.CANVAS_LAYERS)};t.data.canvasContainer=n.createElement("div");var r=t.data.canvasContainer.style;t.data.canvasContainer.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",r.position="relative",r.zIndex="0",r.overflow="hidden";var i=e.cy.container();i.appendChild(t.data.canvasContainer),i.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)";var a={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};c&&c.userAgent.match(/msie|trident|edge/i)&&(a["-ms-touch-action"]="none",a["touch-action"]="none");for(var o=0;o { + it('home page rendered', () => { + cy.visit('/'); + cy.get('#cy', { timeout: 5000 }); + cy.get('.collapsible', { timeout: 5000 }); + }); + + it('Check that Different Nodes are Showing', () => { + cy.visit('/'); + // Enter Simulation Parameters + cy.get('#SimParametersForm').should('be.visible'); + cy.get('#numcycles').type('5'); + cy.get('#numtimepts').type('5'); + cy.get('#submitSimParamButton').click(); + + // Create a BC + cy.get("#node-type").select("boundary_condition").invoke("val").should("eq", "boundary_condition"); + // Select Inflow + cy.get("#boundary-condition-type").select("FLOW").invoke("val").should("eq", "FLOW"); + // type node name + cy.get('#node-name').type('INFLOW'); + // add node + cy.get('body').click(150, 400); + + // Makes sure the node was added + cy.get('.draggable').should('have.length', 1); + + cy.get('#node-name').clear(); + + // Create a vessel + cy.get("#node-type").select("vessel").invoke("val").should("eq", "vessel"); + // type node name + cy.get('#node-name').type('vessel0'); + // add node + cy.get('body').click(200, 500); + cy.get('body').click(200, 500); + cy.get('#vesselForm').should('be.visible'); + cy.get('#vesselLengthInput').type('1'); + cy.get('#vesselRadiusInput').type('1'); + cy.get('#vesselStenosisDiameterInput').type('0'); + cy.get('#submitVesselButton').click(); + + // Make sure the node was added + cy.get('.draggable').should('have.length', 2); + + }); +}); + +describe('Node interaction', () => { + beforeEach(() => { + cy.visit('/'); + cy.window().then((win) => { + cy.stub(win, 'downloadJSON').as('downloadJSONStub'); + }); + }); + + it('One Edge Creation', () => { + let pos1, pos2; + + cy.get('#SimParametersForm').should('be.visible'); + cy.get('#numcycles').type('5'); + cy.get('#numtimepts').type('5'); + cy.get('#submitSimParamButton').click(); + + // Create a BC + cy.get("#node-type").select("boundary_condition").invoke("val").should("eq", "boundary_condition"); + // Select Inflow + cy.get("#boundary-condition-type").select("FLOW").invoke("val").should("eq", "FLOW"); + // type node name + cy.get('#node-name').type('INFLOW'); + + cy.get('#draw-on').click(); + + cy.get('#cy').click(100, 100); // Coordinates for the first node + + cy.get('#node-name').clear(); + + // Create a vessel + cy.get("#node-type").select("vessel").invoke("val").should("eq", "vessel"); + // type node name + cy.get('#node-name').type('vessel0'); + // add node + cy.get('body').click(200, 500); + cy.get('body').click(200, 500); + cy.get('#vesselForm').should('be.visible'); + cy.get('#vesselLengthInput').type('1'); + cy.get('#vesselRadiusInput').type('1'); + cy.get('#vesselStenosisDiameterInput').type('0'); + cy.get('#submitVesselButton').click(); + + // Make sure the node was added + cy.get('.draggable').should('have.length', 2); + + + + cy.get('.draggable').first().drag('.draggable:eq(1)', { force: true }).then(() => { + cy.get('.draggable').eq(1).then($node2 => { + const rect2 = $node2[0].getBoundingClientRect(); + cy.get('body').trigger('mouseup', { + which: 1, + clientX: rect2.x + rect2.width / 2, + clientY: rect2.y + rect2.height / 2, + force: true + }); + + }); + }); + + }); + + it('Correct Alert was Raised', () => { + // Listen for window alerts + const alertText = 'The model needs at least two boundary conditions'; + + cy.on('window:alert', (str) => { + // Check if the alert message matches the expected message + expect(str).to.equal(alertText); + }); + + // Click the export button + cy.get('#export-json').click(); + + }); + + it('Inflow -> Vessel -> OUT', () => { + + cy.get('#SimParametersForm').should('be.visible'); + cy.get('#numcycles').type('5'); + cy.get('#numtimepts').type('5'); + cy.get('#submitSimParamButton').click(); + + // Create a BC + cy.get("#node-type").select("boundary_condition").invoke("val").should("eq", "boundary_condition"); + // Select Inflow + cy.get("#boundary-condition-type").select("FLOW").invoke("val").should("eq", "FLOW"); + // type node name + cy.get('#node-name').type('INFLOW'); + + cy.get('#draw-on').click(); + + cy.get('#cy').click(100, 100); // Coordinates for the first node + + cy.get('#node-name').clear(); + + // Create a vessel + cy.get("#node-type").select("vessel").invoke("val").should("eq", "vessel"); + // type node name + cy.get('#node-name').type('vessel0'); + // add node + cy.get('body').click(200, 500); + cy.get('body').click(200, 500); + cy.get('#vesselForm').should('be.visible'); + cy.get('#vesselLengthInput').type('1'); + cy.get('#vesselRadiusInput').type('1'); + cy.get('#vesselStenosisDiameterInput').type('0'); + cy.get('#submitVesselButton').click(); + + // Make sure the node was added + cy.get('.draggable').should('have.length', 2); + + cy.get('.draggable').first().drag('.draggable:eq(1)', { force: true }).then(() => { + cy.get('.draggable').eq(1).then($node2 => { + const rect2 = $node2[0].getBoundingClientRect(); + cy.get('body').trigger('mouseup', { + which: 1, + clientX: rect2.x + rect2.width / 2, + clientY: rect2.y + rect2.height / 2, + force: true + }); + + }); + }); + cy.get('#node-name').clear(); + + // Create a BC + cy.get("#node-type").select("boundary_condition").invoke("val").should("eq", "boundary_condition"); + // Select Inflow + cy.get("#boundary-condition-type").select("RESISTANCE").invoke("val").should("eq", "RESISTANCE"); + // type node name + cy.get('#node-name').type('OUT'); + + cy.get('body').click(220, 500); + + // Make sure the node was added + cy.get('.draggable').should('have.length', 3); + + cy.get('.draggable').eq(1).drag('.draggable:eq(2)', { force: true }).then(() => { + cy.get('.draggable').eq(2).then($node3 => { + const rect3 = $node3[0].getBoundingClientRect(); + cy.get('body').trigger('mouseup', { + which: 1, + clientX: rect3.x + rect3.width / 2, + clientY: rect3.y + rect3.height / 2, + force: true + }); + + }); + }); + + // Listen for window alerts and fail the test if any alert is detected + cy.on('window:alert', (str) => { + throw new Error(`Unexpected alert: ${str}`); + }); + + // Click the export button + cy.get('#export-json').click(); + + }); + + it('Inflow -> Vessel -> Junction -> Vessel -> OUT', () => { + + cy.get('#SimParametersForm').should('be.visible'); + cy.get('#numcycles').type('5'); + cy.get('#numtimepts').type('5'); + cy.get('#submitSimParamButton').click(); + + // Create a BC + cy.get("#node-type").select("boundary_condition").invoke("val").should("eq", "boundary_condition"); + // Select Inflow + cy.get("#boundary-condition-type").select("FLOW").invoke("val").should("eq", "FLOW"); + // type node name + cy.get('#node-name').type('INFLOW'); + + cy.get('#draw-on').click(); + + cy.get('#cy').click(100, 100); // Coordinates for the first node + + // Make sure the node was added + cy.get('.draggable').should('have.length', 1); + + cy.get('#node-name').clear(); + + // Create a vessel + cy.get("#node-type").select("vessel").invoke("val").should("eq", "vessel"); + // type node name + cy.get('#node-name').type('vessel0'); + // add node + cy.get('#cy').click(150, 100); + cy.get('#cy').click(150, 100); + cy.get('#vesselForm').should('be.visible'); + cy.get('#vesselLengthInput').type('1'); + cy.get('#vesselRadiusInput').type('1'); + cy.get('#vesselStenosisDiameterInput').type('0'); + cy.get('#submitVesselButton').click(); + + // Make sure the node was added + cy.get('.draggable').should('have.length', 2); + + cy.get('.draggable').first().drag('.draggable:eq(1)', { force: true }).then(() => { + cy.get('.draggable').eq(1).then($node2 => { + const rect2 = $node2[0].getBoundingClientRect(); + cy.get('body').trigger('mouseup', { + which: 1, + clientX: rect2.x + rect2.width / 2, + clientY: rect2.y + rect2.height / 2, + force: true + }); + + }); + }); + + cy.get('#node-name').clear(); + // Create a junction + cy.get("#node-type").select("junction").invoke("val").should("eq", "junction"); + // type node name + cy.get('#node-name').type('J0'); + cy.get('#cy').click(250, 100) + + // Make sure the node was added + cy.get('.draggable').should('have.length', 3); + + cy.get('.draggable').eq(1).drag('.draggable:eq(2)', { force: true }).then(() => { + cy.get('.draggable').eq(2).then($node3 => { + const rect3 = $node3[0].getBoundingClientRect(); + cy.get('body').trigger('mouseup', { + which: 1, + clientX: rect3.x + rect3.width / 2, + clientY: rect3.y + rect3.height / 2, + force: true + }); + + }); + }); + + + cy.get('#node-name').clear(); + + // Create a vessel + cy.get("#node-type").select("vessel").invoke("val").should("eq", "vessel"); + // type node name + cy.get('#node-name').type('vessel1'); + // add node + cy.get('#cy').click(300, 100); + cy.get('#cy').click(300, 100); + cy.get('#vesselForm').should('be.visible'); + cy.get('#vesselLengthInput').type('1'); + cy.get('#vesselRadiusInput').type('1'); + cy.get('#vesselStenosisDiameterInput').type('0'); + cy.get('#submitVesselButton').click(); + + // Make sure the node was added + cy.get('.draggable').should('have.length', 4); + + cy.get('.draggable').eq(2).drag('.draggable:eq(3)', { force: true }).then(() => { + cy.get('.draggable').eq(2).then($node3 => { + const rect3 = $node3[0].getBoundingClientRect(); + cy.get('body').trigger('mouseup', { + which: 1, + clientX: rect3.x + rect3.width / 2, + clientY: rect3.y + rect3.height / 2, + force: true + }); + + }); + }); + + cy.get('#node-name').clear(); + + // Create a BC + cy.get("#node-type").select("boundary_condition").invoke("val").should("eq", "boundary_condition"); + // Select Inflow + cy.get("#boundary-condition-type").select("RESISTANCE").invoke("val").should("eq", "RESISTANCE"); + // type node name + cy.get('#node-name').type('OUT'); + + cy.get('#cy').click(400, 100); + + // Make sure the node was added + cy.get('.draggable').should('have.length', 5); + + cy.get('.draggable').eq(3).drag('.draggable:eq(4)', { force: true }).then(() => { + cy.get('.draggable').eq(2).then($node3 => { + const rect3 = $node3[0].getBoundingClientRect(); + cy.get('body').trigger('mouseup', { + which: 1, + clientX: rect3.x + rect3.width / 2, + clientY: rect3.y + rect3.height / 2, + force: true + }); + + }); + }); + + // Listen for window alerts and fail the test if any alert is detected + cy.on('window:alert', (str) => { + throw new Error(`Unexpected alert: ${str}`); + }); + + // Click the export button + cy.get('#export-json').click(); + + }); +}); \ No newline at end of file diff --git a/tests/cypress/package-lock.json b/tests/cypress/package-lock.json new file mode 100644 index 000000000..aeb36f2ee --- /dev/null +++ b/tests/cypress/package-lock.json @@ -0,0 +1,1967 @@ +{ + "name": "svzerodsolver", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "svzerodsolver", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "aggregate-error": "^3.1.0", + "ansi-colors": "^4.1.3", + "ansi-escapes": "^4.3.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^4.3.0", + "arch": "^2.2.0", + "asn1": "^0.2.6", + "assert-plus": "^1.0.0", + "astral-regex": "^2.0.0", + "async": "^3.2.5", + "asynckit": "^0.4.0", + "at-least-node": "^1.0.0", + "aws-sign2": "^0.7.0", + "aws4": "^1.13.1", + "base64-js": "^1.5.1", + "bcrypt-pbkdf": "^1.0.2", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.7.1", + "buffer-crc32": "^0.2.13", + "cachedir": "^2.4.0", + "call-bind": "^1.0.7", + "caseless": "^0.12.0", + "chalk": "^4.1.2", + "check-more-types": "^2.24.0", + "ci-info": "^3.9.0", + "clean-stack": "^2.2.0", + "cli-cursor": "^3.1.0", + "cli-table3": "^0.6.5", + "cli-truncate": "^2.1.0", + "color-convert": "^2.0.1", + "color-name": "^1.1.4", + "colorette": "^2.0.20", + "combined-stream": "^1.0.8", + "commander": "^6.2.1", + "common-tags": "^1.8.2", + "core-util-is": "^1.0.2", + "cross-spawn": "^7.0.3", + "dashdash": "^1.14.1", + "dayjs": "^1.11.12", + "debug": "^4.3.6", + "define-data-property": "^1.1.4", + "delayed-stream": "^1.0.0", + "ecc-jsbn": "^0.1.2", + "emoji-regex": "^8.0.0", + "end-of-stream": "^1.4.4", + "enquirer": "^2.4.1", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "escape-string-regexp": "^1.0.5", + "eventemitter2": "^6.4.7", + "execa": "^4.1.0", + "executable": "^4.1.1", + "extend": "^3.0.2", + "extract-zip": "^2.0.1", + "extsprintf": "^1.3.0", + "fd-slicer": "^1.1.0", + "figures": "^3.2.0", + "forever-agent": "^0.6.1", + "form-data": "^2.3.3", + "fs-extra": "^9.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "get-stream": "^5.2.0", + "getos": "^3.2.1", + "getpass": "^0.1.7", + "global-dirs": "^3.0.1", + "gopd": "^1.0.1", + "graceful-fs": "^4.2.11", + "has-flag": "^4.0.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "http-signature": "^1.3.6", + "human-signals": "^1.1.1", + "ieee754": "^1.2.1", + "indent-string": "^4.0.0", + "ini": "^2.0.0", + "is-ci": "^3.0.1", + "is-fullwidth-code-point": "^3.0.0", + "is-installed-globally": "^0.4.0", + "is-path-inside": "^3.0.3", + "is-stream": "^2.0.1", + "is-typedarray": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "isexe": "^2.0.0", + "isstream": "^0.1.2", + "jsbn": "^0.1.1", + "json-schema": "^0.4.0", + "json-stringify-safe": "^5.0.1", + "jsonfile": "^6.1.0", + "jsprim": "^2.0.2", + "lazy-ass": "^1.6.0", + "listr2": "^3.14.0", + "lodash": "^4.17.21", + "lodash.once": "^4.1.1", + "log-symbols": "^4.1.0", + "log-update": "^4.0.0", + "merge-stream": "^2.0.0", + "mime-db": "^1.52.0", + "mime-types": "^2.1.35", + "mimic-fn": "^2.1.0", + "minimist": "^1.2.8", + "ms": "^2.1.2", + "npm-run-path": "^4.0.1", + "object-inspect": "^1.13.2", + "once": "^1.4.0", + "onetime": "^5.1.2", + "ospath": "^1.2.2", + "p-map": "^4.0.0", + "path-key": "^3.1.1", + "pend": "^1.2.0", + "performance-now": "^2.1.0", + "pify": "^2.3.0", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "^1.0.0", + "psl": "^1.9.0", + "pump": "^3.0.0", + "punycode": "^2.3.1", + "qs": "^6.10.4", + "querystringify": "^2.2.0", + "request-progress": "^3.0.0", + "requires-port": "^1.0.0", + "restore-cursor": "^3.1.0", + "rfdc": "^1.4.1", + "rxjs": "^7.8.1", + "safe-buffer": "^5.2.1", + "safer-buffer": "^2.1.2", + "semver": "^7.6.3", + "set-function-length": "^1.2.2", + "shebang-command": "^2.0.0", + "shebang-regex": "^3.0.0", + "side-channel": "^1.0.6", + "signal-exit": "^3.0.7", + "slice-ansi": "^3.0.0", + "sshpk": "^1.18.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "strip-final-newline": "^2.0.0", + "supports-color": "^8.1.1", + "throttleit": "^1.0.1", + "through": "^2.3.8", + "tmp": "^0.2.3", + "tough-cookie": "^4.1.4", + "tslib": "^2.6.3", + "tunnel-agent": "^0.6.0", + "tweetnacl": "^0.14.5", + "type-fest": "^0.21.3", + "undici-types": "^6.13.0", + "universalify": "^2.0.1", + "untildify": "^4.0.0", + "url-parse": "^1.5.10", + "uuid": "^8.3.2", + "verror": "^1.10.0", + "which": "^2.0.2", + "wrap-ansi": "^7.0.0", + "wrappy": "^1.0.2", + "yauzl": "^2.10.0" + }, + "devDependencies": { + "@4tw/cypress-drag-drop": "^2.2.5", + "cypress": "^13.13.2" + } + }, + "node_modules/@4tw/cypress-drag-drop": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@4tw/cypress-drag-drop/-/cypress-drag-drop-2.2.5.tgz", + "integrity": "sha512-3ghTmzhOmUqeN6U3QmUnKRUxI7OMLbJA4hHUY/eS/FhWJgxbiGgcaELbolWnBAOpajPXcsNQGYEj9brd59WH6A==", + "dev": true, + "peerDependencies": { + "cypress": "2 - 13" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@types/node": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.2.0.tgz", + "integrity": "sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==", + "optional": true, + "dependencies": { + "undici-types": "~6.13.0" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", + "dev": true + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.1.tgz", + "integrity": "sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cypress": { + "version": "13.13.2", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.2.tgz", + "integrity": "sha512-PvJQU33933NvS1StfzEb8/mu2kMy4dABwCF+yd5Bi7Qly1HOVf+Bufrygee/tlmty/6j5lX+KIi8j9Q3JUMbhA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^3.0.1", + "@cypress/xvfb": "^1.2.4", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.7.1", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.1", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.3", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dayjs": { + "version": "1.11.12", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz", + "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==" + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eventemitter2": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==" + }, + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "engines": { + "node": "> 0.8" + } + }, + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==" + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/throttleit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", + "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/undici-types": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz", + "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/tests/cypress/package.json b/tests/cypress/package.json new file mode 100644 index 000000000..f56313efe --- /dev/null +++ b/tests/cypress/package.json @@ -0,0 +1,185 @@ +{ + "name": "svzerodsolver", + "version": "1.0.0", + "description": "

svZeroDSolver

", + "main": "cypress.config.js", + "directories": { + "doc": "docs", + "test": "tests" + }, + "dependencies": { + "aggregate-error": "^3.1.0", + "ansi-colors": "^4.1.3", + "ansi-escapes": "^4.3.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^4.3.0", + "arch": "^2.2.0", + "asn1": "^0.2.6", + "assert-plus": "^1.0.0", + "astral-regex": "^2.0.0", + "async": "^3.2.5", + "asynckit": "^0.4.0", + "at-least-node": "^1.0.0", + "aws-sign2": "^0.7.0", + "aws4": "^1.13.1", + "base64-js": "^1.5.1", + "bcrypt-pbkdf": "^1.0.2", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.7.1", + "buffer-crc32": "^0.2.13", + "cachedir": "^2.4.0", + "call-bind": "^1.0.7", + "caseless": "^0.12.0", + "chalk": "^4.1.2", + "check-more-types": "^2.24.0", + "ci-info": "^3.9.0", + "clean-stack": "^2.2.0", + "cli-cursor": "^3.1.0", + "cli-table3": "^0.6.5", + "cli-truncate": "^2.1.0", + "color-convert": "^2.0.1", + "color-name": "^1.1.4", + "colorette": "^2.0.20", + "combined-stream": "^1.0.8", + "commander": "^6.2.1", + "common-tags": "^1.8.2", + "core-util-is": "^1.0.2", + "cross-spawn": "^7.0.3", + "dashdash": "^1.14.1", + "dayjs": "^1.11.12", + "debug": "^4.3.6", + "define-data-property": "^1.1.4", + "delayed-stream": "^1.0.0", + "ecc-jsbn": "^0.1.2", + "emoji-regex": "^8.0.0", + "end-of-stream": "^1.4.4", + "enquirer": "^2.4.1", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "escape-string-regexp": "^1.0.5", + "eventemitter2": "^6.4.7", + "execa": "^4.1.0", + "executable": "^4.1.1", + "extend": "^3.0.2", + "extract-zip": "^2.0.1", + "extsprintf": "^1.3.0", + "fd-slicer": "^1.1.0", + "figures": "^3.2.0", + "forever-agent": "^0.6.1", + "form-data": "^2.3.3", + "fs-extra": "^9.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "get-stream": "^5.2.0", + "getos": "^3.2.1", + "getpass": "^0.1.7", + "global-dirs": "^3.0.1", + "gopd": "^1.0.1", + "graceful-fs": "^4.2.11", + "has-flag": "^4.0.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "http-signature": "^1.3.6", + "human-signals": "^1.1.1", + "ieee754": "^1.2.1", + "indent-string": "^4.0.0", + "ini": "^2.0.0", + "is-ci": "^3.0.1", + "is-fullwidth-code-point": "^3.0.0", + "is-installed-globally": "^0.4.0", + "is-path-inside": "^3.0.3", + "is-stream": "^2.0.1", + "is-typedarray": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "isexe": "^2.0.0", + "isstream": "^0.1.2", + "jsbn": "^0.1.1", + "json-schema": "^0.4.0", + "json-stringify-safe": "^5.0.1", + "jsonfile": "^6.1.0", + "jsprim": "^2.0.2", + "lazy-ass": "^1.6.0", + "listr2": "^3.14.0", + "lodash": "^4.17.21", + "lodash.once": "^4.1.1", + "log-symbols": "^4.1.0", + "log-update": "^4.0.0", + "merge-stream": "^2.0.0", + "mime-db": "^1.52.0", + "mime-types": "^2.1.35", + "mimic-fn": "^2.1.0", + "minimist": "^1.2.8", + "ms": "^2.1.2", + "npm-run-path": "^4.0.1", + "object-inspect": "^1.13.2", + "once": "^1.4.0", + "onetime": "^5.1.2", + "ospath": "^1.2.2", + "p-map": "^4.0.0", + "path-key": "^3.1.1", + "pend": "^1.2.0", + "performance-now": "^2.1.0", + "pify": "^2.3.0", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "^1.0.0", + "psl": "^1.9.0", + "pump": "^3.0.0", + "punycode": "^2.3.1", + "qs": "^6.10.4", + "querystringify": "^2.2.0", + "request-progress": "^3.0.0", + "requires-port": "^1.0.0", + "restore-cursor": "^3.1.0", + "rfdc": "^1.4.1", + "rxjs": "^7.8.1", + "safe-buffer": "^5.2.1", + "safer-buffer": "^2.1.2", + "semver": "^7.6.3", + "set-function-length": "^1.2.2", + "shebang-command": "^2.0.0", + "shebang-regex": "^3.0.0", + "side-channel": "^1.0.6", + "signal-exit": "^3.0.7", + "slice-ansi": "^3.0.0", + "sshpk": "^1.18.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "strip-final-newline": "^2.0.0", + "supports-color": "^8.1.1", + "throttleit": "^1.0.1", + "through": "^2.3.8", + "tmp": "^0.2.3", + "tough-cookie": "^4.1.4", + "tslib": "^2.6.3", + "tunnel-agent": "^0.6.0", + "tweetnacl": "^0.14.5", + "type-fest": "^0.21.3", + "undici-types": "^6.13.0", + "universalify": "^2.0.1", + "untildify": "^4.0.0", + "url-parse": "^1.5.10", + "uuid": "^8.3.2", + "verror": "^1.10.0", + "which": "^2.0.2", + "wrap-ansi": "^7.0.0", + "wrappy": "^1.0.2", + "yauzl": "^2.10.0" + }, + "devDependencies": { + "@4tw/cypress-drag-drop": "^2.2.5", + "cypress": "^13.13.2" + }, + "scripts": { + "start": "echo 'Flask app is already running'", + "cypress:open": "cypress open --config-file tests/cypress/cypress.config.js", + "cypress:run": "cypress run --config-file tests/cypress/cypress.config.js", + "test": "npm run cypress:run" + }, + "keywords": [], + "author": "", + "license": "ISC" +} From bb574cfad540a6c9f5969db3a790c3712e4c2dca Mon Sep 17 00:00:00 2001 From: Karthik Menon <40070586+menon-karthik@users.noreply.github.com> Date: Wed, 4 Sep 2024 12:40:59 -0700 Subject: [PATCH 05/10] Update docs for svZeroDVisualization and svZeroDGUI (#129) --- docs/Doxyfile | 1 + docs/pages/GUI.md | 31 +++++++++------- docs/pages/developer_guide.md | 2 +- docs/pages/main.md | 26 ++++++++++---- docs/pages/visualization.md | 67 +++++++++++++++++------------------ 5 files changed, 71 insertions(+), 56 deletions(-) diff --git a/docs/Doxyfile b/docs/Doxyfile index 59fff9b0a..ec63bc96f 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -174,6 +174,7 @@ GENERATE_CHI = NO CHM_INDEX_ENCODING = BINARY_TOC = NO TOC_EXPAND = NO +TOC_INCLUDE_HEADINGS = 1 GENERATE_QHP = NO QCH_FILE = QHP_NAMESPACE = org.doxygen.Project diff --git a/docs/pages/GUI.md b/docs/pages/GUI.md index cb3dbaa45..7e4507285 100644 --- a/docs/pages/GUI.md +++ b/docs/pages/GUI.md @@ -29,22 +29,27 @@ generating and managing 0D input files through a graphical interface. # How to Use -1. Navigate to the `applications` folder and then to the `create_0dmodel` subdirectory. -2. Launch the `app.py` file. -```bash -python applications/svZeroDGUI/app.py -``` -3. Select a node type and name the node. -- For vessels, after drawing the node, click on it to open a form +1. Create a virtual environment with the required `flask` dependency. If using `conda`, use the below commands: + ```bash + conda create -n svZeroDGUI python=3.10 flask + conda activate svZeroDGUI + ``` +2. Navigate to the `applications` folder and then to the `create_0dmodel` subdirectory. +3. Launch the `app.py` file. + ```bash + python applications/svZeroDGUI/app.py + ``` +4. Select a node type and name the node. + - For vessels, after drawing the node, click on it to open a form where you can enter details such as vessel length, diameter, and more. -- For junctions, click the node to specify if it’s a Normal Junction -or a Blood Vessel junction. -4. To draw edges between nodes, toggle the `Draw on` button on the right. + - For junctions, click the node to specify if it’s a Normal %Junction +or a Blood Vessel %Junction. +5. To draw edges between nodes, toggle the `Draw on` button on the right. Once active, you can start connecting nodes by drawing edges between them. -5. When you wish to stop drawing edges and continue adding or moving nodes, +6. When you wish to stop drawing edges and continue adding or moving nodes, click the `Draw off` button. -6. Once you’ve completed the network, click `Export to JSON` on the right. +7. Once you’ve completed the network, click `Export to JSON` on the right. If there are any incorrect connections or patterns, an alert will prompt you to make necessary changes so the network can be processed by svZeroDSolver. -7. Open the downloaded JSON file and add any additional information, +8. Open the downloaded JSON file and add any additional information, such as boundary condition data, before running it through svZeroDSolver. diff --git a/docs/pages/developer_guide.md b/docs/pages/developer_guide.md index 230f5341e..8fe1f8d3f 100644 --- a/docs/pages/developer_guide.md +++ b/docs/pages/developer_guide.md @@ -54,7 +54,7 @@ The modular architecture of svZeroDSolver relies on "blocks", such as blood vess Detailed steps required to implement a new block in svZeroDSolver are available [here](@ref add_block). -Steps required to visualize a new block with svZeroDSolver Visualization application are available [here](@ref visualization)." +Steps required to visualize a new block with svZeroDSolver Visualization application are available [here](@ref visualization). # Code Style diff --git a/docs/pages/main.md b/docs/pages/main.md index 295e5960e..84fda888b 100644 --- a/docs/pages/main.md +++ b/docs/pages/main.md @@ -18,8 +18,11 @@ quantification, etc. blood vessel parameters to recapitulate given time-varying flow and pressure measurements (for example, from a high-fidelity 3D simulation). This allows users to build accurate 0D models that reflect observed hemodynamics. -* The svZeroDVisualization application enables users to visualize their 0D network and interactively select nodes to view simulation results. -* The svZeroDGUI application allows users to generate input files for svZeroDSolver by drawing the network on an easy-to-use GUI. This provides an alternative to manually creating files and is useful for users without access to a 3D model. +* The svZeroDVisualization application enables users to visualize their 0D network and +interactively select nodes to view simulation results. +* The svZeroDGUI application allows users to generate input files for svZeroDSolver by +drawing the network on an easy-to-use GUI. This provides an alternative to manually +creating files and is useful for users without access to a 3D model. Zero-dimensional (0D) models @@ -98,11 +101,6 @@ cmake --build . -# Developer Guide - -If you are a developer and want to contribute to svZeroDSolver, you can find -more helpful information in our [Developer Guide](@ref developer_guide). - # svZeroDSolver - Quick User Guide svZeroDSolver can be used to run zero-dimensional (0D) cardiovascular @@ -382,6 +380,15 @@ When the outputs are written in the variable-based and vessel-based forms, the u The number of timesteps between each time the output is written is specified by `output_interval`. By default, output is written at every time step. +# Graphical User Interfaces - Quick User Guide + +The svZeroDSolver package includes two graphical interfaces - svZeroDVisualization and svZeroDGUI. + +The svZeroDVisualization application allows users visualize the connectivity of 0D models and the simulated hemodynamics in each block. A user guide is available [here](@ref visualization). + +The svZeroDGUI application allows users to create 0D models using an interactive drag-drop graphical interface. Details are available [here](@ref GUI). + + # svZeroDCalibrator - Quick User Guide svZeroDCalibrator can be used to calibrate cardiovascular 0D models (i.e. infer optimal @@ -454,3 +461,8 @@ maximum_iterations | Maximum calibration iterations calibrate_stenosis_coefficient | Toggle whether stenosis coefficient should be calibrated | True set_capacitance_to_zero | Toggle whether all capacitances should be manually set to zero | False initial_damping_factor | Initial damping factor for Levenberg-Marquardt optimization | 1.0 + +# Developer Guide + +If you are a developer and want to contribute to svZeroDSolver, you can find +more helpful information in our [Developer Guide](@ref developer_guide). diff --git a/docs/pages/visualization.md b/docs/pages/visualization.md index 786270cc2..3ef1269be 100644 --- a/docs/pages/visualization.md +++ b/docs/pages/visualization.md @@ -16,46 +16,43 @@ svZeroDVisualization is built using a robust architecture that includes: # Installing Dependencies 1. We recommend using a virtual environment to help manage project-specific dependencies and avoid conflicts with other projects. -- Using venv: -```bash -python -m venv venv -source venv/bin/activate # On Windows use `venv\Scripts\activate` -``` -- Using Conda: -```bash -conda create --name myenv python=3.12 # Replace with your desired Python version -conda activate myenv -``` + - Using venv: + ```bash + python -m venv venv + source venv/bin/activate # On Windows use `venv\Scripts\activate` + ``` + - Using Conda: + ```bash + conda create --name myenv python=3.12 # Replace with your desired Python version + conda activate myenv + ``` 2. Install the necessary packages: -```bash -pysvzerod -pandas -matplotlib -networkx -dash -plotly -numpy -argparse -``` + ```bash + pysvzerod + pandas + matplotlib + networkx + dash + plotly + numpy + argparse + ``` # How to Use Note: Files related to this application are in the `applications`folder, within the `dirgraph_visualization` subdirectory. - -1. Command Line Execution: Pass the filepath to your input JSON file and the output_directory where you want the visualization to be saved as command line arguments. -Pass a third argument `export_csv` optionally if you want to save svZeroDSolver raw output. - - The program will execute svZeroDSolver, generate a directed graph visualization of your network, parse simulation results, - and display the results along with the corresponding nodes on a local Flask server. - -```bash -python applications/svZeroDVisualization/visualize_simulation.py 'tests/cases/chamber_elastance_inductor.json' './output/circuit_img/dir_graph' -``` +1. Command line execution: Pass the file path to your input JSON file and the output directory where you want the visualization to be saved as command line arguments. + - Pass a third argument `export_csv` optionally if you want to save svZeroDSolver raw output. + - The program will execute svZeroDSolver, generate a directed graph visualization of your network, parse simulation results, and display the results along with the corresponding nodes on a local Flask server. + ```bash + python applications/svZeroDVisualization/visualize_simulation.py 'tests/cases/chamber_elastance_inductor.json' './output/circuit_img/dir_graph' + ``` 2. Once the server is open, you can click on a node to inspect further. -The data for that node will be displayed, including the simulation parameters input for that node, pressure/flow data, and any internal variables if present. - - Additional features include the ability to download figures and use the trace function + - The data for that node will be displayed, including the simulation parameters input for that node, pressure/flow data, and any internal variables if present. + - Additional features include the ability to download figures and use the trace function for more detailed inspection of network elements. The trace feature allows users to filter the view by specific element types, such as isolating and examining only the blood vessels or identifying the locations of the chambers within the network. This functionality enhances the @@ -67,7 +64,7 @@ The data for that node will be displayed, including the simulation parameters in - When parsing the JSON file, ensure that the new block type is included. - Update the `load_json_input_file` function to create a new pandas DataFrame for the new block type. -2. **Create a New Function for the Block Type**: +2. **Create a New Function for the %Block Type**: - Develop a function that processes the new block type. This function should take in: - `d` (the dictionary of parameters loaded from the JSON file) - Any relevant DataFrames (e.g., `df_vessels`, `junctions_expanded`) @@ -76,12 +73,12 @@ The data for that node will be displayed, including the simulation parameters in - Iterate through potential connectors for the new block type. - For each connector, update the `connecting_block_list` and determine the `flow_directions` (use +1 for downstream and -1 for upstream). -3. **Update the Parameter Dictionary**: +3. **Update the %Parameter Dictionary**: - Add the newly created blocks to the `d["blocks"]` dictionary. 4. **Update Existing Functions**: -- Ensure that the new block type is integrated into the existing block structure, allowing it to interact with other components in the visualization. -- For instance, if the new block type can be connected to vessels, make sure to update functions like `create_vessel_blocks` to handle connections involving the new block type. + - Ensure that the new block type is integrated into the existing block structure, allowing it to interact with other components in the visualization. + - For instance, if the new block type can be connected to vessels, make sure to update functions like `create_vessel_blocks` to handle connections involving the new block type. This includes updating any relevant functions that create or manage connections between blocks. By following these steps, you will ensure that the new block type is properly parsed, processed, and integrated into the visualization system. From edd6156c07f12cf0a1fadf973768343dbba478c8 Mon Sep 17 00:00:00 2001 From: Karthik Menon <40070586+menon-karthik@users.noreply.github.com> Date: Mon, 23 Sep 2024 16:08:47 -0700 Subject: [PATCH 06/10] Fix OpenLoopCoronary equations (#125) --- .gitignore | 2 +- CMakeLists.txt | 1 + applications/svzerodsolver.cpp | 8 ++++-- src/model/Block.cpp | 3 +++ src/model/Block.h | 10 ++++++++ src/model/Model.cpp | 9 +++++++ src/model/Model.h | 7 ++++++ src/model/OpenLoopCoronaryBC.cpp | 36 ++++++++++++++++++++------ src/model/OpenLoopCoronaryBC.h | 43 ++++++++++++++++++++++---------- src/model/WindkesselBC.h | 4 +-- src/solve/Solver.cpp | 6 ++++- 11 files changed, 103 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index 2fa074b08..452a15fa1 100644 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,7 @@ Release*/ Debug*/ externals/ *.so -build +build*/ # IDE .cproject diff --git a/CMakeLists.txt b/CMakeLists.txt index a098e9632..8248b0818 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -148,6 +148,7 @@ add_executable(svzerodsolver applications/svzerodsolver.cpp ) add_executable(svzerodcalibrator applications/svzerodcalibrator.cpp + $ $ $ ) diff --git a/applications/svzerodsolver.cpp b/applications/svzerodsolver.cpp index 691ddbb24..6ebe1f821 100644 --- a/applications/svzerodsolver.cpp +++ b/applications/svzerodsolver.cpp @@ -61,6 +61,7 @@ int main(int argc, char* argv[]) { } std::string input_file_name = argv[1]; + std::string output_file_path; std::string output_file_name; if (argc == 3) { @@ -73,12 +74,15 @@ int main(int argc, char* argv[]) { if (end_of_path == std::string::npos) { end_of_path = input_file_name.rfind("\\"); // For Windows paths (?) + // If is still not found, use current directory if (end_of_path == std::string::npos) { - throw std::runtime_error("Error: No output file path provided. Tried to create a default output file but could not find the simulation directory from the input JSON file path."); + output_file_path = "."; } + } else { + output_file_path = input_file_name.substr(0, end_of_path); } - output_file_name = input_file_name.substr(0, end_of_path) + "/output.csv"; + output_file_name = output_file_path + "/output.csv"; std::cout << "[svzerodsolver] Output will be written to '" << output_file_name << "'." << std::endl;; } diff --git a/src/model/Block.cpp b/src/model/Block.cpp index 4e042943c..6ae0487e6 100644 --- a/src/model/Block.cpp +++ b/src/model/Block.cpp @@ -72,6 +72,9 @@ void Block::setup_dofs(DOFHandler &dofhandler) {} void Block::setup_model_dependent_params() {} +void Block::setup_initial_state_dependent_params( + State initial_state, std::vector ¶meters) {} + void Block::update_constant(SparseSystem &system, std::vector ¶meters) {} diff --git a/src/model/Block.h b/src/model/Block.h index 1f667c7f3..b4b556dba 100644 --- a/src/model/Block.h +++ b/src/model/Block.h @@ -43,6 +43,7 @@ #include "DOFHandler.h" #include "Parameter.h" #include "SparseSystem.h" +#include "State.h" /** * @brief The number of triplets that the element contributes @@ -227,6 +228,15 @@ class Block { */ virtual void setup_model_dependent_params(); + /** + * @brief Setup parameters that depend on the initial state + * + * @param initial_state The initial state of the system + * @param parameters The parameter values vector (at time 0) + */ + virtual void setup_initial_state_dependent_params( + State initial_state, std::vector ¶meters); + /** * @brief Update the constant contributions of the element in a sparse system * diff --git a/src/model/Model.cpp b/src/model/Model.cpp index 88210e0f1..1c51c96ab 100644 --- a/src/model/Model.cpp +++ b/src/model/Model.cpp @@ -254,6 +254,7 @@ void Model::to_steady() { param.to_steady(); } + // Special handling for time-varying capacitance for (size_t i = 0; i < get_num_blocks(true); i++) { get_block(i)->steady = true; if ((block_types[i] == BlockType::windkessel_bc) || @@ -289,6 +290,14 @@ TripletsContributions Model::get_num_triplets() const { return triplets_sum; } +void Model::setup_initial_state_dependent_parameters(State initial_state) { + DEBUG_MSG("Setup initial state dependent parameters"); + for (auto &block : blocks) { + block->setup_initial_state_dependent_params(initial_state, + parameter_values); + } +} + void Model::update_has_windkessel_bc(bool has_windkessel) { has_windkessel_bc = has_windkessel; } diff --git a/src/model/Model.h b/src/model/Model.h index 7aff5ea6d..25daf4581 100644 --- a/src/model/Model.h +++ b/src/model/Model.h @@ -60,6 +60,7 @@ #include "PressureReferenceBC.h" #include "ResistanceBC.h" #include "ResistiveJunction.h" +#include "State.h" #include "ValveTanh.h" #include "WindkesselBC.h" #include "debug.h" @@ -334,6 +335,12 @@ class Model { * @return double Largest Windkessel time constant of model */ double get_largest_windkessel_time_constant(); + /** + * @brief Setup model parameters that depend on the initial state + * + * @param initial_state The initial state vector + */ + void setup_initial_state_dependent_parameters(State initial_state); private: int block_count = 0; diff --git a/src/model/OpenLoopCoronaryBC.cpp b/src/model/OpenLoopCoronaryBC.cpp index 7304f16d4..4572db043 100644 --- a/src/model/OpenLoopCoronaryBC.cpp +++ b/src/model/OpenLoopCoronaryBC.cpp @@ -43,10 +43,10 @@ void OpenLoopCoronaryBC::update_constant(SparseSystem &system, auto Cim = parameters[global_param_ids[4]]; if (steady) { - // Different assmembly for steady block to avoid singular system - // and solve for the internal variable V_im inherently - system.F.coeffRef(global_eqn_ids[0], global_var_ids[0]) = -Cim; - system.F.coeffRef(global_eqn_ids[0], global_var_ids[1]) = Cim * (Ra + Ram); + // Different equations for steady initial condition + // Equations are: + // -P_in + (Ra+Ram+Rv)Q_in + Pv = 0 + // V_im = 0 system.F.coeffRef(global_eqn_ids[0], global_var_ids[2]) = 1.0; system.F.coeffRef(global_eqn_ids[1], global_var_ids[0]) = -1.0; system.F.coeffRef(global_eqn_ids[1], global_var_ids[1]) = Ra + Ram + Rv; @@ -74,10 +74,32 @@ void OpenLoopCoronaryBC::update_time(SparseSystem &system, auto Pv = parameters[global_param_ids[6]]; if (steady) { - system.C(global_eqn_ids[0]) = -Cim * Pim; system.C(global_eqn_ids[1]) = Pv; } else { - system.C(global_eqn_ids[0]) = Cim * (-Pim + Pv); - system.C(global_eqn_ids[1]) = -Cim * (Rv + Ram) * Pim + Ram * Cim * Pv; + system.C(global_eqn_ids[0]) = + Cim * (-Pim + Pv + this->Pim_0 - this->P_Cim_0); + system.C(global_eqn_ids[1]) = + (Ram * Cim * Pv) - + Cim * (Rv + Ram) * (Pim + this->P_Cim_0 - this->Pim_0); } } + +void OpenLoopCoronaryBC::setup_initial_state_dependent_params( + State initial_state, std::vector ¶meters) { + auto P_in = initial_state.y[global_var_ids[0]]; + auto Q_in = initial_state.y[global_var_ids[1]]; + auto P_in_dot = initial_state.ydot[global_var_ids[0]]; + auto Q_in_dot = initial_state.ydot[global_var_ids[1]]; + auto Ra = parameters[global_param_ids[0]]; + auto Ram = parameters[global_param_ids[1]]; + auto Ca = parameters[global_param_ids[3]]; + // Pressure proximal to Ca and distal to Ra + auto P_Ca = P_in - Ra * Q_in; + auto P_Ca_dot = P_in_dot - Ra * Q_in_dot; + // Flow into Ram (inflow minus flow into Ca) + auto Q_am = Q_in - Ca * P_Ca_dot; + // Pressure proximal to Cim/Vim and distal to Ram + this->P_Cim_0 = P_Ca - Ram * Q_am; + // Initial intramyocardial pressure + this->Pim_0 = parameters[global_param_ids[5]]; +} diff --git a/src/model/OpenLoopCoronaryBC.h b/src/model/OpenLoopCoronaryBC.h index a8d2da785..d76e26f44 100644 --- a/src/model/OpenLoopCoronaryBC.h +++ b/src/model/OpenLoopCoronaryBC.h @@ -45,8 +45,9 @@ * \begin{circuitikz} \draw * node[left] {$Q_{in}$} [-latex] (0,0) -- (0.8,0); * \draw (1,0) node[anchor=south]{$P_{in}$} - * to [R, l=$R_a$, *-] (3,0) + * to [R, l=$R_a$, *-*] (3,0) * to [R, l=$R_{am}$, -] (5,0) + * node[anchor=south]{$P_{cim}$} * to [R, l=$R_v$, *-*] (7,0) * node[anchor=south]{$P_{v}$} * (5,0) to [C, l=$C_{im} \;V_{im}$, -*] (5,-1.5) @@ -58,16 +59,18 @@ * * ### Governing equations * - * \f[ - * C_{i m} R_{v} Q_{in}-V_{i m}-C_{i m} P_{i m}+C_{i m} P_{v}-C_{i m} R_{v} - * \frac{d V_{i m}}{d t}-C_{a} C_{i m} R_{v} \frac{d P_{in}}{d t}+R_{a} C_{a} - * C_{i m} R_{v} \frac{d Q_{in}}{d t}+C_{a} C_{i m} R_{v} \frac{d P_{a}}{d - * t}=0 \f] + * \f{eqnarray*}{ + * &C_{i m} R_{v} Q_{in}-V_{i m}+C_{i m} \left(-P_{c i m}(0)+P_{i m}(0)-P_{i + * m}+P_{v}\right)-C_{i m} R_{v} \frac{d V_{i m}}{d t}-C_{a} C_{i m} R_{v} + * \frac{d P_{in}}{d t}+R_{a} C_{a} C_{i m} R_{v} \frac{d Q_{in}}{d t}\\ &+C_{a} + * C_{i m} R_{v} \frac{d P_{a}}{d t}=0 + * \f} * - * \f[ - * C_{i m} R_v P^{e}-C_{i m} R_{v} R_{a} Q^{e}-R_{v} V_{i m}^{e}-C_{i m} R_{v} - * P_{i m}-C_{i m} R_{v} R_{a m} \frac{d V_{i m}^{e}}{d t}-R_{a m} V_{i - * m}^{e}-C_{i m} R_{a m} P_{i m}+R_{a m} C_{i m} P_{v}=0 \f] + * \f{eqnarray*}{ + * &C_{i m} R_v P_{in}-C_{i m} R_{v} R_{a} Q_{in}-R_{v} V_{i m}-C_{i + * m}\left(R_{v}+R_{a m}\right) \left(P_{c i m}(0)-P_{i m}(0)+P_{i + * m}\right)-C_{i m} R_{v} R_{a m} \frac{d V_{i m}}{d t} \\ &-R_{a m} V_{i + * m}+R_{a m} C_{i m} P_{v}=0 \f} * * ### Local contributions * @@ -85,9 +88,10 @@ * & -C_{i m} R_{v} R_{a} & -\left(R_{v}+R_{a m}\right)\end{array}\right] \f] * * \f[ - * \mathbf{c}^{e}=\left[\begin{array}{c}C_{i m}\left(-P_{i m}+P_{v}\right)+C_{a} - * C_{i m} R_{v} \frac{d P_{a}}{d t} \\-C_{i m}\left(R_{v}+R_{a m}\right) P_{i - * m}+R_{a m} C_{i m} P_{v}\end{array}\right] \f] + * \mathbf{c}^{e}=\left[\begin{array}{c}C_{i m}\left(-P_{i m}+P_{i m}(0)-P_{c i + * m}(0)+P_{v}\right)+C_{a} C_{i m} R_{v} \frac{d P_{a}}{d t} \\-C_{i + * m}\left(R_{v} + R_{a m}\right)\left(P_{cim}(0)-P_{i m}(0)+P_{i m}\right)+R_{a + * m} C_{i m} P_{v}\end{array}\right] \f] * * Assume \f$P_a=0\f$. * @@ -143,6 +147,15 @@ class OpenLoopCoronaryBC : public Block { */ void setup_dofs(DOFHandler &dofhandler); + /** + * @brief Setup parameters that depend on the initial state + * + * @param initial_state The initial state of the system + * @param parameters The parameter values vector (at time 0) + */ + void setup_initial_state_dependent_params(State initial_state, + std::vector ¶meters); + /** * @brief Update the constant contributions of the element in a sparse system * @@ -167,6 +180,10 @@ class OpenLoopCoronaryBC : public Block { * (relevant for sparse memory reservation) */ TripletsContributions num_triplets{5, 4, 0}; + + protected: + double P_Cim_0 = 0; ///< Pressure proximal to Cim/Vim at initial state + double Pim_0 = 0; ///< Pim at initial state }; #endif // SVZERODSOLVER_MODEL_OPENLOOPCORONARYBC_HPP_ diff --git a/src/model/WindkesselBC.h b/src/model/WindkesselBC.h index 53e9b6e70..ff4341792 100644 --- a/src/model/WindkesselBC.h +++ b/src/model/WindkesselBC.h @@ -58,11 +58,11 @@ * ### Governing equations * * \f[ - * R_{d} Q^{e}-P_{c}^{e}+P_{r e f}-R_{d} C \frac{d P_{c}^{e}}{d t}=0 + * R_{d} Q_{in}-P_{c}+P_{r e f}-R_{d} C \frac{d P_{c}}{d t}=0 * \f] * * \f[ - * P^{e}-P_{c}^{e}-R_{p} Q^{e}=0 + * P_{in}-P_{c}-R_{p} Q_{in}=0 * \f] * * ### Local contributions diff --git a/src/solve/Solver.cpp b/src/solve/Solver.cpp index a1a2e8425..1276f03ef 100644 --- a/src/solve/Solver.cpp +++ b/src/solve/Solver.cpp @@ -40,7 +40,7 @@ Solver::Solver(const nlohmann::json& config) { void Solver::run() { auto state = initial_state; - // Create steady initial + // Create steady initial condition if (simparams.sim_steady_initial) { DEBUG_MSG("Calculate steady initial condition"); double time_step_size_steady = this->model->cardiac_cycle_period / 10.0; @@ -57,6 +57,10 @@ void Solver::run() { this->model->to_unsteady(); } + // Use the initial condition (steady or user-provided) to set up parameters + // which depend on the initial condition + this->model->setup_initial_state_dependent_parameters(state); + // Set-up integrator DEBUG_MSG("Setup time integration"); Integrator integrator(this->model.get(), simparams.sim_time_step_size, From 5381b6339fd738dfdf757765fa6b20d1c55401be Mon Sep 17 00:00:00 2001 From: Nick Dorn Date: Wed, 9 Oct 2024 18:27:51 -0700 Subject: [PATCH 07/10] update docs to reflect gcc sherlock version (#130) --- docs/pages/main.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/pages/main.md b/docs/pages/main.md index 84fda888b..25e4c7cdf 100644 --- a/docs/pages/main.md +++ b/docs/pages/main.md @@ -92,10 +92,10 @@ cmake --build . **Building on Sherlock** ```bash -module load cmake/3.23.1 gcc/12.1.0 binutils/2.38 +module load cmake/3.23.1 gcc/14.2.0 binutils/2.38 mkdir Release cd Release -cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=/share/software/user/open/gcc/12.1.0/bin/g++ -DCMAKE_C_COMPILER=/share/software/user/open/gcc/12.1.0/bin/gcc .. +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=/share/software/user/open/gcc/14.2.0/bin/g++ -DCMAKE_C_COMPILER=/share/software/user/open/gcc/14.2.0/bin/gcc .. cmake --build . ``` From ad67a5aaaa65356b8bf3d70469fa11360d24abfb Mon Sep 17 00:00:00 2001 From: Karthik Menon <40070586+menon-karthik@users.noreply.github.com> Date: Sat, 12 Oct 2024 20:00:08 -0700 Subject: [PATCH 08/10] Fix svZeroDVisualization tests (#134) --- .github/workflows/test_visualization.yml | 2 +- docs/pages/developer_guide.md | 8 ++++++- docs/pages/main.md | 27 ++++++++++++----------- tests/test_dirgraph.py | 28 +++++++++++++++++++++--- 4 files changed, 47 insertions(+), 18 deletions(-) diff --git a/.github/workflows/test_visualization.yml b/.github/workflows/test_visualization.yml index 876800c30..b895662ce 100644 --- a/.github/workflows/test_visualization.yml +++ b/.github/workflows/test_visualization.yml @@ -6,7 +6,7 @@ jobs: test: strategy: matrix: - os: [ubuntu-22.04, macos-13] + os: [ubuntu-latest, macos-latest] fail-fast: false runs-on: ${{ matrix.os }} diff --git a/docs/pages/developer_guide.md b/docs/pages/developer_guide.md index 8fe1f8d3f..20b1f34ea 100644 --- a/docs/pages/developer_guide.md +++ b/docs/pages/developer_guide.md @@ -10,9 +10,15 @@ in the `src` directory and a collection of different applications in the `applications` folder. Each application is written for a different use-case of svZeroDSolver, namely: -* svZeroDCalibrator in `svzerodcalibrator.cpp` * svZerodSolver in `svzerodsolver.cpp` * Python API in `pysvzerod.cpp` +* svZeroDCalibrator in `svzerodcalibrator.cpp` +* svZeroDVisualization for visualizing 0D models and results +* svZeroDGUI for creating new 0D models grahically. + +[Architecture for svZeroDVisualization](@ref visualization). + +[Architecture for svZeroDGUI](@ref GUI). # Build in debug mode diff --git a/docs/pages/main.md b/docs/pages/main.md index 25e4c7cdf..ce6a8a146 100644 --- a/docs/pages/main.md +++ b/docs/pages/main.md @@ -334,7 +334,7 @@ Coronary outlet | OpenLoopCoronaryBC | `CORONARY` The above table describes the most commonly used boundary conditions. In addition, svZeroDSolver includes various closed-loop boundary conditions. Examples can be found in `svZeroDSolver/tests/cases`. -Note that the `FLOW` and `PRESSURE` boundary conditions accept mathematical expressions in `bc_values`. For example, values of the boundary condition can be specified as a function of time as follow: +Values of the boundary condition can be specified as a function of time as follow: ```python { "bc_name": "INFLOW", # Name of the boundary condition @@ -347,21 +347,22 @@ Note that the `FLOW` and `PRESSURE` boundary conditions accept mathematical expr ``` See `svZeroDSolver/tests/cases/pulsatileFlow_R_RCR.json` for an example. -They can also be specified as a mathematica expression as follow: -```python -{ - "bc_name": "INFLOW", # Name of the boundary condition - "bc_type": "FLOW", # Type of the boundary condition - "bc_values": { - "fn": "2.0 * (4*atan(1.)) * cos(2.0 * (4*atan(1.)) * t)" - } -}, -``` -For an example with a mathematical expression for the boundary condition, see `svZeroDSolver/tests/cases/timeDep_Flow.json`. + + + + + + + + + + + + ## Simulation Outputs -The siumulation outputs will be saved in the specified CSV file (`.csv`) when running `svZeroDSolver` from the command line as follows: +The simulation outputs will be saved in the specified CSV file (`.csv`) when running `svZeroDSolver` from the command line as follows: ```bash svzerodsolver .json .csv ``` diff --git a/tests/test_dirgraph.py b/tests/test_dirgraph.py index 2871f91b9..c67d0439a 100644 --- a/tests/test_dirgraph.py +++ b/tests/test_dirgraph.py @@ -54,8 +54,30 @@ def test_directed_graph_generation(setup_files): generated_dot_file_path = tmp_path / (os.path.splitext(os.path.basename(input_file_path))[0] + "_directed_graph.dot") - assert filecmp.cmp(generated_dot_file_path, expected_dot_file_path), \ - f"The generated dot file '{generated_dot_file_path}' does not match the expected dot file '{expected_dot_file_path}'." + # Open the expected and generated dot files to compare line-by-line + with open(generated_dot_file_path, 'r') as generated_dot_file: + with open(expected_dot_file_path, 'r') as expected_dot_file: + generated_lines = generated_dot_file.readlines() + expected_lines = expected_dot_file.readlines() + match = True + # Check if number of lines is equal in each file + if len(generated_lines) == len(expected_lines): + for line_num in range(len(generated_lines)): + # Remove spaces and other characters that should not be in the comparison + clean_generated_line = " ".join(generated_lines[line_num].split()) + clean_expected_line = " ".join(expected_lines[line_num].split()) + # Compare lines and print line that do not match + if clean_generated_line != clean_expected_line: + print("\nThe following line does not match:") + print("--- Generated dot file:", clean_generated_line) + print("--- Expected dot file:", clean_expected_line) + match = False + + else: + raise RuntimeError(f"ERROR: The generated dot file '{generated_dot_file_path}' and the expected dot file '{expected_dot_file_path}' do not have the same number of lines.") + + if not match: + raise RuntimeError(f"The generated dot file '{generated_dot_file_path}' does not match the expected dot file '{expected_dot_file_path}'.") if __name__ == "__main__": - pytest.main() \ No newline at end of file + pytest.main() From e3d4baace16bfaccb6249152761f2e05b480a848 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Sat, 12 Oct 2024 20:02:23 -0700 Subject: [PATCH 09/10] Modify CMake commands to install into svZeroDSolver. (#131) --- distribution/CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/distribution/CMakeLists.txt b/distribution/CMakeLists.txt index 874100a21..6f85beb9a 100644 --- a/distribution/CMakeLists.txt +++ b/distribution/CMakeLists.txt @@ -18,17 +18,19 @@ if(ENABLE_DISTRIBUTION) set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}") # define install location - set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local/sv/ZeroDSolver/${CPACK_PACKAGE_VERSION}") + set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local/sv/svZeroDSolver/${CPACK_PACKAGE_VERSION}") # define install target within build folder set(CPACK_OUTPUT_FILE_PREFIX ${CMAKE_BINARY_DIR}/distribution) if(APPLE) set(CPACK_GENERATOR "productbuild") - elseif(LINUX) + endif() + + if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(CPACK_GENERATOR DEB) set(CPACK_DEBIAN_PACKAGE_DEPENDS "") - endif(APPLE) + endif() # create the installer for both solver and calibrator install(TARGETS svzerodsolver svzerodcalibrator From 8a58d680f3431c0e1cddda52cdec0e57d3ced254 Mon Sep 17 00:00:00 2001 From: Karthik Menon <40070586+menon-karthik@users.noreply.github.com> Date: Wed, 16 Oct 2024 14:00:32 -0700 Subject: [PATCH 10/10] Remove redundant docs after moving to SimVascular website (#137) --- docs/pages/GUI.md | 27 +-- docs/pages/add_block.md | 6 + docs/pages/main.md | 470 +----------------------------------- docs/pages/visualization.md | 17 +- src/algebra/Integrator.h | 91 +------ src/algebra/SparseSystem.h | 39 +-- 6 files changed, 25 insertions(+), 625 deletions(-) diff --git a/docs/pages/GUI.md b/docs/pages/GUI.md index 7e4507285..86c6de8d3 100644 --- a/docs/pages/GUI.md +++ b/docs/pages/GUI.md @@ -27,29 +27,6 @@ interactive elements and graphical networks. This architecture supports an intuitive user experience for generating and managing 0D input files through a graphical interface. +# User guide -# How to Use -1. Create a virtual environment with the required `flask` dependency. If using `conda`, use the below commands: - ```bash - conda create -n svZeroDGUI python=3.10 flask - conda activate svZeroDGUI - ``` -2. Navigate to the `applications` folder and then to the `create_0dmodel` subdirectory. -3. Launch the `app.py` file. - ```bash - python applications/svZeroDGUI/app.py - ``` -4. Select a node type and name the node. - - For vessels, after drawing the node, click on it to open a form -where you can enter details such as vessel length, diameter, and more. - - For junctions, click the node to specify if it’s a Normal %Junction -or a Blood Vessel %Junction. -5. To draw edges between nodes, toggle the `Draw on` button on the right. -Once active, you can start connecting nodes by drawing edges between them. -6. When you wish to stop drawing edges and continue adding or moving nodes, -click the `Draw off` button. -7. Once you’ve completed the network, click `Export to JSON` on the right. -If there are any incorrect connections or patterns, an alert will prompt you -to make necessary changes so the network can be processed by svZeroDSolver. -8. Open the downloaded JSON file and add any additional information, -such as boundary condition data, before running it through svZeroDSolver. +A user guide is available on the [SimVascular website](https://simvascular.github.io/documentation/rom_simulation.html#0d-solver-gui). diff --git a/docs/pages/add_block.md b/docs/pages/add_block.md index cf6d4ca26..17828a5f9 100644 --- a/docs/pages/add_block.md +++ b/docs/pages/add_block.md @@ -156,3 +156,9 @@ system.dC_dy.coeffRef(global_eqn_ids[current_block_equation_id], global_var_ids[ * Add `MyNewBlock.h` and `MyNewBlock.cpp` to `src/model/CMakeLists.txt` +


+ +## 5. Add the new block to svZeroDVisualization. + +* Follow the instructions [here](@ref visualization) to make sure your new block can be visualized graphically. + diff --git a/docs/pages/main.md b/docs/pages/main.md index ce6a8a146..e001e6d0b 100644 --- a/docs/pages/main.md +++ b/docs/pages/main.md @@ -1,469 +1,17 @@ @mainpage svZeroDSolver -[TOC] +svZeroDSolver is an application for performing simulations with 0D/lumped-parameter computer models for cardiovascular flows. -svZeroDSolver is an application for performing simulations with 0D/lumped-parameter -computer models for cardiovascular flows. +An overview of svZeroDSolver, its features, and applications is available [on the SimVascular website](https://simvascular.github.io/documentation/rom_simulation.html#0d-solver). -Some noteworthy features of svZeroDSolver are: -* It is completely modular. Users can create custom flow models by arranging -blocks corresponding to blood vessels, junctions, different types of -boundary conditions, etc. -* It is written in C++ to enable high-performance applications. -* svZeroDSolver offers both a Python API and a C++ shared library to interface with other -Python or C++-based applications. This allows it to be used in a fully coupled manner -with other multi-physics solvers, and for parameter estimation, uncertainty -quantification, etc. -* The svZeroDCalibrator application, which is included in svZeroDSolver, optimizes 0D -blood vessel parameters to recapitulate given time-varying flow and pressure measurements -(for example, from a high-fidelity 3D simulation). This allows users to build accurate -0D models that reflect observed hemodynamics. -* The svZeroDVisualization application enables users to visualize their 0D network and -interactively select nodes to view simulation results. -* The svZeroDGUI application allows users to generate input files for svZeroDSolver by -drawing the network on an easy-to-use GUI. This provides an alternative to manually -creating files and is useful for users without access to a 3D model. +Below are links to important sections of the documentation: - -Zero-dimensional (0D) models -are lightweight methods to simulate bulk hemodynamic quantities in the -cardiovascular system. Unlike 3D and 1D models, 0D models are purely -time-dependent; they are unable to simulate spatial patterns in the -hemodynamics. 0D models are analogous to electrical circuits. The flow rate -simulated by 0D models represents electrical current, while the pressure -represents voltage. Three primary building blocks of 0D models are resistors, -capacitors, and inductors. Resistance captures the viscous effects of blood -flow, capacitance represents the compliance and distensibility of the vessel -wall, and inductance represents the inertia of the blood flow. Different -combinations of these building blocks, as well as others, can be formed to -reflect the hemodynamics and physiology of different cardiovascular -anatomies. These 0D models are governed by differential algebraic equations -(DAEs). - -The main categories of blocks implemented in svZeroDSolver are: -- Blood vessels -- Junctions -- Boundary conditions -- Heart chambers -- Heart valves - -For an overview of available 0D elements (blocks) see: Block - -You can find more details about governing equations in individual blocks in their respective documentation pages. For example: -- BloodVessel -- BloodVesselJunction -- WindkesselBC - -For implementation details, have a look at the [source code](https://github.com/simvascular/svZeroDSolver). -Mathematics details can be found in the following classes: -- System of equations: SparseSystem -- Time integration: Integrator - -[More information about SimVascular](https://simvascular.github.io) - -# Installation - -svZeroDSolver can be installed in two different ways. For using the Python -API, an installation via pip is recommended. - -## Using pip - -For a pip installation, simply run the following command -(cloning of the repository is not required): - -```bash -pip install git+https://github.com/simvascular/svZeroDSolver.git -``` - -## Using CMake - -If you want to build svZeroDSolver manually from source, clone the repository -and run the following commands from the top directory of the project: - -```bash -mkdir Release -cd Release -cmake -DCMAKE_BUILD_TYPE=Release .. -cmake --build . -``` - - -@remark
- **Building on Sherlock** - -```bash -module load cmake/3.23.1 gcc/14.2.0 binutils/2.38 -mkdir Release -cd Release -cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=/share/software/user/open/gcc/14.2.0/bin/g++ -DCMAKE_C_COMPILER=/share/software/user/open/gcc/14.2.0/bin/gcc .. -cmake --build . -``` - -
- -# svZeroDSolver - Quick User Guide - -svZeroDSolver can be used to run zero-dimensional (0D) cardiovascular -simulations based on a given configuration. - -## Run svZeroDSolver from the command line - -svZeroDSolver can be executed from the command line using a JSON configuration -file. - -```bash -svzerodsolver tests/cases/steadyFlow_RLC_R.json result_steadyFlow_RLC_R.csv -``` - -The result will be written to a CSV file. - -## Run svZeroDSolver from other programs - -For some applications it is beneficial to run svZeroDSolver directly -from within another program. For example, this can be -useful when many simulations need to be performed (e.g. for -calibration, uncertainty quantification, ...). It is also allows using -svZeroDSolver with other solvers, for example as boundary conditions or -forcing terms. - -### In C++ - -SvZeroDSolver needs to be built using CMake to use the shared library interface. - -Detailed examples of interfacing with svZeroDSolver from C++ codes are available -in the test cases at `svZeroDSolver/tests/test_interface`. - -### In Python - -Please make sure that -you installed svZerodSolver via pip to enable this feature. We start by -importing pysvzerod: - -```python ->>> import pysvzerod -``` - -Next, we create a solver from our configuration. The configuration can -be specified by either a path to a JSON file: - -```python ->>> solver = pysvzerod.Solver("tests/cases/steadyFlow_RLC_R.json") -``` - -or as a Python dictionary: - -```python ->>> my_config = {...} ->>> solver = pysvzerod.Solver(my_config) -``` - -To run the simulation we add: - -```python ->>> solver.run() -``` - -The simulation result is now saved in the solver instance. We can obtain -results for individual degrees-of-freedom (DOFs) as -```python ->>> solver.get_single_result("flow:INFLOW:branch0_seg0") - -array([5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., - 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., - 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., - 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., - 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., - 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5., 5.]) -``` -The naming of the DOFs is similar to how results are written if the simulation -option `output_variable_based` is activated (see below). We can also obtain -the mean result for a DOF over time with: -```python ->>> solver.get_single_result_avg("flow:INFLOW:branch0_seg0") - -5.0 -``` - -Or the result of the full simulation as a pandas data frame: - -```python ->>> solver.get_full_result() - - name time flow_in flow_out pressure_in pressure_out -0 branch0_seg0 0.00 5.0 5.0 1100.0 600.0 -1 branch0_seg0 0.01 5.0 5.0 1100.0 600.0 -2 branch0_seg0 0.02 5.0 5.0 1100.0 600.0 -3 branch0_seg0 0.03 5.0 5.0 1100.0 600.0 -4 branch0_seg0 0.04 5.0 5.0 1100.0 600.0 -.. ... ... ... ... ... ... -96 branch0_seg0 0.96 5.0 5.0 1100.0 600.0 -97 branch0_seg0 0.97 5.0 5.0 1100.0 600.0 -98 branch0_seg0 0.98 5.0 5.0 1100.0 600.0 -99 branch0_seg0 0.99 5.0 5.0 1100.0 600.0 -100 branch0_seg0 1.00 5.0 5.0 1100.0 600.0 - -[101 rows x 6 columns] -``` - -There is also a function to retrieve the full result directly based on a given configuration: - -```python - ->>> my_config = {...} ->>> pysvzerod.simulate(my_config) - - name time flow_in flow_out pressure_in pressure_out -0 branch0_seg0 0.00 5.0 5.0 1100.0 600.0 -1 branch0_seg0 0.01 5.0 5.0 1100.0 600.0 -2 branch0_seg0 0.02 5.0 5.0 1100.0 600.0 -3 branch0_seg0 0.03 5.0 5.0 1100.0 600.0 -4 branch0_seg0 0.04 5.0 5.0 1100.0 600.0 -.. ... ... ... ... ... ... -96 branch0_seg0 0.96 5.0 5.0 1100.0 600.0 -97 branch0_seg0 0.97 5.0 5.0 1100.0 600.0 -98 branch0_seg0 0.98 5.0 5.0 1100.0 600.0 -99 branch0_seg0 0.99 5.0 5.0 1100.0 600.0 -100 branch0_seg0 1.00 5.0 5.0 1100.0 600.0 - -[101 rows x 6 columns] - -``` - -## Configuration - -svZeroDSolver is configured using either a JSON file or a Python -dictionary. The top-level structure of both is: - -```python -{ - "simulation_parameters": {...}, - "vessels": [...], - "junctions": [...], - "boundary_conditions": [...] -} -``` - -In the following sections, the individual categories are described in more -detail. - -### Simulation parameters - -The svZeroDSolver can be configured with the following options in the -`simulation_parameters` section of the input file. Parameters without a -default value must be specified. - - -Parameter key | Description | Default value ------------------------------------------ | ----------------------------------------- | ----------- -`number_of_cardiac_cycles` | Number of cardiac cycles to simulate | - -`number_of_time_pts_per_cardiac_cycle` | Number of time steps per cardiac cycle | - -`absolute_tolerance` | Absolute tolerance for time integration | \f$10^{-8}\f$ -`maximum_nonlinear_iterations` | Maximum number of nonlinear iterations for time integration | \f$30\f$ -`steady_initial` | Toggle whether to use the steady solution as the initial condition for the simulation | true -`output_variable_based` | Output solution based on variables (i.e. flow+pressure at nodes and internal variables) | false -`output_interval` | The frequency of writing timesteps to the output (1 means every time step is written to output) | \f$1\f$ -`output_mean_only` | Write only the mean values over every timestep to output file | false -`output_derivative` | Write time derivatives to output file | false -`output_all_cycles` | Write all cardiac cycles to output file | false -`use_cycle_to_cycle_error` | Use cycle-to-cycle error to determine number of cycles for convergence | false -`sim_cycle_to_cycle_percent_error` | Percentage error threshold for cycle-to-cycle pressure and flow difference | 1.0 - -The option `use_cycle_to_cycle_error` allows the solver to change the number of cardiac cycles it runs depending on the cycle-to-cycle convergence of the simulation. For simulations with no RCR boundary conditions, the simulation will add extra cardiac cycles until the difference between the mean pressure and flow in consecutive cycles is below the threshold set by `sim_cycle_to_cycle_percent_error` at all inlets and outlets of the model. If there is at least one RCR boundary condition, the number of cycles is determined based on equation 21 of \cite pfaller21, using the RCR boundary condition with the largest time constant. - -### Vessels - -More information about the vessels can be found in their respective class references. Below is a template vessel block with boundary conditions, `INFLOW` and `OUT`, at its inlet and outlet respectively. - -```python -{ - "boundary_conditions": { - "inlet": "INFLOW", # Optional: Name of inlet boundary condition - "outlet": "OUT", # Optional: Name of outlet boundary condition - }, - "vessel_id": 0, # ID of the vessel - "vessel_name": "branch0_seg0", # Name of vessel - "zero_d_element_type": "BloodVessel", # Type of vessel - "zero_d_element_values": {...} # Values for configuration parameters -} -``` - -Description | Class | `zero_d_element_type` | `zero_d_element_values` ----------------------------------------- | --------------------------- | --------------------- | ------------------------ -Blood vessel with \n optional stenosis | BloodVessel | `BloodVessel` | `C`: Capacity \n `L`: Inductance \n `R_poiseuille`: Poiseuille resistance \n `stenosis_coefficient`: Stenosis coefficient - - -### Junctions - -More information about the junctions can be found in their respective class references. Below is a template junction block that connects vessel ID 0 with vessel IDs 1 and 2. - -```python -{ - "junction_name": "J0", # Name of the junction - "junction_type": "BloodVesselJunction", # Type of the junction - "inlet_vessels": [0], # List of vessel IDs connected to the inlet - "outlet_vessels": [1, 2], # List of vessel IDs connected to the inlet - "junction_values": {...} # Values for configuration parameters -} -``` - -Description | Class | `junction_type` | `junction_values` -------------------------------------- | ---------------------| --------------------- | ----------- -Purely mass \n conserving \n junction | Junction | `NORMAL_JUNCTION` | - -Resistive \n junction | ResistiveJunction | `resistive_junction` | `R`: Ordered list of resistances for all inlets and outlets -Blood vessel \n junction | BloodVesselJunction | `BloodVesselJunction` | Same as for `BloodVessel` element but \n as ordered list for each inlet and outlet - -### Boundary conditions - -More information about the boundary conditions can be found in their respective class references. Below is a template `FLOW` boundary condition. - -```python -{ - "bc_name": "INFLOW", # Name of the boundary condition - "bc_type": "FLOW", # Type of the boundary condition - "bc_values": {...} # Values for configuration parameters -}, -``` - -Description | Class | `bc_type` | `bc_values` -------------------------------------- | ---------------------- | --------------------- | ----------- -Prescribed (transient) flow | FlowReferenceBC | `FLOW` | `Q`: Time-dependent flow values \n `t`: Time steps \n `fn`: Mathematical expression \n Note: Either specify `Q` and `t` together, or just `fn` -Prescribed (transient) pressure | PressureReferenceBC | `PRESSURE` | `P`: Time-dependent pressure values \n `t`: Time steps \n `fn`: Mathematical expression \n Note: Either specify `Q` and `t` together, or just `fn` -Resistance | ResistanceBC | `RESISTANCE` | `R`: Resistance \n `Pd`: Time-dependent distal pressure \n `t`: Time stamps -Windkessel | WindkesselBC | `RCR` | `Rp`: Proximal resistance \n `C`: Capacitance \n `Rd`: Distal resistance \n `Pd`: Distal pressure -Coronary outlet | OpenLoopCoronaryBC | `CORONARY` | `Ra`: Proximal resistance \n `Ram`: Microvascular resistance \n `Rv`: Venous resistance \n `Ca`: Small artery capacitance \n `Cim`: Intramyocardial capacitance \n `Pim`: Intramyocardial pressure \n `Pv`: Venous pressure - -The above table describes the most commonly used boundary conditions. In addition, svZeroDSolver includes various closed-loop boundary conditions. Examples can be found in `svZeroDSolver/tests/cases`. - -Values of the boundary condition can be specified as a function of time as follow: -```python -{ - "bc_name": "INFLOW", # Name of the boundary condition - "bc_type": "FLOW", # Type of the boundary condition - "bc_values": { - "Q": [ ..., ..., ... ], # Comma-separated list of values - "t": [ ..., ..., ... ] # Comma-separated list of corresponding time stamps - } -}, -``` -See `svZeroDSolver/tests/cases/pulsatileFlow_R_RCR.json` for an example. - - - - - - - - - - - - - - -## Simulation Outputs - -The simulation outputs will be saved in the specified CSV file (`.csv`) when running `svZeroDSolver` from the command line as follows: -```bash -svzerodsolver .json .csv -``` -If the name of the CSV file is not specified, the default is `output.csv`. The format of the file depends on the user-specified configuration within the `simulation_parameters` block of the JSON configuration file. - -If `output_variable_based` is set to `true`, the CSV file will contain all the degrees-of-freedom in the simulation. Otherwise, only the flow and pressure at the inlets and outlets of vessels is written. - -The degrees-of-freedom (DOFs) follow the following naming scheme: - -- Flow DOFs are labelled `flow::`. -- Pressure DOFs are labelled `pressure::`. -- Internal DOFs (i.e., variables internal to a block and not connected to upstream/downstream blocks) are labelled `:`. The internal variables for each block are listed in the blocks' [class documentation](https://simvascular.github.io/svZeroDSolver/annotated.html). - -When the outputs are written in the variable-based and vessel-based forms, the user can specify whether they want outputs written for all cardiac cycles or just the last cardiac cycle using the `output_all_cycles` option. By default, only the last cycle is written. This makes the simulation more efficient. - -The number of timesteps between each time the output is written is specified by `output_interval`. By default, output is written at every time step. - - -# Graphical User Interfaces - Quick User Guide - -The svZeroDSolver package includes two graphical interfaces - svZeroDVisualization and svZeroDGUI. - -The svZeroDVisualization application allows users visualize the connectivity of 0D models and the simulated hemodynamics in each block. A user guide is available [here](@ref visualization). - -The svZeroDGUI application allows users to create 0D models using an interactive drag-drop graphical interface. Details are available [here](@ref GUI). - - -# svZeroDCalibrator - Quick User Guide - -svZeroDCalibrator can be used to calibrate cardiovascular 0D models (i.e. infer optimal -parameters for the 0D elements) based on a given transient result (i.e. from a -3D simulation). - -## Run svZeroDCalibrator - -### From the command line -svZeroDCalibrator can be executed from the command line using a JSON configuration -file. - -```bash -svzerodcalibrator path/to/input_file.json path/to/output_file.json -``` - -The result will be written to a JSON file. - - -### In Python - -svZeroDCalibrator can also be called directly from Python. -Please make sure that you installed svZerodSolver via pip to enable this feature. We start by -importing pysvzerod: - -```python -import pysvzerod - -my_unoptimized_config = {...} -my_optimized_config = pysvzerod.calibrate(my_unoptimized_config) -``` - -## Configuration (file) - -In order to make svZeroDCalibrator easy to use, it is based on a similar configuration -file than svZeroDSolver. Instead of the `simulation_parameters` section, it has a section -called `calibration_parameters`. Additionally the optimization target (i.e. a given) -3D result is passed with the key `y` and it's temporal derivative via `dy`. See -`tests/cases/steadyFlow_calibration.json` for an example input file. - -```python -{ - "calibration_parameters": {...}, - "vessels": [...], - "junctions": [...], - "boundary_conditions": [...], - "y": { - "flow:INFLOW:branch0_seg0": [0.0, 0.1, ...], # Time series for DOF - "pressure:INFLOW:branch0_seg0": [0.0, 0.1, ...], # Time series for DOF - ... - }, - "dy": { - "flow:INFLOW:branch0_seg0": [0.0, 0.1, ...], # Time series for DOF - "pressure:INFLOW:branch0_seg0": [0.0, 0.1, ...], # Time series for DOF - ... - }, -} -``` - -### Calibration parameters - -Here is a list of the parameters that can be specified in the `calibration_parameters` -section of the configuration file. - -Parameter key | Description | Default value ---------------------------------------- | ----------------------------------------- | ----------- -tolerance_gradient | Gradient tolerance for calibration | \f$10^{-5}\f$ -tolerance_increment | Increment tolerance for calibration | \f$10^{-10}\f$ -maximum_iterations | Maximum calibration iterations | 100 -calibrate_stenosis_coefficient | Toggle whether stenosis coefficient should be calibrated | True -set_capacitance_to_zero | Toggle whether all capacitances should be manually set to zero | False -initial_damping_factor | Initial damping factor for Levenberg-Marquardt optimization | 1.0 +* [Installing svZeroDSolver](https://simvascular.github.io/documentation/rom_simulation.html#0d-solver-install) +* [User guide for svZeroDSolver](https://simvascular.github.io/documentation/rom_simulation.html#0d-solver-user-guide) +* [User guide for svZeroDCalibrator](https://simvascular.github.io/documentation/rom_simulation.html#0d-solver-calibrator) +* [User guide for svZeroDVisualization](https://simvascular.github.io/documentation/rom_simulation.html#0d-solver-visualization) +* [User guide for svZeroDGUI](https://simvascular.github.io/documentation/rom_simulation.html#0d-solver-gui) # Developer Guide -If you are a developer and want to contribute to svZeroDSolver, you can find -more helpful information in our [Developer Guide](@ref developer_guide). +If you are a developer and want to contribute to svZeroDSolver, you can find more helpful information in our [Developer Guide](@ref developer_guide). diff --git a/docs/pages/visualization.md b/docs/pages/visualization.md index 3ef1269be..021fbd2fa 100644 --- a/docs/pages/visualization.md +++ b/docs/pages/visualization.md @@ -41,23 +41,8 @@ dependencies and avoid conflicts with other projects. # How to Use -Note: Files related to this application are in the `applications`folder, within the `dirgraph_visualization` subdirectory. - -1. Command line execution: Pass the file path to your input JSON file and the output directory where you want the visualization to be saved as command line arguments. - - Pass a third argument `export_csv` optionally if you want to save svZeroDSolver raw output. - - The program will execute svZeroDSolver, generate a directed graph visualization of your network, parse simulation results, and display the results along with the corresponding nodes on a local Flask server. - ```bash - python applications/svZeroDVisualization/visualize_simulation.py 'tests/cases/chamber_elastance_inductor.json' './output/circuit_img/dir_graph' - ``` - -2. Once the server is open, you can click on a node to inspect further. - - The data for that node will be displayed, including the simulation parameters input for that node, pressure/flow data, and any internal variables if present. - - Additional features include the ability to download figures and use the trace function - for more detailed inspection of network elements. The trace feature allows users to filter the - view by specific element types, such as isolating and examining only the blood vessels or - identifying the locations of the chambers within the network. This functionality enhances the - ability to focus on and analyze particular components of the network with precision. +A user guide is available on the [SimVascular website](https://simvascular.github.io/documentation/rom_simulation.html#0d-solver-visualization). # How to Visualize a New Block 1. **Update JSON Parsing**: diff --git a/src/algebra/Integrator.h b/src/algebra/Integrator.h index 58bb96c17..4c8c29275 100644 --- a/src/algebra/Integrator.h +++ b/src/algebra/Integrator.h @@ -44,97 +44,12 @@ * * This class handles the time integration scheme for solving 0D blood * flow system using the generalized-\f$\alpha\f$ method \cite JANSEN2000305. - * The specific implementation in this solver is based on \cite bazilevs13 - * (Section 4.6.2). - * - * We are interested in solving the DAE system defined in SparseSystem for the - * solutions, \f$\mathbf{y}_{n+1}\f$ and \f$\dot{\mathbf{y}}_{n+1}\f$, at the - * next time, \f$t_{n+1}\f$, using the known solutions, \f$\mathbf{y}_{n}\f$ - * and \f$\dot{\mathbf{y}}_{n}\f$, at the current time, \f$t_{n}\f$. Note that - * \f$t_{n+1} = t_{n} + \Delta t\f$, where \f$\Delta t\f$ is the time step - * size. - * - * Using the generalized-\f$\alpha\f$ method, we launch a predictor step - * and a series of multi-corrector steps to solve for \f$\mathbf{y}_{n+1}\f$ - * and \f$\dot{\mathbf{y}}_{n+1}\f$. Similar to other predictor-corrector - * schemes, we evaluate the solutions at intermediate times between \f$t_{n}\f$ - * and \f$t_{n + 1}\f$. However, in the generalized-\f$\alpha\f$ method, we - * evaluate \f$\mathbf{y}\f$ and \f$\dot{\mathbf{y}}\f$ at different - * intermediate times. Specifically, we evaluate \f$\mathbf{y}\f$ at - * \f$t_{n+\alpha_{f}}\f$ and \f$\dot{\mathbf{y}}\f$ at - * \f$t_{n+\alpha_{m}}\f$, where \f$t_{n+\alpha_{f}} = t_{n} + - * \alpha_{f}\Delta t\f$ and \f$t_{n+\alpha_{m}} = t_{n} + \alpha_{m}\Delta - * t\f$. Here, \f$\alpha_{m}\f$ and \f$\alpha_{f}\f$ are the - * generalized-\f$\alpha\f$ parameters, where \f$\alpha_{m} = \frac{3 - \rho}{2 - * + 2\rho}\f$ and \f$\alpha_{f} = \frac{1}{1 + \rho}\f$. We - * set the default spectral radius \f$\rho=0.5\f$, whereas \f$\rho=0.0\f$ equals - * the BDF2 scheme and \f$\rho=1.0\f$ equals the trapezoidal rule. For each time - * step \f$n\f$, the procedure works as follows. - * - * **Predict** the new time step based on the assumption of a constant - * solution \f$\mathbf{y}\f$ and consistent time derivative - * \f$\dot{\mathbf{y}}\f$: \f[ \dot{\mathbf y}_{n+1}^0 = \frac{\gamma-1}{\gamma} - * \dot{\mathbf y}_n, \f] \f[ \mathbf y_{n+1}^0 = \mathbf y_n. \f] with - * \f$\gamma = \frac{1}{2} + \alpha_m - \alpha_f\f$. We then iterate through - * Newton-Raphson iterations \f$i\f$ as follows, until the residual is smaller - * than an absolute error\f$||\mathbf r||_\infty < \epsilon_\text{abs}\f$: - * - * 1. **Initiate** the iterates at the intermediate time levels: - * \f[ - * \dot{\mathbf y}_{n+\alpha_m}^i = \dot{\mathbf y}_n + \alpha_m \left( - * \dot{\mathbf y}_{n+1}^i - \dot{\mathbf y}_n \right), - * \f] - * \f[ - * \mathbf y_{n+\alpha_f}^i= \mathbf y_n + \alpha_f \left( \mathbf y_{n+1}^i - - * \mathbf y_n \right). - * \f] - * - * 2. **Solve** for the increment \f$\Delta\dot{\mathbf{y}}\f$ in the linear - * system: - * \f[ - * \mathbf K(\mathbf y_{n+\alpha_f}^i, \dot{\mathbf y}_{n+\alpha_m}^i) \cdot - * \Delta \dot{\mathbf y}_{n+1}^i = - \mathbf r(\mathbf y_{n+\alpha_f}^i, - * \dot{\mathbf y}_{n+\alpha_m}^i). - * \f] - * - * 3. **Update** the solution vectors: - * \f[ - * \dot{\mathbf y}_{n+1}^{i+1} = \dot{\mathbf y}_{n+1}^i + \Delta - * \dot{\mathbf y}_{n+1}^i, - * \f] - * \f[ - * \mathbf y_{n+1}^{i+1} = \mathbf y_{n+1}^i + \Delta \dot{\mathbf y}_{n+1}^i - * \gamma \Delta t_n. - * \f] * + * Mathematical details are available on the
SimVascular + * documentation. */ -// * 3. \f$\textbf{Multi-corrector step}\f$: Then, for \f$k \in \left[0, -// N_{int} -// * - 1\right]\f$, we iteratively update our guess of -// * \f$\dot{\mathbf{y}}_{n+\alpha_{m}}^{k}\f$ and -// * \f$\mathbf{y}_{n+\alpha_{f}}^{k}\f$. We desire the residual, -// * \f$\textbf{r}\left(\dot{\mathbf{y}}_{n+\alpha_{m}}^{k + 1}, -// * \mathbf{y}_{n+\alpha_{f}}^{k + 1}, t_{n+\alpha_{f}}\right)\f$, to be -// * \f$\textbf{0}\f$. We solve this system using Newton's method. For -// details,see -// * SparseSystem. -// * -// * where \f$\gamma = 0.5 + \alpha_{m} - \alpha_{f}\f$. -// * -// * 4. \f$\textbf{Update step}\f$: Finally, we update \f$\mathbf{y}_{n+1}\f$ -// and -// * \f$\dot{\mathbf{y}}_{n+1}\f$ using our final value of -// * \f$\dot{\mathbf{y}}_{n+\alpha_{m}}\f$ and -// * \f$\mathbf{y}_{n+\alpha_{f}}\f$. \f[ -// * \mathbf{y}_{n+1} = \mathbf{y}_{n} + -// * \frac{\mathbf{y}_{n+\alpha_{f}}^{N_{int}} - -// * \mathbf{y}_{n}}{\alpha_{f}},\\ \dot{\mathbf{y}}_{n+1} = -// * \dot{\mathbf{y}}_{n} + \frac{\dot{\mathbf{y}}_{n+\alpha_{m}}^{N_{int}} - -// * \dot{\mathbf{y}}_{n}}{\alpha_{m}} \f] -// * -// */ - class Integrator { private: double alpha_m{0.0}; diff --git a/src/algebra/SparseSystem.h b/src/algebra/SparseSystem.h index df2893df6..c82063d5e 100644 --- a/src/algebra/SparseSystem.h +++ b/src/algebra/SparseSystem.h @@ -48,42 +48,11 @@ class Model; * This class contains all attributes and methods to create, modify, and * solve sparse systems. * - * Flow rate, pressure, and other hemodynamic quantities in 0D models of - * vascular anatomies are governed by a system of nonlinear - * differential-algebraic equations (DAEs): + * Mathematical details related to setting up the governing system of + * equations are available on the SimVascular + * documentation. * - * \f[ - * \mathbf{r}(\boldsymbol{\alpha}, \mathbf{y},\dot{\mathbf{y}}, t) = - * \mathbf{E}(\boldsymbol{\alpha}) \cdot \dot{\mathbf{y}} + - * \mathbf{F}(\boldsymbol{\alpha}) \cdot \mathbf{y} + - * \mathbf{c}(\mathbf{y},\dot{\mathbf{y}}, t) = \mathbf{0} - * \f] - * - * where \f$\mathbf{r},\textbf{y},\textbf{c} \in \mathbb{R}^{N}\f$ and - * \f$\textbf{E},\textbf{F} \in \mathbb{R}^{N \times N}\f$. Here, - * \f$\textbf{r}\f$ is the residual, \f$\textbf{y}\f$ is the vector of solution - * quantities and \f$\dot{\textbf{y}}\f$ is its time derivative. \f$N\f$ is the - * total number of equations and the total number of global unknowns. The DAE - * system is solved implicitly using the generalized-\f$\alpha\f$ method in - * Integrator. We then use the Newton-Raphson method to iteratively solve - * - * \f[ - * \mathbf{K}^{i} \cdot \Delta\dot{\mathbf{y}}^{i} = - \mathbf{r}^{i}, - * \f] - * - * with solution increment \f$\Delta\dot{\mathbf{y}}^{i}\f$ in iteration - * \f$i\f$. The linearization of the time-discretized system is - * - * \f[ - * \mathbf{K} = - * \frac{\partial \mathbf{r}}{\partial \mathbf{y}} = - * c_{\dot{\mathbf{y}}} \left( \mathbf{E} + \frac{\partial \mathbf{c}}{\partial - * \dot{\mathbf{y}}} \right) + - * c_{\mathbf{y}} \left( \mathbf{F} + \frac{\partial \mathbf{c}}{\partial - * \mathbf{y}} \right), \f] - * - * with time factors \f$c_{\dot{\mathbf{y}}}=\alpha_m\f$ and - * \f$c_{\mathbf{y}}=\alpha_f\gamma\Delta t\f$ provided by Integrator. */ class SparseSystem { public:

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 z z=D_!ckEjyQ5^8R9dr-t&&Lf4VWQ&i>lt+pmeLI18y0-EJPv3#utY40kX1Eg${k(2s zV94OV(xk`*Hqn)hqgIILj9(O!3{Zt!mZfhMJpQYYWJB46glFIhHyh=$%)u-h5;9I< z@P+8!k{K14gQSC;cX{JA|GLJ>TLs^pDgtP755LeUBRC&bb*etH$OwB5LsSY1mpDfF z^cEEHCIiz$ue^<6ZB_P*SmD0kK?mB6f5OvN+019A z+xn}Hvwh#ai><_kJ}c3iT2}A2t+(6O#;`!JeU*vUvGID=H~o3*x%Ymyu(1V@1%Z!0 z`J^peu#ifbUOci@0jtODbMS<#f`RKn?(llM&0=)mh9@4hRVS`uC+v5C*_?$|UwM>O z;M?BEk-rVzhMhHqh`|Rx)!Nd896`$GI`=|5LTghdEUjn(|1vg}uJXY{3 z96u)mS$bE4N7EtAZotFc4CUMPFUyMf60e9C(csT-#ECv#SVO<;0XS%cJ>*``F)(EC z|K8M*wetU7w4(sY;JXzIKQAES@3<5wUW)<*%nhLX2fXkVqB~xaMRmRy2YH%KN|wSc5RXCF2~jGjQ-T^OdZ?gBNt- z=#rGb|im5IVzvgHRK6`3eDC4Va8RBZ%}Hz=G)KZBg}&jqe5 zFJl#@R`S%tM-G0H>0UD4?(#ExNT1M8-kHWx^{u_w{^8Y{>znbzNaRon2}}=bAvMC~ zpNgY|!y|@ZG3ppZ9g(Vi*Shtr*4AM+aQ6PeM}E$xaZbJX4bU6c0=v(Ad=LA=A&2;Z zFq#KfMW~z4e7F}qh3ma|X~L^lp2S5(BLh@sYFOyL^;QhN48Km#TSfz7*u)7K$T_xf z(E|I^U3b{6|MPpB@!Sj+6LLdewcXlBjb!^6L+QwvIpcYo&!Ia#oKn}TxqWojVn7c1 zv$eUtSB;Z_ZuamI7hU+x#psXaQkZ==+s>wp8E0M9Zkw{{rZ#4i4Xrkoi-NQ#5rbCY zmcYuW;l7Y>fRT^hC5!0!a;`n=6)KvF(A>2a0$@n`U*G^D&H>PtK`pM+4SubwtjdwY z9cph`8*}u%GiTV+o~3pqcNSdolWU!>gY^if?{%Q<$uz|PJ0>)Dt;L3IIv?MM5kPwt zokq3XASo?~58W~U*o@isj?=$li@I5$2b5Ij(wt8F@)3vI;rs1xtu)~JFu=XUCu29B z#(qMbjHTy)Jj540_2~;CJ(mkCs66DSpY-9t`0-wLVT^@QPj_l)=wG8m0Zu5PzrHg-B*Khu&#wYyNor){7 zBhyje7cRpDaz4q&Q505;U9NcKmGLF5fv?6vs*s^6_`6PtMtUU~Io!c7H>Mck#kf8C z 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