diff --git a/.dockerignore b/.dockerignore
index 83edc646..f10e69d7 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -10,7 +10,7 @@ notebook.ipynb
Dockerfile
Dockerfile_base
Dockerfile_dev
-node_modules
+webapp/node_modules
webapp/build
webapp/geppetto-client
workspace
@@ -23,4 +23,5 @@ app.log
/.pytest_cache
.jupyter-config
**/*.pyc
-**/__pycache__
\ No newline at end of file
+**/__pycache__
+app.log
\ No newline at end of file
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
new file mode 100644
index 00000000..61201c39
--- /dev/null
+++ b/.github/workflows/tests.yml
@@ -0,0 +1,258 @@
+# name: Tests Workflow
+
+# # Controls when the workflow will run
+# on:
+# # Triggers the workflow on push or pull request events but only for the specified branch
+# push:
+# branches:
+# - "master"
+# - "development"
+# pull_request:
+# branches:
+# - "master"
+# - "development"
+
+# # A workflow run is made up of one or more jobs that can run sequentially or in parallel
+# jobs:
+# EEG_Dipole-test:
+# # The type of runner that the job will run on
+# runs-on: ubuntu-20.04
+# container: lironavon/docker-puppeteer-container:14.16.0
+# env:
+# CI: true
+# steps:
+# - uses: actions/checkout@v1
+# - name: Use Node.js ${{ matrix.node-version }}
+# uses: actions/setup-node@v1
+# with:
+# node-version: ${{ matrix.node-version }}
+# cache-dependency-path: frontend/e2e/tests/package-lock.json
+# - name: EEG and Dipole Plot snapshot test using Tut#1
+# run: |
+# cd tests/frontend/e2e
+# #install dependencies
+# npm ci
+# # run EEG and Dipole Plot test
+# npm run EEG_Dipole_test
+# env:
+# CI: true
+# Experiment_Manager-test:
+# # The type of runner that the job will run on
+# runs-on: ubuntu-20.04
+# container: lironavon/docker-puppeteer-container:14.16.0
+# env:
+# CI: true
+# steps:
+# - uses: actions/checkout@v1
+# - name: Use Node.js ${{ matrix.node-version }}
+# uses: actions/setup-node@v1
+# with:
+# node-version: ${{ matrix.node-version }}
+# cache-dependency-path: frontend/e2e/tests/package-lock.json
+# - name: Experiment Manager snapshot test using Tut#1
+# run: |
+# cd tests/frontend/e2e
+# #install dependencies
+# npm ci
+# # run Experiment Manager test
+# npm run Experiment_Manager_test
+# env:
+# CI: true
+# Control_Panel-test:
+# # The type of runner that the job will run on
+# runs-on: ubuntu-20.04
+# container: lironavon/docker-puppeteer-container:14.16.0
+# env:
+# CI: true
+# steps:
+# - uses: actions/checkout@v1
+# - name: Use Node.js ${{ matrix.node-version }}
+# uses: actions/setup-node@v1
+# with:
+# node-version: ${{ matrix.node-version }}
+# cache-dependency-path: frontend/e2e/tests/package-lock.json
+# - name: Control Panel test using Tut#2
+# run: |
+# cd tests/frontend/e2e
+# #install dependencies
+# npm ci
+# # run Control Panel test
+# npm run Control_Panel_test
+# env:
+# CI: true
+# Save_and_Open_File-test:
+# # The type of runner that the job will run on
+# runs-on: ubuntu-20.04
+# container: lironavon/docker-puppeteer-container:14.16.0
+# env:
+# CI: true
+# steps:
+# - uses: actions/checkout@v1
+# - name: Use Node.js ${{ matrix.node-version }}
+# uses: actions/setup-node@v1
+# with:
+# node-version: ${{ matrix.node-version }}
+# cache-dependency-path: frontend/e2e/tests/package-lock.json
+# - name: Test for Opening and Saving a file
+# run: |
+# cd tests/frontend/e2e
+# #install dependencies
+# npm ci
+# # run Control Panel test
+# npm run Save_Open_File_test
+# env:
+# CI: true
+# RxD-test:
+# # The type of runner that the job will run on
+# runs-on: ubuntu-20.04
+# container: lironavon/docker-puppeteer-container:14.16.0
+# env:
+# CI: true
+# steps:
+# - uses: actions/checkout@v1
+# - name: Use Node.js ${{ matrix.node-version }}
+# uses: actions/setup-node@v1
+# with:
+# node-version: ${{ matrix.node-version }}
+# cache-dependency-path: frontend/e2e/tests/package-lock.json
+# - name: Test for RxD plot
+# run: |
+# cd tests/frontend/e2e
+# #install dependencies
+# npm ci
+# # run RxD Plot test
+# npm run RxD_test
+# env:
+# CI: true
+# Tutorial_1-SmokeTest:
+# # The type of runner that the job will run on
+# runs-on: ubuntu-20.04
+# container: lironavon/docker-puppeteer-container:14.16.0
+# env:
+# CI: true
+# steps:
+# - uses: actions/checkout@v1
+# - name: Use Node.js ${{ matrix.node-version }}
+# uses: actions/setup-node@v1
+# with:
+# node-version: ${{ matrix.node-version }}
+# cache-dependency-path: frontend/e2e/tests/package-lock.json
+# - name: Tutorial 1 Plot Tests
+# run: |
+# cd tests/frontend/e2e
+# #install dependencies
+# npm ci
+# # run Tutorial 1 Plot Tests
+# npm run Tutorial_1_test
+# env:
+# CI: true
+# Tutorial_2-SmokeTest:
+# # The type of runner that the job will run on
+# runs-on: ubuntu-20.04
+# container: lironavon/docker-puppeteer-container:14.16.0
+# env:
+# CI: true
+# steps:
+# - uses: actions/checkout@v1
+# - name: Use Node.js ${{ matrix.node-version }}
+# uses: actions/setup-node@v1
+# with:
+# node-version: ${{ matrix.node-version }}
+# cache-dependency-path: frontend/e2e/tests/package-lock.json
+# - name: Tutorial 2 Plot Tests
+# run: |
+# cd tests/frontend/e2e
+# #install dependencies
+# npm ci
+# # run Tutorial 2 Plot Tests
+# npm run Tutorial_2_test
+# env:
+# CI: true
+# Tutorial_3a-SmokeTest:
+# # The type of runner that the job will run on
+# runs-on: ubuntu-20.04
+# container: lironavon/docker-puppeteer-container:14.16.0
+# env:
+# CI: true
+# steps:
+# - uses: actions/checkout@v1
+# - name: Use Node.js ${{ matrix.node-version }}
+# uses: actions/setup-node@v1
+# with:
+# node-version: ${{ matrix.node-version }}
+# cache-dependency-path: frontend/e2e/tests/package-lock.json
+# - name: Tutorial 3a Plot Tests
+# run: |
+# cd tests/frontend/e2e
+# #install dependencies
+# npm ci
+# # run Tutorial 3a Plot Tests
+# npm run Tutorial_3A_test
+# env:
+# CI: true
+# Tutorial_3b-SmokeTest:
+# # The type of runner that the job will run on
+# runs-on: ubuntu-20.04
+# container: lironavon/docker-puppeteer-container:14.16.0
+# env:
+# CI: true
+# steps:
+# - uses: actions/checkout@v1
+# - name: Use Node.js ${{ matrix.node-version }}
+# uses: actions/setup-node@v1
+# with:
+# node-version: ${{ matrix.node-version }}
+# cache-dependency-path: frontend/e2e/tests/package-lock.json
+# - name: Tutorial 3b Plot Tests
+# run: |
+# cd tests/frontend/e2e
+# #install dependencies
+# npm ci
+# # run Tutorial 3b Plot Tests
+# npm run Tutorial_3B_test
+# env:
+# CI: true
+# Tutorial_3c-SmokeTest:
+# # The type of runner that the job will run on
+# runs-on: ubuntu-20.04
+# container: lironavon/docker-puppeteer-container:14.16.0
+# env:
+# CI: true
+# steps:
+# - uses: actions/checkout@v1
+# - name: Use Node.js ${{ matrix.node-version }}
+# uses: actions/setup-node@v1
+# with:
+# node-version: ${{ matrix.node-version }}
+# cache-dependency-path: frontend/e2e/tests/package-lock.json
+# - name: Tutorial 3c Plot Tests
+# run: |
+# cd tests/frontend/e2e
+# #install dependencies
+# npm ci
+# # run Tutorial 3c Plot Tests
+# npm run Tutorial_3C_test
+# env:
+# CI: true
+# Tutorial_4-SmokeTest:
+# # The type of runner that the job will run on
+# runs-on: ubuntu-20.04
+# container: lironavon/docker-puppeteer-container:14.16.0
+# env:
+# CI: true
+# steps:
+# - uses: actions/checkout@v1
+# - name: Use Node.js ${{ matrix.node-version }}
+# uses: actions/setup-node@v1
+# with:
+# node-version: ${{ matrix.node-version }}
+# cache-dependency-path: frontend/e2e/tests/package-lock.json
+# - name: Tutorial 4 Plot Tests
+# run: |
+# cd tests/frontend/e2e
+# #install dependencies
+# npm ci
+# # run Tutorial 4 Plot Tests
+# npm run Tutorial_4_test
+# env:
+# CI: true
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 8e8498bb..6a73d2c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,7 @@ init.py
webapp/node_modules
webapp/geppetto-client
webapp/build
+webapp/.yalc
workspace
netpyne_workspace
tests/frontend/e2e/node_modules
@@ -24,4 +25,10 @@ utilities/x86_64
.idea
*.iml
x86_64
-.jupyter-config
\ No newline at end of file
+.jupyter-config
+venv
+webapp/build
+webapp/.yalc
+node_modules
+sa_nyhead.mat
+workspace
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index 11bf9ff5..f4062502 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,33 +1,101 @@
-FROM frodriguez4600/jupyter-neuron:v7.8.0
-ARG INSTALLATION_FOLDER=/home/jovyan/work/NetPyNE-UI
-ARG NETPYNE_VERSION=development
-ARG WORKSPACE_VERSION=nov2020
-ARG JUPYTER_GEPPETTO_VERSION=development
-ARG PYGEPPETTO_VERSION=development
+FROM node:18 as jsbuild
+
+ENV FOLDER=netpyne
+
+WORKDIR $FOLDER/webapp
+COPY webapp/package.json .
+COPY webapp/yarn.lock .
+
+RUN yarn install --network-timeout 1000000000
+
+COPY webapp .
+RUN yarn build-dev
+
+### Download on a separate stage to run in parallel with buildkit
+FROM jupyter/base-notebook:hub-1.5.0 as downloads
+USER root
+RUN wget --no-check-certificate -O /nyhead.mat https://www.parralab.org/nyhead/sa_nyhead.mat
+
+###
+FROM jupyter/base-notebook:hub-1.5.0
+ENV NB_UID=jovyan
+ENV FOLDER=netpyne
+ENV NP_LFPYKIT_HEAD_FILE=/home/jovyan/nyhead.mat
+
+USER root
+
+RUN rm -rf /var/lib/apt/lists
+RUN apt-get update -qq &&\
+ apt-get install python3-tk vim nano unzip git make libtool g++ -qq pkg-config libfreetype6-dev libpng-dev libopenmpi-dev -y
+RUN apt-get install openjdk-11-jre-headless -y
+RUN conda install python=3.7 -y
+
+
+WORKDIR $FOLDER
+COPY --chown=1000:1000 requirements.txt requirements.txt
+RUN --mount=type=cache,target=/root/.cache python -m pip install --upgrade pip &&\
+ pip install -r requirements.txt --prefer-binary
+
+
+# ToDo: fixme, for now remove the jupyter hub config json file because it overrides the default
+# and thus removes the frame ancestor cors settings
+RUN rm -f ~/.jupyter/*.json
+RUN chown $NB_UID .
+RUN chown $NB_UID /opt
+RUN rm -Rf workspace
+# sym link workspace pvc to $FOLDER
+RUN mkdir -p /opt/workspace
+RUN mkdir -p /opt/user
+
+COPY netpyne_ui netpyne_ui
+COPY utilities utilities
+COPY setup.py .
+COPY tests tests
+COPY NetPyNE-UI .
+COPY README.rst .
+COPY requirements-test.txt .
+
+
+USER $NB_UID
+
+
+
+
+ENV NEURON_HOME=/opt/conda
+
+
+USER root
+
+RUN jupyter nbextension install --py --symlink --sys-prefix jupyter_geppetto
+RUN jupyter nbextension enable --py --sys-prefix jupyter_geppetto
+RUN jupyter nbextension enable --py --sys-prefix widgetsnbextension
+RUN jupyter serverextension enable --py --sys-prefix jupyter_geppetto
+
ARG BUILD_ARGS=""
+ARG WORKSPACE_VERSION=master
+
+RUN --mount=type=cache,target=/root/.cache python -m pip install --upgrade pip &&\
+ python utilities/install.py ${BUILD_ARGS} --workspace $WORKSPACE_VERSION --npm-skip
+
+
+RUN mv workspace /opt/workspace/tutorials
+RUN chown -R $NB_UID /opt/workspace
+RUN ln -s /opt/workspace workspace
+
+RUN jupyter labextension disable @jupyterlab/hub-extension
-USER $NB_USER
+COPY --from=downloads --chown=1000:1000 /nyhead.mat $NP_LFPYKIT_HEAD_FILE
+COPY --from=jsbuild --chown=1000:1000 $FOLDER/webapp/build webapp/build
-ENV INSTALLATION_FOLDER=$INSTALLATION_FOLDER
-ENV NETPYNE_VERSION=$NETPYNE_VERSION
-ENV WORKSPACE_VERSION=$WORKSPACE_VERSION
-ENV JUPYTER_GEPPETTO_VERSION=$JUPYTER_GEPPETTO_VERSION
-ENV PYGEPPETTO_VERSION=$PYGEPPETTO_VERSION
-ENV BUILD_ARGS=$BUILD_ARGS
+RUN chown -R $NB_UID /home/jovyan/.jupyter
+RUN touch app.log && chown $NB_UID app.log
+USER $NB_UID
-WORKDIR /home/jovyan/work
-COPY --chown=1000:1000 requirements.txt ${INSTALLATION_FOLDER}/requirements.txt
-WORKDIR ${INSTALLATION_FOLDER}
-RUN pip install -r requirements.txt
+EXPOSE 8888
-COPY --chown=1000:1000 . .
-WORKDIR ${INSTALLATION_FOLDER}/utilities
+ENTRYPOINT ["tini", "-g", "--"]
-RUN python install.py ${BUILD_ARGS}
-WORKDIR ${INSTALLATION_FOLDER}
-RUN pip install -r requirements-test.txt
-RUN pytest tests/backend
-CMD /bin/bash -c "jupyter notebook --NotebookApp.default_url=/geppetto --NotebookApp.token='' --library=netpyne_ui --NotebookApp.disable_check_xsrf=True"
\ No newline at end of file
+CMD ./NetPyNE-UI
diff --git a/NetPyNE-UI b/NetPyNE-UI
index abfedaeb..c7a58998 100755
--- a/NetPyNE-UI
+++ b/NetPyNE-UI
@@ -1,4 +1,4 @@
#!/bin/sh
CONFIG=$(pwd)/.jupyter-config
export JUPYTER_CONFIG_DIR=$CONFIG
-exec jupyter notebook --NotebookApp.default_url=/geppetto --NotebookApp.token='' --library=netpyne_ui --NotebookApp.disable_check_xsrf=True
+exec jupyter notebook --NotebookApp.default_url=/geppetto --NotebookApp.token='' --NotebookApp.notebook_dir=workspace --library=netpyne_ui --NotebookApp.disable_check_xsrf=True
diff --git a/README.md b/README.md
index 82a06054..3c2cc245 100644
--- a/README.md
+++ b/README.md
@@ -7,13 +7,18 @@

-This repository hosts the User Interface for [NetPyNE](http://www.neurosimlab.org/netpyne/). NetPyNE is a python package to facilitate the development, parallel simulation and analysis of biological neuronal networks using the NEURON simulator.
+This repository hosts the User Interface for [NetPyNE](https://netpyne.v2.opensourcebrain.org/). NetPyNE is a python package
+to facilitate the development, parallel simulation and analysis of biological neuronal networks using the NEURON
+simulator.
## Install NetPyNE User Interface
-Select one option to install the NetPyNE User Interface.
+Select one option to install the NetPyNE User Interface.
-If you are familiar with NEURON and have already NEURON installed in your machine you can proceed using Pip. If you want a container which comes with everything preinstalled including NEURON you can use the Docker image. Using docker you will still be able to mount a local folder which will be your NetPyNE workspace. If you don't have docker installed in your system and you have had troubles installing it you can opt for the Virtual Machine installation.
+If you are familiar with NEURON and have already NEURON installed in your machine you can proceed using Pip. If you want
+a container which comes with everything preinstalled including NEURON you can use the Docker image. Using docker you
+will still be able to mount a local folder which will be your NetPyNE workspace. If you don't have docker installed in
+your system and you have had troubles installing it you can opt for the Virtual Machine installation.
@@ -25,26 +30,59 @@ If you are familiar with NEURON and have already NEURON installed in your machin
### Python Dependencies
-We recommend the use of a new python 3 virtual environment:
+We recommend the use of a new python 3.7 virtual environment.
+Currently, NetPyNE-UI only supports Python 3.7, but that can change in the future.
+
+For NetPyNE-UI, the preferred way of creating a virtual env is to pass by conda/miniconda or mamba/micromamba.
+The pyenv tool can be also used, but it requires to be compiled with some special options to have NEURON running properly the simulation using `nrniv`.
+The reason behind this is that NEURON is distributed as a Python wheel with a specific option which force NEURON to look for the CPython dynamic lib.
+However, pyenv by default installs the static version of the CPython lib, resulting in `nrniv -python` not being able to run.
+
+The way of creating the virtualenv using (mini)conda is the following
+
+```bash
+conda create -n netpyne python=3.7
+conda activate netpyne
+```
+
+Here is how to create the virtualenv using (micro)mamba
+
+```bash
+mamba create -n netpyne python=3.7 -c conda-forge
+mamba activate netpyne
+```
+
+You can also directly create a virtualenv using your `python3` executable, obviously if it's the 3.7 version.
```bash
python3 -m venv npenv
source npenv/bin/activate
```
-Or, with conda
+If you want to use anyway pyenv, here is how to properly create the virtualenv and activate it.
```bash
-conda create -n netpyne python=3.7
-conda activate netpyne
+env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --verbose 3.7.17
+pyenv virtualenv 3.7.17 netpyne
+pyenv shell netpyne
```
### Run install script
+When you are in your virtualenv, here is how you can install the "basic" version of NetPyNE-UI:
+
```bash
python utilities/install.py
```
+If you want to have a different version of NetPyNE or geppetto meta, you can pass the version you want to the installer:
+
+```bash
+python utilities/install.py --dev --netpyne development --geppetto development --no-test
+```
+
+This command will install the `development` version of netpyne and geppetto and disable the tests during the installation.
+
### Start application
```bash
@@ -57,6 +95,14 @@ For debugging you can use `run.py` instead
python run.py
```
+To run the UI in dev mode, you need to run `python run.py` in one terminal, and use `yarn` from the `webapp` folder, using node v14 (use `nvm` if you need to have a different version of node than the one installed on your system):
+
+```bash
+cd webapp
+yarn start
+```
+
+You can then navigate to `http://127.0.0.1:8081/` to access the dev version of the UI.
## Run NetPyNE User Interface in Docker
@@ -65,19 +111,19 @@ Ensure that you have Docker installed on your system.
Build the image
```bash
-docker build -t netpyne-ui
+docker build -t netpyne-ui .
```
Run the image
```bash
-docker run -p 8888:8888 netpyne-ui
+docker run -p 8888:8888 netpyne-ui
```
## End-to-end tests
-End-to-end tests are located in `tests/deployment/frontend/e2e`.
-Ensure that the application is running in a blank state, since end-to-end tests interact with the running application.
+End-to-end tests are located in `tests/deployment/frontend/e2e`. Ensure that the application is running in a blank
+state, since end-to-end tests interact with the running application.
Install packages
@@ -92,11 +138,9 @@ Start tests
npm run test
```
-
#### Containerized tests
-You can also use `docker-compose` to run the tests.
-Ensure that you have Docker installed on your system.
+You can also use `docker-compose` to run the tests. Ensure that you have Docker installed on your system.
Build the images
@@ -111,8 +155,7 @@ Run the tests
docker-compose up --abort-on-container-exit --exit-code-from netpyne-ui-e2e
```
-
## Additional Notes
-NetPyNE-UI is being developed in collaboration with the [Neurosim Lab](http://neurosimlab.org/).
-See the [Wiki](https://github.com/MetaCell/NetPyNE-UI/wiki) for more info!
\ No newline at end of file
+NetPyNE-UI is being developed in collaboration with the [Neurosim Lab](http://neurosimlab.org/). See
+the [Wiki](https://github.com/MetaCell/NetPyNE-UI/wiki) for more info!
diff --git a/example.db b/example.db
new file mode 100644
index 00000000..173a80be
Binary files /dev/null and b/example.db differ
diff --git a/jupyter_hub/Dockerfile_spawner b/jupyter_hub/Dockerfile_spawner
index 6c919e57..6a1b503a 100644
--- a/jupyter_hub/Dockerfile_spawner
+++ b/jupyter_hub/Dockerfile_spawner
@@ -16,15 +16,15 @@ RUN /bin/bash -c "INCUBATOR_VER=${INCUBATOR_VER} source activate snakes && pip i
# Clone NetPyNE-UI and install the development version
RUN wget https://github.com/MetaCell/NetPyNE-UI/archive/$netpyneuiBranch.zip -q
RUN unzip $netpyneuiBranch.zip
-WORKDIR /home/jovyan/work/NetPyNE-UI-$netpyneuiBranch/utilities
+WORKDIR /opt/workspace-$netpyneuiBranch/utilities
RUN /bin/bash -c "source activate snakes && python --version"
RUN /bin/bash -c "source activate snakes && exec python install.py branch $netpyneuiBranch"
WORKDIR /home/jovyan
RUN git clone https://github.com/Neurosim-lab/netpyne_workspace
WORKDIR /home/jovyan/workspace
-RUN ln -sfn /home/jovyan/work/NetPyNE-UI-$netpyneuiBranch/netpyne_ui/tests tests
+RUN ln -sfn /opt/workspace-$netpyneuiBranch/netpyne_ui/tests tests
# Copy jupyterhub_config
-# RUN cp /home/jovyan/work/NetPyNE-UI-$netpyneuiBranch/jupyterhub_config.py .
+# RUN cp /opt/workspace-$netpyneuiBranch/jupyterhub_config.py .
CMD /bin/bash -c "source activate snakes && exec jupyterhub-singleuser --debug --NotebookApp.default_url=/geppetto --NotebookApp.token='' --library=netpyne_ui"
diff --git a/k8s/cf_values.yaml b/k8s/cf_values.yaml
index 6b4cfb84..606d014a 100644
--- a/k8s/cf_values.yaml
+++ b/k8s/cf_values.yaml
@@ -2,35 +2,19 @@ hub:
image:
name: gcr.io/metacellllc/netpyne-hub
pullPolicy: IfNotPresent
-
+ allowNamedServers: true
resources:
requests:
cpu: 100m
memory: 128Mi
-
- allowNamedServers: true
namedServerLimitPerUser: 2
shutdownOnLogout: true
-
extraConfig:
timing: |
- c.JupyterHub.allow_named_servers = True
- c.Spawner.port = 8000
- c.Spawner.http_timeout = 300
- c.Spawner.start_timeout = 300
- c.Spawner.notebook_dir = '/home/jovyan/work/NetPyNE-UI'
+ c.Spawner.notebook_dir = '/opt/workspace'
c.Spawner.default_url = '/geppetto'
- c.Spawner.debug = True
spawner: >-
- c.Spawner.args = ["--library=netpyne_ui", "--NotebookApp.disable_check_xsrf=True"]
-
-scheduling:
- userScheduler:
- replicas: 1
-
-auth:
- type: tmp
-
+ c.Spawner.args = ["--library=netpyne_ui", "--NotebookApp.default_url=/geppetto"]
singleuser:
storage:
type: none
@@ -54,4 +38,4 @@ cull:
maxAge: 0
debug:
- enabled: false
\ No newline at end of file
+ enabled: false
diff --git a/k8s/minikube_values.yaml b/k8s/minikube_values.yaml
index 79d1b855..a70ed44d 100644
--- a/k8s/minikube_values.yaml
+++ b/k8s/minikube_values.yaml
@@ -20,7 +20,7 @@ hub:
c.Spawner.port = 8000
c.Spawner.http_timeout = 300
c.Spawner.start_timeout = 300
- c.Spawner.notebook_dir = '/home/jovyan/work/NetPyNE-UI'
+ c.Spawner.notebook_dir = '/opt/workspace'
c.Spawner.default_url = '/geppetto'
c.Spawner.debug = True
c.Spawner.disable_check_xsrf=True
diff --git a/netpyne_ui/__init__.py b/netpyne_ui/__init__.py
index cb0bf72e..1b003722 100644
--- a/netpyne_ui/__init__.py
+++ b/netpyne_ui/__init__.py
@@ -1,6 +1,34 @@
import logging
-from jupyter_geppetto.webapi import RouteManager
+import sys
+import os
+from jupyter_geppetto.webapi import RouteManager
from netpyne_ui import api
+from netpyne_ui.constants import HERE
+import sentry_sdk
+
+sentry_sdk.init(
+ "https://d8bf7e40eec34cb9891f6dd8207b5e83@sentry.metacell.us/6"
+)
+
+HEAD_MODEL_FILE = os.getenv("NP_LFPYKIT_HEAD_FILE", "sa_nyhead.mat")
+
+def init_eeg():
+ import sys
+ from netpyne_ui.constants import HERE
+ # FIXES library asking for input to download
+ sys.stdin = open(os.path.join(HERE, "resources/stdin.txt"),'r')
+ from lfpykit.eegmegcalc import NYHeadModel
+ try:
+ NYHeadModel(HEAD_MODEL_FILE) # Downloads the model if does not exist
+ except:
+ logging.error("Error initializing the EEG head model", exc_info=True)
+
+if not os.path.exists(HEAD_MODEL_FILE):
+ from multiprocessing import Process
+ thread = Process(target = init_eeg)
+ thread.start()
+
+RouteManager.add_controller(api.NetPyNEController)
+
-RouteManager.add_controller(api.NetPyNEController)
\ No newline at end of file
diff --git a/netpyne_ui/api.py b/netpyne_ui/api.py
index 91cac361..75580c53 100644
--- a/netpyne_ui/api.py
+++ b/netpyne_ui/api.py
@@ -8,7 +8,8 @@
from tempfile import TemporaryDirectory
from jupyter_geppetto.webapi import get, post
from notebook.base.handlers import IPythonHandler
-from netpyne_ui.constants import NETPYNE_WORKDIR, UPLOAD_FOLDER_NAME, ALLOWED_EXTENSIONS, UPLOAD_FOLDER_PATH
+from netpyne_ui.constants import ALLOWED_EXTENSIONS, UPLOAD_FOLDER_PATH
+
def allowed_file(filename, allowed_extensions=ALLOWED_EXTENSIONS):
return '.' in filename and \
@@ -18,7 +19,8 @@ def allowed_file(filename, allowed_extensions=ALLOWED_EXTENSIONS):
def send_files(handler, file_path, filename):
with open(file_path, "rb") as f:
handler.set_header('Content-Type', 'application/force-download')
- handler.set_header('Content-Disposition', f"attachment; filename={filename}")
+ handler.set_header('Content-Disposition',
+ f"attachment; filename={filename}")
try:
while True:
@@ -26,7 +28,7 @@ def send_files(handler, file_path, filename):
if _buffer:
handler.write(_buffer)
else:
- return
+ return
except:
handler.set_status(500, f"Error sending files")
@@ -35,36 +37,57 @@ def get_file_paths(handler):
file_paths = False
if 'uri' in handler.request.arguments:
file_paths = []
- tmp_file_paths = [path.decode('utf-8') for path in handler.request.arguments['uri']]
+ tmp_file_paths = [path.decode('utf-8')
+ for path in handler.request.arguments['uri']]
for path in tmp_file_paths:
if os.path.exists(path):
file_paths.append(path)
-
+
return file_paths
+
+def is_within_directory(directory, target):
+ abs_directory = os.path.abspath(directory)
+ abs_target = os.path.abspath(target)
+
+ prefix = os.path.commonprefix([abs_directory, abs_target])
+
+ return prefix == abs_directory
+
+
+def safe_extract_tar(tar, path=".", members=None, *, numeric_owner=False):
+ for member in tar.getmembers():
+ member_path = os.path.join(path, member.name)
+ if not is_within_directory(path, member_path):
+ raise Exception("Attempted Path Traversal in Tar File")
+ tar.extractall(path, members, numeric_owner=numeric_owner)
+
+
class NetPyNEController: # pytest: no cover
@post('/uploads')
def uploads(handler: IPythonHandler):
files = handler.request.files
files_saved = 0
-
+
if len(files) == 0 or 'file' not in files:
- handler.set_status(400, f"Can't find 'file' or filename is empty. Files received {len(files)}")
+ handler.set_status(
+ 400, f"Can't find 'file' or filename is empty. Files received {len(files)}")
else:
for f in files['file']:
if not allowed_file(f.filename):
- logging.warn(f"Can't store file {f.filename}. Extension not allowed")
+ logging.warn(
+ f"Can't store file {f.filename}. Extension not allowed")
continue
- ## Save to file
+ # Save to file
filename = f.filename
file_path = os.path.join(UPLOAD_FOLDER_PATH, filename)
-
+
with open(file_path, 'wb') as zf:
zf.write(f['body'])
-
+
files_saved += 1
if filename.endswith('.zip'):
@@ -73,23 +96,20 @@ def uploads(handler: IPythonHandler):
elif filename.endswith('.tar.gz'):
with tarfile.open(file_path, mode='r:gz') as tar:
- tar.extractall(UPLOAD_FOLDER_PATH)
+ safe_extract_tar(tar, UPLOAD_FOLDER_PATH)
elif filename.endswith('.gz'):
with gzip.open(file_path, "rb") as gz, open(file_path.replace('.gz', ''), 'wb') as ff:
shutil.copyfileobj(gz, ff)
-
+
handler.set_status(200, f"Number of files saved: {files_saved}. Number of files sent: {len(files['file'])}")
handler.finish()
-
+
@get('/downloads')
def downloads(handler: IPythonHandler):
-
file_paths = get_file_paths(handler)
-
if file_paths:
-
if len(file_paths) == 0:
handler.set_status(400, f"Files not found.")
handler.finish()
@@ -97,15 +117,49 @@ def downloads(handler: IPythonHandler):
if len(file_paths) == 1:
send_files(handler, file_paths[0], file_paths[0].split('/')[-1])
-
- else :
+
+ else:
with TemporaryDirectory() as dir_path:
tar_gz_file_name = f'{str(uuid.uuid4())}.tar.gz'
tar_gz_file_path = os.path.join(dir_path, tar_gz_file_name)
with tarfile.open(tar_gz_file_path, mode='w:gz') as tar:
for file_path in file_paths:
- tar.add(file_path, os.path.join('download', file_path.split('/')[-1]))
+ tar.add(file_path, os.path.join(
+ 'download', file_path.split('/')[-1]))
send_files(handler, tar_gz_file_path, tar_gz_file_name)
-
+
handler.finish()
+
+
+def create_notebook(filename):
+ import nbformat as nbf
+ from nbformat.v4.nbbase import new_notebook
+ from nbformat import sign
+ import codecs
+
+ directory = os.path.dirname(filename)
+ if not os.path.exists(directory):
+ os.makedirs(directory)
+ nb0 = new_notebook(cells=[nbf.v4.new_markdown_cell("""# Welcome to the NetPyNE-ui!
+
+ """),
+ nbf.v4.new_code_cell(
+ 'netpyne_geppetto.netParams'),
+ nbf.v4.new_code_cell(
+ 'netpyne_geppetto.simConfig')
+ ], metadata={"kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ }})
+
+ f = codecs.open(filename, encoding='utf-8', mode='w')
+
+ nbf.write(nb0, filename)
+ f.close()
+
+
+# TODO move to jupyter geppetto, using notebook dir path
+if os.path.exists('workspace') and not os.path.exists('workspace/notebook.ipynb'):
+ create_notebook('workspace/notebook.ipynb')
diff --git a/netpyne_ui/constants.py b/netpyne_ui/constants.py
index 283d781c..96fe3ee6 100644
--- a/netpyne_ui/constants.py
+++ b/netpyne_ui/constants.py
@@ -2,12 +2,21 @@
UPLOAD_FOLDER_NAME = 'uploads'
NETPYNE_WORKDIR = 'workspace'
+EXPERIMENTS_FOLDER = "experiments"
+MODEL_OUTPUT_FILENAME = 'model_output'
-ALLOWED_EXTENSIONS = ["py", "zip", "gz", ".tar.gz", "pdf", "txt", "xls", "png", "jpeg", "hoc"]
+SIMULATION_SCRIPT_NAME = "init.py"
+TEMPLATE_FILENAME_SINGLE_RUN = "run.py"
+TEMPLATE_FILENAME_SINGLE_RUN_INSTANTIATED = "run_instantiated_net.py"
+TEMPLATE_FILENAME_BATCH_RUN = "batch_run_single.py"
+TEMPLATE_FILENAME_BATCH = "batch.py"
+
+ALLOWED_EXTENSIONS = ["py", "zip", "gz", ".tar.gz", "pdf", "txt", "xls", "png", "jpeg", "hoc", "json", "xml", "nml"]
HERE = os.path.dirname(os.path.abspath(__file__))
ROOT = os.path.dirname(HERE)
UPLOAD_FOLDER_PATH = os.path.join(ROOT, NETPYNE_WORKDIR, UPLOAD_FOLDER_NAME)
NETPYNE_WORKDIR_PATH = os.path.join(ROOT, NETPYNE_WORKDIR)
+EXPERIMENTS_FOLDER_PATH = os.path.join(ROOT, NETPYNE_WORKDIR, EXPERIMENTS_FOLDER)
if not os.path.exists(NETPYNE_WORKDIR_PATH):
NETPYNE_WORKDIR_PATH = os.path.join(os.getcwd(), NETPYNE_WORKDIR)
diff --git a/netpyne_ui/experiments.py b/netpyne_ui/experiments.py
new file mode 100644
index 00000000..2838fa56
--- /dev/null
+++ b/netpyne_ui/experiments.py
@@ -0,0 +1,350 @@
+import copy
+import dataclasses
+import datetime
+import json
+import logging
+import shutil
+import pathlib
+import os
+
+import numpy as np
+from typing import List
+from dacite import from_dict
+from netpyne.batch import Batch
+
+from netpyne_ui import utils
+from netpyne_ui import constants
+from netpyne_ui import model
+
+SIM_CONFIG_FILE = "simConfig.json"
+NET_PARAMS_FILE = "netParams.json"
+EXPERIMENT_FILE = "experiment.json"
+
+# Id for the base model trial created for an Experiment without parameters.
+BASE_TRIAL_ID = "model_output"
+
+
+class ExperimentsError(Exception):
+ """ Base Exception for any specific Experiment errors. """
+ pass
+
+
+def get_experiments() -> List[dict]:
+ """Returns the current list of experiments.
+
+ Scans the experiments folder to read experiments from disk and includes experiment in design.
+ """
+ # Only update Experiments stored on filesystem
+ stored_experiments = _scan_experiments_directory()
+ model.experiments = [
+ e for e in model.experiments if e.state in model.ExperimentState.DESIGN
+ ]
+ model.experiments.extend(stored_experiments)
+
+ return [dataclasses.asdict(e) for e in model.experiments]
+
+
+def add_experiment(experiment: dict):
+ exp = from_dict(model.Experiment, experiment)
+ exp.trials = _create_trials(exp)
+
+ if exp.state == model.ExperimentState.DESIGN:
+ # Only one exp in design can exist
+ [model.experiments.remove(e) for e in get_by_states(model.ExperimentState.DESIGN)]
+
+ _add_experiment(exp)
+
+
+def get_experiment(name: str) -> dict:
+ exp = _get_by_name(name)
+ return dataclasses.asdict(exp) if exp else None
+
+
+def remove_experiment(name: str):
+ experiment = _get_by_name(name)
+ if experiment:
+ _delete_experiment_folder(experiment)
+ model.experiments.remove(experiment)
+
+
+def edit_experiment(name: str, experiment: dict):
+ exp = _get_by_name(name)
+ if not exp:
+ raise ExperimentsError(f"Experiment with name {name} does not exist")
+
+ if exp.state != model.ExperimentState.DESIGN:
+ raise ExperimentsError(
+ f"Can only edit experiment in {model.ExperimentState.DESIGN} state"
+ )
+
+ updated_exp = from_dict(model.Experiment, experiment)
+ updated_exp.trials = _create_trials(updated_exp)
+ model.experiments.remove(exp)
+ _add_experiment(updated_exp)
+
+
+def replace_current_with(name: str):
+ """Replaces the experiment in design with a new experiment based on experiment with `name`.
+
+ :param name: name of experiment to be cloned.
+ :raises ExperimentsError: thrown if Experiment with `name` doesn't exist.
+ """
+ exp = _get_by_name(name)
+ if not exp:
+ raise ExperimentsError(f"Experiment with name {name} does not exist")
+
+ next_name = utils.get_next_file_name(constants.EXPERIMENTS_FOLDER_PATH, name)
+ new_exp = model.Experiment(
+ name=next_name,
+ state=model.ExperimentState.DESIGN,
+ params=exp.params,
+ seed=exp.seed,
+ initConfig=exp.initConfig,
+ method=exp.method,
+ )
+
+ current = get_current()
+ if current:
+ remove_experiment(current.name)
+
+ new_exp.trials = _create_trials(new_exp)
+ _add_experiment(new_exp)
+ return
+
+
+def get_current() -> model.Experiment:
+ return next(
+ (exp for exp in model.experiments if exp.state == model.ExperimentState.DESIGN),
+ None,
+ )
+
+
+def get_by_states(states: List[model.ExperimentState]) -> List[model.Experiment]:
+ return [e for e in model.experiments if e.state in states]
+
+
+def any_in_state(states: List[model.ExperimentState]) -> model.Experiment:
+ return any(get_by_states(states))
+
+
+def set_to_error(experiment: model.Experiment):
+ """Sets the state of `experiment` to ERROR. """
+ path = os.path.join(
+ constants.NETPYNE_WORKDIR_PATH, constants.EXPERIMENTS_FOLDER, experiment.name
+ )
+
+ try:
+ with open(os.path.join(path, EXPERIMENT_FILE), "r") as f:
+ experiment_config = json.load(f)
+
+ with open(os.path.join(path, EXPERIMENT_FILE), "w") as f:
+ experiment_config["state"] = model.ExperimentState.ERROR
+ json.dump(experiment_config, f, default=str, sort_keys=True, indent=4)
+
+ except IOError:
+ raise ExperimentsError(f"Could not find {EXPERIMENT_FILE}")
+
+
+def get_model_specification(name: str, trial: str) -> dict:
+ """Returns JSON representation of the netParams & simConfig of the requested trial.
+
+ :param name: the experiment name.
+ :param trial: the trial identifier.
+ :return: dict
+ """
+ path = get_trial_output_path(name, trial, fallback=True)
+ if path is None or not os.path.exists(path):
+ raise ExperimentsError(f"Condition file {path} not found")
+
+ with open(path, "r") as f:
+ trial_output = json.load(f)
+ model_spec = {}
+
+ if "simConfig" in trial_output:
+ model_spec["simConfig"] = trial_output["simConfig"]
+
+ try:
+ params = trial_output["net"]["params"]
+ except KeyError:
+ logging.error(f"net params is not present in {path}")
+ else:
+ model_spec["net"] = {"params": params}
+
+ return model_spec
+
+
+def get_trial_output_path(
+ experiment_name: str, trial: str, fallback: bool = False
+) -> pathlib.PosixPath:
+ path = os.path.join(constants.EXPERIMENTS_FOLDER_PATH, experiment_name)
+ trial_path = next(pathlib.Path(path).glob(f"*{trial}_data.json"), None)
+
+ if trial_path is None and fallback:
+ trial_path = next(pathlib.Path(path).glob(f"*{trial}_cfg.json"), None)
+
+ return trial_path
+
+
+def _add_experiment(experiment: model.Experiment):
+ if _get_by_name(experiment.name):
+ raise ExperimentsError(f"Experiment {experiment.name} already exists")
+
+ model.experiments.append(experiment)
+
+
+def _get_by_name(name: str) -> model.Experiment:
+ experiment = next((e for e in model.experiments if e.name == name), None)
+ return experiment
+
+
+def _scan_experiments_directory() -> List[model.Experiment]:
+ if not pathlib.Path(constants.EXPERIMENTS_FOLDER_PATH).exists():
+ return []
+
+ dirs = list(
+ [
+ f
+ for f in os.listdir(constants.EXPERIMENTS_FOLDER_PATH)
+ if os.path.isdir(os.path.join(constants.EXPERIMENTS_FOLDER_PATH, f))
+ ]
+ )
+
+ experiments = []
+ for directory in dirs:
+ try:
+ experiment = _parse_experiment(directory)
+ except ExperimentsError:
+ logging.exception(f"Failed to parse experiment {directory}")
+ else:
+ experiments.append(experiment)
+
+ return experiments
+
+
+def _parse_experiment(directory: str) -> model.Experiment:
+ """Finds and parses Experiments stored in `directory` on the disk.
+
+ We expect the following files to be present:
+ * experiment.json (Experiment model and run config)
+ * netParams.json
+ * simConfig.json
+ * json file for each trial in case of batch
+ * data files for each trial (if available)
+
+ :raises ExperimentsError
+ """
+ path = os.path.join(
+ constants.NETPYNE_WORKDIR_PATH, constants.EXPERIMENTS_FOLDER, directory
+ )
+
+ try:
+ with open(os.path.join(path, EXPERIMENT_FILE), "r") as f:
+ experiment_config = json.load(f)
+ except IOError:
+ raise ExperimentsError(f"Could not find {EXPERIMENT_FILE}")
+
+ del experiment_config["runCfg"]
+
+ # Convert timestamp to datetime
+ experiment_config["timestamp"] = datetime.datetime.fromisoformat(
+ experiment_config["timestamp"]
+ )
+
+ experiment = from_dict(model.Experiment, experiment_config)
+ experiment.folder = directory
+ experiment.trials = _create_trials(experiment)
+ return experiment
+
+
+def _delete_experiment_folder(experiment: model.Experiment):
+ """Recursively deletes the associated `experiment` folder."""
+
+ def onerror(func, path, exc_info):
+ # TODO: error handling
+ pass
+
+ if experiment.folder:
+ path = os.path.join(
+ constants.NETPYNE_WORKDIR_PATH,
+ constants.EXPERIMENTS_FOLDER,
+ experiment.folder,
+ )
+ shutil.rmtree(path, onerror=onerror)
+
+
+def _create_base_model_trial() -> model.Trial:
+ return model.Trial(name="Condition 1", id=BASE_TRIAL_ID)
+
+
+def _create_trials(experiment: model.Experiment) -> List[model.Trial]:
+ """Gerates based on `experiment.params` all possible trial combinations.
+
+ :param experiment: given experiment.
+ :return: list of generated trials.
+ """
+ params = copy.deepcopy(experiment.params)
+ params = process_params(params)
+
+ if len(experiment.params) < 1:
+ # No params defined -> one trial representing base model
+ return [_create_base_model_trial()]
+
+ params_dict = {}
+ grouped_params = []
+ for p in params:
+ params_dict[p.mapsTo] = p.values
+ if p.inGroup:
+ grouped_params.append(p.mapsTo)
+
+ # Initialize Batch so that we can call getParamCombinations()
+ batch = Batch(params=params_dict, groupedParams=grouped_params)
+ batch.method = "grid"
+ batch.saveFolder = ""
+ batch.batchLabel = ""
+
+ # { indices, values, labels, filenames}
+ combinations = batch.getParamCombinations()
+ if not combinations["labels"]:
+ return [_create_base_model_trial()]
+
+ trials = []
+ for combIdx, paramValues in enumerate(combinations["values"]):
+ # index of paramValues := index of labels list
+ # value of paramValues := parameter value
+ params = [{combinations["labels"][idx]: v for idx, v in enumerate(paramValues)}]
+
+ filename = combinations["filenames"][combIdx][1:]
+ indices = combinations["indices"][combIdx]
+ name = f"Condition {combIdx + 1}"
+
+ trials.append(
+ model.Trial(name=name, params=params, indices=indices, id=filename)
+ )
+
+ return trials
+
+
+def process_params(params: List[model.ExplorationParameter]) -> List[model.ExplorationParameter]:
+ """Cleaning, filtering and converting of experiment `params`.
+
+ :param params: given parameters.
+ :raises ExperimentsError: thrown for invalid parameter configuration.
+ :return: processed list of params.
+ """
+ params = [p for p in params if p.mapsTo != '']
+
+ for param in params:
+ if param.type == "range":
+ if param.step > 0:
+ # Final values must be either of type int or float depending on the range parameters.
+ convert_type = int if all(type(t) == int for t in [param.min, param.max, param.step]) else float
+ param.values = [convert_type(e) for e in list(np.arange(param.min, param.max, param.step))]
+ else:
+ raise ExperimentsError("Invalid step value, must be greater than 0")
+
+ elif param.type == "list":
+ # nothing to do here
+ pass
+
+ params = [p for p in params if p.values is not None and len(p.values) > 0]
+ return params
diff --git a/netpyne_ui/helpers/neuroml.py b/netpyne_ui/helpers/neuroml.py
new file mode 100644
index 00000000..84ad5a7f
--- /dev/null
+++ b/netpyne_ui/helpers/neuroml.py
@@ -0,0 +1,129 @@
+import os
+import sys
+import logging
+from netpyne.specs import simConfig
+from packaging import version
+
+import pyneuroml
+from pyneuroml import pynml
+from pyneuroml.lems import generate_lems_file_for_neuroml
+from pyneuroml.pynml import read_neuroml2_file
+
+from netpyne_ui.mod_utils import loadModMechFiles
+
+
+def convertLEMSSimulation(lemsFileName, compileMod=True):
+ """Converts a LEMS Simulation file
+
+ Converts a LEMS Simulation file
+ (https://docs.neuroml.org/Userdocs/LEMSSimulation.html) pointing to a
+ NeuroML 2 file into the equivalent in NetPyNE
+
+ Returns:
+ simConfig, netParams for the model in NetPyNE
+ """
+ current_path = os.getcwd()
+ try:
+
+ fullLemsFileName = os.path.abspath(lemsFileName)
+ tmp_path = os.path.dirname(fullLemsFileName)
+ if tmp_path:
+ os.chdir(tmp_path)
+ logging.info(
+ "Importing LEMSSimulation with NeuroML 2 network from: %s"
+ % fullLemsFileName
+ )
+
+ # feature to return output added in 1.0.9
+ if version.parse(pyneuroml.__version__) >= version.parse("1.0.9"):
+ result, output_msg = pynml.run_lems_with_jneuroml_netpyne(
+ lemsFileName, only_generate_json=True, exit_on_fail=False,
+ return_string=True, max_memory="1G")
+
+ if result is False:
+ raise Exception(f"Error loading lems file: {output_msg}")
+ else:
+ result = pynml.run_lems_with_jneuroml_netpyne(
+ lemsFileName, only_generate_json=True, exit_on_fail=False,
+ max_memory="1G")
+
+ if result is False:
+ raise Exception("Error loading lems file")
+
+ lems = pynml.read_lems_file(lemsFileName)
+
+ np_json_fname = fullLemsFileName.replace('.xml','_netpyne_data.json')
+
+ return np_json_fname
+ finally:
+ os.chdir(current_path)
+
+
+def convertNeuroML2(nml2FileName, compileMod=True):
+ """Loads a NeuroML 2 file into NetPyNE
+ Loads a NeuroML 2 file into NetPyNE by creating a new LEMS Simulation
+ file (https://docs.neuroml.org/Userdocs/LEMSSimulation.html) and using
+ jNeuroML to convert it.
+
+ Returns:
+ simConfig, netParams for the model in NetPyNE
+ """
+ current_path = os.getcwd()
+ try:
+ fullNmlFileName = os.path.abspath(nml2FileName)
+ work_path = os.path.dirname(fullNmlFileName)
+ if not os.path.exists(work_path):
+ os.makedirs(work_path)
+ os.chdir(work_path)
+ sys.path.append(work_path)
+
+ logging.info(
+ "Importing NeuroML 2 network from: %s"
+ % fullNmlFileName
+ )
+ nml_model = read_neuroml2_file(fullNmlFileName)
+
+ target = nml_model.networks[0].id
+ sim_id = "Sim_%s" % target
+ duration = 1000
+ dt = 0.025
+ lems_file_name = os.path.join(os.path.dirname(fullNmlFileName), "LEMS_%s.xml" % sim_id)
+ lems_file_name = "LEMS_%s.xml" % sim_id
+ target_dir = os.path.dirname(fullNmlFileName)
+ target_dir = "."
+
+ generate_lems_file_for_neuroml(
+ sim_id,
+ fullNmlFileName,
+ target,
+ duration,
+ dt,
+ lems_file_name,
+ target_dir,
+ include_extra_files=["PyNN.xml"],
+ gen_plots_for_all_v=True,
+ plot_all_segments=False,
+ gen_plots_for_quantities={}, # Dict with displays vs lists of quantity paths
+ gen_plots_for_only_populations=[], # List of populations, all pops if = []
+ gen_saves_for_all_v=True,
+ save_all_segments=False,
+ gen_saves_for_only_populations=[], # List of populations, all pops if = []
+ gen_saves_for_quantities={}, # Dict with file names vs lists of quantity paths
+ gen_spike_saves_for_all_somas=True,
+ report_file_name="report.txt",
+ copy_neuroml=True,
+ verbose=True,
+ )
+ os.chdir(work_path)
+ res = convertLEMSSimulation(lems_file_name, compileMod=compileMod)
+ finally:
+ os.chdir(current_path)
+ return res
+
+
+if __name__ == "__main__":
+
+ if '-nml' in sys.argv:
+ convertNeuroML2("../../NeuroML2/Spikers.net.nml")
+ else:
+ convertLEMSSimulation("LEMS_HHSimple.xml")
diff --git a/netpyne_ui/mod_utils.py b/netpyne_ui/mod_utils.py
index f3f09975..3fba08a7 100644
--- a/netpyne_ui/mod_utils.py
+++ b/netpyne_ui/mod_utils.py
@@ -1,3 +1,4 @@
+import logging
import shutil
import subprocess
import os
@@ -26,19 +27,33 @@ def is_loaded_mechanisms():
return True
-def compileModMechFiles(compileMod, modFolder):
+def loadModMechFiles(compileMod, modFolder, forceRecompile=False):
# Create Symbolic link
- if compileMod:
- modPath = os.path.join(str(modFolder), "x86_64")
-
- if os.path.exists(modPath):
- shutil.rmtree(modPath)
-
- os.chdir(modFolder)
- subprocess.call(["nrnivmodl"])
- os.chdir('..')
try:
- neuron.load_mechanisms(str(modFolder))
- except:
- raise
+
+ owd = os.getcwd()
+ if compileMod:
+
+ compiledModPath = os.path.join(str(modFolder), "x86_64")
+
+ if os.path.exists(compiledModPath) and forceRecompile:
+ logging.info("Forcing mod files to recompile in %s" % modFolder)
+ shutil.rmtree(compiledModPath)
+
+ if not os.path.exists(compiledModPath):
+ logging.info("Compiling mod files in %s" % modFolder)
+ os.chdir(modFolder)
+ subprocess.call(["nrnivmodl"])
+ os.chdir('..')
+
+ try:
+ neuron.load_mechanisms(str(modFolder))
+ except:
+ logging.exception("Error loading mechanisms")
+ if not forceRecompile:
+ logging.info("Trying to recompile mod files")
+ loadModMechFiles(True, modFolder, forceRecompile=True)
+ raise
+ finally:
+ os.chdir(owd)
diff --git a/netpyne_ui/model.py b/netpyne_ui/model.py
new file mode 100644
index 00000000..081348aa
--- /dev/null
+++ b/netpyne_ui/model.py
@@ -0,0 +1,95 @@
+from dataclasses import dataclass
+from dataclasses import field
+from datetime import datetime
+from typing import List, Optional
+
+
+def register(metadata):
+ # Modification of metadata to enable validation of experiment parameters.
+ metadata['netParams']['children']['popParams']['container'] = True
+ metadata['netParams']['children']['cellParams']['container'] = True
+ metadata['netParams']['children']['cellParams']['children']['conds']['container'] = True
+ metadata['netParams']['children']['cellParams']['children']['secs']['container'] = True
+ metadata['netParams']['children']['synMechParams']['container'] = True
+ metadata['netParams']['children']['connParams']['container'] = True
+ metadata['netParams']['children']['stimSourceParams']['container'] = True
+ metadata['netParams']['children']['stimTargetParams']['container'] = True
+
+
+class ExperimentState:
+ DESIGN = "DESIGN"
+ PENDING = "PENDING"
+ SIMULATING = "SIMULATING"
+ INSTANTIATING = "INSTANTIATING"
+ SIMULATED = "SIMULATED"
+ INSTANTIATED = "INSTANTIATED"
+ ERROR = "ERROR"
+
+
+@dataclass
+class ExplorationParameter:
+ """ Parameter with possible values that will be explored in netpyne.batch. """
+
+ # Path to target parameter in netParams dict
+ mapsTo: str
+ # Type can be either 'list' or 'range'
+ type: str
+ # List of values of different type
+ values: Optional[List] = None
+ # Range fields
+ min: Optional[float] = None
+ max: Optional[float] = None
+ step: Optional[float] = None
+ # If True, parameter is added to grouped parameters
+ inGroup: bool = False
+ # Set in cfg.py to cfg.label =
+ label: str = ""
+
+
+@dataclass
+class Trial:
+ # Display name.
+ name: str = ''
+ # Unique id to find trial on disk.
+ # Concatenated str of indices e.g. "0_1_1" with 3 parameters.
+ id: str = ''
+ # [{ "paramX": 0.2, "paramY": "0.4"}]
+ params: list = field(default_factory=list)
+ indices: list = field(default_factory=list)
+
+
+@dataclass
+class Experiment:
+ # Name is the unique identifier
+ name: str
+ # DESIGN, INSTANTIATING, INSTANTIATED, SIMULATING, SIMULATED
+ state: str = ExperimentState.DESIGN
+ # Exploration parameter config
+ params: List[ExplorationParameter] = field(default_factory=list)
+ # Generated based on params
+ trials: List[Trial] = field(default_factory=list)
+ # SIMULATED or INSTANTIATED date
+ timestamp: datetime = field(default_factory=datetime.today)
+
+ # Overwrites simConfig parameters
+ initConfig: dict = field(default_factory=dict)
+ method: str = "grid"
+ # Part of initCfg?
+ seed: Optional[int] = None
+
+ # Folder in workspace, empty in DESIGN
+ folder: Optional[str] = None
+
+
+@dataclass
+class RunConfig:
+ """ Run config for either single or batch simulation."""
+ parallel: bool = True
+ asynchronous: bool = True
+ cores: int = 1
+ resource: str = "local"
+ # or mpi_direct (doesn't support waiting for processes to finish)
+ type: str = 'mpi_bulletin'
+
+
+experiments = []
diff --git a/netpyne_ui/netpyne_geppetto.py b/netpyne_ui/netpyne_geppetto.py
index bd0a6a64..8922e3c6 100644
--- a/netpyne_ui/netpyne_geppetto.py
+++ b/netpyne_ui/netpyne_geppetto.py
@@ -1,34 +1,84 @@
"""
netpyne_geppetto.py
+
Initialise NetPyNE Geppetto, this class contains methods to connect NetPyNE with the Geppetto based UI
"""
import json
import os
+from os.path import join, dirname
+from glob import glob
+import copy
+import dataclasses
import importlib
-import sys
-import subprocess
+import json
import logging
+import os
+from pathlib import Path
+import pprint
import re
+import sys
+from shutil import copyfile
+from dacite import from_dict
+import base64
+import jsonpickle
+import neuron
+import numpy as np
from netpyne import specs, sim, analysis
-from netpyne.specs.utils import validateFunction
from netpyne.conversion.neuronPyHoc import mechVarList
from netpyne.metadata import metadata
+from netpyne.specs.utils import validateFunction
+from netpyne.sim import utils as netpyne_utils
+
+from netpyne_ui import experiments
+from netpyne_ui import constants
+from netpyne_ui import model
+from netpyne_ui import simulations
+from netpyne_ui import utils as netpyne_ui_utils
from netpyne_ui.netpyne_model_interpreter import NetPyNEModelInterpreter
+from netpyne_ui.simulations import InvalidConfigError
from pygeppetto.model.model_serializer import GeppettoModelSerializer
-import matplotlib.pyplot as plt
from pygeppetto import ui
-import numpy as np
-import neuron
-from shutil import copyfile
from jupyter_geppetto import jupyter_geppetto, synchronization, utils
from contextlib import redirect_stdout
from netpyne_ui.constants import NETPYNE_WORKDIR_PATH, NUM_CONN_LIMIT
-from netpyne_ui.mod_utils import compileModMechFiles
-
-os.chdir(NETPYNE_WORKDIR_PATH)
-
-neuron.nrn_dll_loaded.append(os.path.join(NETPYNE_WORKDIR_PATH, 'mod')) # Avoids to load workspace modfiles twice
+from netpyne_ui.mod_utils import loadModMechFiles
+
+os.chdir(constants.NETPYNE_WORKDIR_PATH)
+
+
+class NetpyneValidationError(Exception):
+ ...
+
+
+def deepcopy_wout_empty(d, memo=None):
+ def is_empty(x):
+ return x == '' or x == [] or x == () or x == set() or x == {} or x is None
+
+ # if is_empty(d):
+ # return None
+ memo = {} if memo is None else memo
+ if id(d) in memo:
+ return memo[id(d)]
+ if isinstance(d, dict):
+ cpy = {}
+ for k, v in d.items():
+ v_cpy = deepcopy_wout_empty(v, memo=memo)
+ if is_empty(v_cpy):
+ continue
+ cpy[k] = memo.setdefault(id(v), v_cpy)
+ return cpy
+ elif isinstance(d, (list, set, tuple)):
+ return d.__class__(memo.setdefault(id(v), deepcopy_wout_empty(v, memo=memo)) for v in d if not is_empty(v))
+ elif hasattr(d, '__dict__'):
+ cpy = d.__new__(d.__class__) # We skip the initializer, in case it needs some arguments
+ for k, v in d.__dict__.items():
+ v_cpy = deepcopy_wout_empty(v, memo=memo)
+ # if is_empty(v_cpy): #
+ # continue
+ cpy.__dict__[k] = memo.setdefault(id(v), v_cpy)
+ return cpy
+ return d
class NetPyNEGeppetto:
@@ -36,13 +86,33 @@ class NetPyNEGeppetto:
def __init__(self):
self.model_interpreter = NetPyNEModelInterpreter()
+ # Geppetto model of a created network
+ self.geppetto_model = None
+
self.netParams = specs.NetParams()
self.simConfig = specs.SimConfig()
+ self.run_config = model.RunConfig()
+ self.simConfig.recordTraces = {'V_soma': {'sec':'soma', 'loc':0.5, 'var':'v'}}
+
+ self.experiments = experiments
+
+ model.register(metadata)
+
synchronization.startSynchronization(self.__dict__)
logging.debug("Initializing the original model")
jupyter_geppetto.context = {'netpyne_geppetto': self}
+ # Set running experiments without any subprocess to ERRROR
+ experiments.get_experiments()
+ running_exps = experiments.get_by_states([
+ model.ExperimentState.PENDING,
+ model.ExperimentState.SIMULATING,
+ model.ExperimentState.INSTANTIATING
+ ])
+ if not simulations.local.is_running():
+ [experiments.set_to_error(e) for e in running_exps]
+
def getData(self):
return {
"metadata": metadata,
@@ -50,73 +120,359 @@ def getData(self):
"simConfig": self.simConfig.todict(),
"isDocker": os.path.isfile('/.dockerenv'),
"currentFolder": os.getcwd(),
- "tuts": self.find_tutorials()
+ "tuts": self.find_tutorials(),
+ "cores": simulations.local.cpus
}
- def find_tutorials(self):
- from os import listdir
- from os.path import isfile, join
- onlyfiles = [f for f in listdir(NETPYNE_WORKDIR_PATH) if isfile(join(NETPYNE_WORKDIR_PATH, f))]
+ def getModelAsJson(self):
+ # TODO: netpyne should offer a method asJSON (#240)
+ # that returns the JSON model without dumping to to disk.
+ obj = netpyne_utils.replaceFuncObj({"netParams": self.netParams.__dict__, "simConfig": self.simConfig.__dict__})
+ obj = netpyne_utils.replaceDictODict(obj)
+ return obj
+
+ def get_run_configuration(self):
+ return dataclasses.asdict(self.run_config)
+
+ def edit_run_configuration(self, configDictionary: dict):
+ self.run_config = from_dict(model.RunConfig, configDictionary)
- def _filter(_file):
- return '.py' in _file and 'tut' in _file and 'gui' in _file
+ def cloneExperiment(self, payload: dict):
+ """ Loads experiment from disk and replaces experiment in design with it.
- return list(filter(_filter, onlyfiles))
+ 1. Replaces current experiment in design with copy of stored experiment.
+ 2. Replace current model specification with spec of stored experiment.
+
+ :param payload: { name: str, replaceModelSpec: bool, replaceExperiment: bool }
+ """
+ name = payload.get('name')
+
+ # Creates new Experiment in design based on `name` experiment.
+ if payload.get('replaceExperiment', True):
+ experiments.replace_current_with(name)
+
+ # Replaces model specification
+ if payload.get('replaceModelSpec', True):
+ path = os.path.join(constants.EXPERIMENTS_FOLDER_PATH, name)
+ if self.doIhaveInstOrSimData()['haveInstance']:
+ sim.clearAll()
+
+ sim.initialize()
+ sim.loadNetParams(os.path.join(path, experiments.NET_PARAMS_FILE))
+ sim.loadSimCfg(os.path.join(path, experiments.SIM_CONFIG_FILE))
+ self.netParams = sim.net.params
+ self.simConfig = sim.cfg
+ netpyne_ui_utils.remove(self.simConfig.todict())
+ netpyne_ui_utils.remove(self.netParams.todict())
+
+ def viewExperimentResult(self, payload: dict):
+ """ Loads the output file of a simulated experiment trial.
+
+ :param payload: {name: str, trial: str, onlyModelSpecification: bool}
+ :return: geppetto model
+ """
+ name = payload.get("name", None)
+ trial = payload.get("trial", None)
+ only_model_spec = payload.get("onlyModelSpecification", False)
+
+ file = experiments.get_trial_output_path(name, trial)
+ if file is None or not os.path.exists(file):
+ return utils.getJSONError(f"Couldn't find output file of condition. Please take a look at the simulation log.", "")
+
+ if self.doIhaveInstOrSimData()['haveInstance']:
+ sim.clearAll()
+
+ sim.initialize()
+
+ if only_model_spec:
+ # Load only model specification
+ sim.loadNetParams(file)
+ sim.loadSimCfg(file)
+ self.netParams = sim.net.params
+ self.simConfig = sim.cfg
+ netpyne_ui_utils.remove(self.simConfig.todict())
+ netpyne_ui_utils.remove(self.netParams.todict())
+ return
+ else:
+ # Load the complete simulation
+ sim.loadAll(file)
+ self._create3D_shapes(file)
+ self.geppetto_model = self.model_interpreter.getGeppettoModel(sim)
+ return json.loads(GeppettoModelSerializer.serialize(self.geppetto_model))
+
+ def stopExperiment(self, experiment_name):
+ simulations.local.stop()
+ return {
+ "message": f"Stopped simulation of {experiment_name}"
+ }
+
+ def find_tutorials(self):
+ return glob(join(NETPYNE_WORKDIR_PATH, "**/gui_tut*.py"), recursive=True)
def instantiateNetPyNEModelInGeppetto(self, args):
try:
with redirect_stdout(sys.__stdout__):
- if not 'usePrevInst' in args or not args['usePrevInst']:
+ if not args.get("usePrevInst", False):
+ if self.doIhaveInstOrSimData()['haveInstance']:
+ sim.clearAll()
netpyne_model = self.instantiateNetPyNEModel()
self.geppetto_model = self.model_interpreter.getGeppettoModel(netpyne_model)
return json.loads(GeppettoModelSerializer.serialize(self.geppetto_model))
- except:
- return utils.getJSONError("Error while instantiating the NetPyNE model", sys.exc_info())
+ except NetpyneValidationError as e:
+ message = ("Error while validating the NetPyNE model before instantiation.\n"
+ "One or more components in your model have issues, see details below:")
+ logging.exception(message)
+ return utils.getJSONError(message, '\n'.join(e.args))
+ except Exception as e:
+ message = "Error while instantiating the NetPyNE model"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
+
+ def simulate_experiment_trials(self, experiment: model.Experiment):
+ try:
+ working_directory = self._prepare_batch_files(experiment)
+ except OSError:
+ experiment.state = model.ExperimentState.ERROR
+ return utils.getJSONError("The specified folder already exists", "")
+ logging.info("Running experiment %s combinations", experiment.name)
+ try:
+ simulations.run(
+ platform="local",
+ parallel=self.run_config.parallel,
+ cores=self.run_config.cores,
+ method=self.run_config.type,
+ batch=True,
+ asynchronous=self.run_config.asynchronous,
+ working_directory=working_directory
+ )
+ except InvalidConfigError as e:
+ experiment.state = model.ExperimentState.ERROR
+ logging.error("Error running experiment %s: %s", experiment.name, str(e))
+ return utils.getJSONError(str(e), "")
+
+ if self.run_config.asynchronous:
+ message = f"Experiment {experiment.name} started. " \
+ f"You can view the Experiment status in the Experiment Manager."
+ else:
+ message = f"Experiment {experiment.name} finished, you can view the results in the Experiment Manager."
+
+ return dict(message=message)
+
+ def simulate_single_model(self, experiment: model.Experiment = None, use_prev_inst: bool = False):
+ if experiment:
+ working_directory = self._prepare_simulation_files(experiment, use_prev_inst)
+
+ simulations.run(
+ parallel=self.run_config.parallel,
+ cores=self.run_config.cores,
+ asynchronous=self.run_config.asynchronous,
+ method=simulations.MPI_BULLETIN,
+ working_directory=working_directory,
+ )
+
+ if self.run_config.asynchronous:
+ message = "Experiment is pending! " \
+ f"Results will be stored in your workspace at ./{os.path.join(constants.EXPERIMENTS_FOLDER, experiment.name)}"
+ return dict(message=message)
+ else:
+ sim.load(f'{constants.MODEL_OUTPUT_FILENAME}.json')
+ self.geppetto_model = self.model_interpreter.getGeppettoModel(sim)
+ response = json.loads(GeppettoModelSerializer.serialize(self.geppetto_model))
+ return response
+
+ else:
+ # Run in same process
+ if not use_prev_inst:
+ logging.debug('Instantiating single thread simulation')
+ netpyne_model = self.instantiateNetPyNEModel()
+
+ self.geppetto_model = self.model_interpreter.getGeppettoModel(netpyne_model)
+
+ simulations.run()
+
+ if self.geppetto_model:
+ response = json.loads(GeppettoModelSerializer.serialize(self.geppetto_model))
+ return response
+
+
+ def validate_netParams(self):
+ cpy = deepcopy_wout_empty(self.netParams)
+ _, failed = sim.validator.validateNetParams(cpy)
+ if failed:
+ message = ""
+ components_error = {}
+ for entry in failed:
+ components_error.setdefault(entry.component, []).append((entry.keyPath, entry.summary))
+ for component, details in components_error.items():
+ message = message + f"* Error validating {component}\n"
+ for (keyPath, summary) in details:
+ path = ' -> '.join(f"{key}" for key in keyPath)
+ message = message + f" Error in {path}\n"
+ for line in summary:
+ message = message + f" {line}\n"
+ message = message + "\n"
+ raise NetpyneValidationError(message)
+
def simulateNetPyNEModelInGeppetto(self, args):
+ """ Starts simulation of the currently loaded NetPyNe model.
+
+ * runConfiguration is used to determine asynch/synch & other parameters.
+ * complete flag in args decides if we simulate single model as Experiment or complete Experiment.
+ * if Experiment in design does not exist, we create a new one & start single sim.
+ * All Simulations run in different process.
+
+ :param args: { allTrials: bool, usePrevInst: bool }
+ :return: geppetto model.
+ """
+ allTrials = args.get('allTrials', True)
+ use_prev_inst = args.get('usePrevInst', False)
+ sim_id = args.get('simId', 0)
try:
- with redirect_stdout(sys.__stdout__):
- # TODO mpi is not finding libmpi.dylib.. set LD_LIBRARY_PATH to openmpi bin folder, but nothing
- if args['parallelSimulation']:
- logging.debug('Running parallel simulation')
- if not 'usePrevInst' in args or not args['usePrevInst']:
- self.netParams.save("netParams.json")
- self.simConfig.saveJson = True
- self.simConfig.save("simParams.json")
- template = os.path.join(os.path.dirname(__file__), 'template.py')
+ self.validate_netParams()
+
+ experiment = experiments.get_current()
+ if experiment:
+ if self.experiments.any_in_state([model.ExperimentState.PENDING, model.ExperimentState.SIMULATING]):
+ return utils.getJSONError("Experiment is already simulating or pending", "")
+
+ if simulations.local.is_running():
+ simulations.local.stop()
+
+ experiment.state = model.ExperimentState.PENDING
+
+ try:
+ if allTrials:
+ if len(experiment.trials) == 1 and experiment.trials[0].id == experiments.BASE_TRIAL_ID:
+ # special case where we don't want to run a batch simulation
+ return self.simulate_single_model(experiment, use_prev_inst)
+ else:
+ return self.simulate_experiment_trials(experiment)
else:
- sim.cfg.saveJson = True
- oldName = sim.cfg.filename
- sim.cfg.filename = 'model_output'
- sim.saveData()
- sim.cfg.filename = oldName
- template = os.path.join(os.path.dirname(__file__), 'template2.py')
- copyfile(template, './init.py')
-
- cp = subprocess.run(["mpiexec", "-n", args['cores'], "nrniv", "-mpi", "-python", "init.py"],
- capture_output=True)
- print(cp.stdout.decode() + cp.stderr.decode())
- if cp.returncode != 0: return utils.getJSONError("Error while simulating the NetPyNE model",
- cp.stderr.decode())
- sim.load('model_output.json')
- self.geppetto_model = self.model_interpreter.getGeppettoModel(sim)
- netpyne_model = sim
+ return self.simulate_single_model(experiment, use_prev_inst)
+ except Exception:
+ experiment.state = model.ExperimentState.ERROR
+ message = f"Unknown error during simulation of Experiment. SimulationId {sim_id}"
+ logging.exception(message)
+ # return utils.getJSONError("Unknown error during simulation of Experiment", sys.exc_info(), { "sim_id": sim_id})
+ return utils.getJSONError("Unknown error during simulation of Experiment", sys.exc_info())
- else:
- logging.info("Starting simulation")
+ else:
+ return self.simulate_single_model(use_prev_inst=use_prev_inst)
+ except NetpyneValidationError as e:
+ message = (f"Error while validating the NetPyNE model before simulation {sim_id}.\n"
+ "One or more components in your model have issues, see details below:")
+ logging.exception(message)
+ return utils.getJSONError(message, '\n'.join(e.args))
+
+ except Exception as e :
+ message = f"Error while simulating the NetPyNE model: {e}. SimulationId {sim_id}"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
+
+ def _prepare_simulation_files(self, experiment: model.Experiment = None, use_prev_inst: bool = False) -> str:
+ """Prepares template files and netpyne model files for a single simulation """
+ exp = copy.deepcopy(experiment)
+ # Remove parameter & trials for single run
+ exp.params = []
+ exp.trials = []
+
+ save_folder_path = os.path.join(constants.NETPYNE_WORKDIR_PATH, constants.EXPERIMENTS_FOLDER, exp.name)
+ try:
+ os.makedirs(save_folder_path)
+ except OSError:
+ raise
- if not args.get('usePrevInst', False):
- logging.debug('Instantiating single thread simulation')
- netpyne_model = self.instantiateNetPyNEModel()
- self.geppetto_model = self.model_interpreter.getGeppettoModel(netpyne_model)
+ if use_prev_inst:
+ sim.cfg.saveJson = True
+ oldName = sim.cfg.filename
+ sim.cfg.filename = constants.MODEL_OUTPUT_FILENAME
- logging.debug('Running single thread simulation')
- netpyne_model = self.simulateNetPyNEModel()
+ # workaround for issue with empty LFP dict when calling saveData()
+ if 'LFP' in sim.allSimData:
+ del sim.allSimData['LFP']
- return json.loads(GeppettoModelSerializer.serialize(self.geppetto_model))
- except:
- return utils.getJSONError("Error while simulating the NetPyNE model", sys.exc_info())
+ # TODO: store in experiments folder!
+ sim.saveData()
+ sim.cfg.filename = oldName
+ template_name = constants.TEMPLATE_FILENAME_SINGLE_RUN_INSTANTIATED
+ else:
+ # Create netParams and SimConfig
+ self.netParams.save(os.path.join(save_folder_path, experiments.NET_PARAMS_FILE))
+
+ simCfg = copy.copy(self.simConfig)
+ # filename and simLabel must be set to define the output filename
+ simCfg.saveJson = True
+ simCfg.filename = 'model_output'
+ simCfg.simLabel = 'model_output'
+ simCfg.saveDataInclude = [
+ "simData",
+ "simConfig",
+ "netParams",
+ "net"
+ ]
+ simCfg.save(os.path.join(save_folder_path, experiments.SIM_CONFIG_FILE))
+
+ template_name = constants.TEMPLATE_FILENAME_SINGLE_RUN
+
+ # Create Experiment Config
+ config_dict = dataclasses.asdict(exp)
+ config_dict["runCfg"] = dataclasses.asdict(self.run_config)
+ experiment_config = os.path.join(save_folder_path, experiments.EXPERIMENT_FILE)
+ json.dump(config_dict, open(experiment_config, 'w'), default=str, sort_keys=True, indent=4)
+
+ # Copy Template
+ template = os.path.join(os.path.dirname(__file__), "templates", template_name)
+ copyfile(template, os.path.join(save_folder_path, constants.SIMULATION_SCRIPT_NAME))
+
+ return save_folder_path
+
+ def _prepare_batch_files(self, experiment: model.Experiment) -> str:
+ """Creates template files and netpyne model files in the experiment folder.
+
+ Only for an experiment consisting of many trials.
+
+ :param experiment: given experiment
+ :return: working directory path
+ """
+ exp = copy.deepcopy(experiment)
+ exp.params = self.experiments.process_params(exp.params)
+
+ netParams = copy.deepcopy(self.netParams)
+ netParams.mapping = {p.mapsTo.replace('netParams.', ''): p.mapsTo.split('.')[1::] for p in exp.params if 'netParams' in p.mapsTo}
+
+ simCfg = copy.copy(self.simConfig)
+ simCfg.saveJson = True
+ simCfg.saveDataInclude = [
+ "simData",
+ "simConfig",
+ "netParams",
+ "net"
+ ]
+
+ config_dict = dataclasses.asdict(exp)
+ config_dict["runCfg"] = dataclasses.asdict(self.run_config)
+
+ save_folder_path = os.path.join(constants.NETPYNE_WORKDIR_PATH, constants.EXPERIMENTS_FOLDER, exp.name)
+ try:
+ os.makedirs(save_folder_path)
+ except OSError:
+ raise
+
+ simCfg.save(os.path.join(save_folder_path, experiments.SIM_CONFIG_FILE))
+ netParams.save(os.path.join(save_folder_path, experiments.NET_PARAMS_FILE))
+
+ experiment_json = os.path.join(save_folder_path, experiments.EXPERIMENT_FILE)
+ json.dump(config_dict, open(experiment_json, 'w'), default=str, sort_keys=True, indent=4)
+
+ template_single_run = os.path.join(os.path.dirname(__file__), "templates", constants.TEMPLATE_FILENAME_BATCH_RUN)
+ template_batch = os.path.join(os.path.dirname(__file__), "templates", constants.TEMPLATE_FILENAME_BATCH)
+ copyfile(template_single_run, os.path.join(save_folder_path, 'run.py'))
+ # TODO: name should be batch.py not init.py
+ copyfile(template_batch, os.path.join(save_folder_path, constants.SIMULATION_SCRIPT_NAME))
+
+ return save_folder_path
def loadModel(self, args):
""" Imports a model stored as file in json format.
@@ -124,25 +480,16 @@ def loadModel(self, args):
:param args:
:return:
"""
-
- def remove(dictionary):
- # remove reserved keys such as __dict__, __Method__, etc
- # they appear when we do sim.loadAll(json_file)
- if isinstance(dictionary, dict):
- for key, value in list(dictionary.items()):
- if key.startswith('__'):
- dictionary.pop(key)
- else:
- remove(value)
-
if not any([args[option] for option in ['loadNetParams', 'loadSimCfg', 'loadSimData', 'loadNet']]):
return utils.getJSONError("Error while loading data", 'You have to select at least one option')
try:
owd = os.getcwd()
- compileModMechFiles(args['compileMod'], args['modFolder'])
- except:
- return utils.getJSONError("Error while importing/compiling mods", sys.exc_info())
+ loadModMechFiles(args['compileMod'], args['modFolder'])
+ except Exception:
+ message = "Error while importing/compiling mods"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
finally:
os.chdir(owd)
@@ -155,11 +502,12 @@ def remove(dictionary):
if self.doIhaveInstOrSimData()['haveInstance']:
sim.clearAll()
sim.initialize()
- sim.loadAll(args['jsonModelFolder'])
+ sim.loadAll(args['jsonModelFolder'], instantiate=False)
self.netParams = sim.net.params
self.simConfig = sim.cfg
- remove(self.netParams.todict())
- remove(self.simConfig.todict())
+ self.simConfig.saveCellSecs = True
+ netpyne_ui_utils.remove(self.netParams.todict())
+ netpyne_ui_utils.remove(self.simConfig.todict())
else:
if args['loadNet']:
wake_up_geppetto = True
@@ -168,7 +516,8 @@ def remove(dictionary):
sim.initialize()
sim.loadNet(args['jsonModelFolder'])
- if args['loadSimData']: # TODO (https://github.com/Neurosim-lab/netpyne/issues/360)
+ # TODO (https://github.com/Neurosim-lab/netpyne/issues/360)
+ if args['loadSimData']:
wake_up_geppetto = True
if not self.doIhaveInstOrSimData()['haveInstance']:
sim.create(specs.NetParams(), specs.SimConfig())
@@ -179,30 +528,69 @@ def remove(dictionary):
if args['loadSimCfg']:
sim.loadSimCfg(args['jsonModelFolder'])
self.simConfig = sim.cfg
- remove(self.simConfig.todict())
+ netpyne_ui_utils.remove(self.simConfig.todict())
if args['loadNetParams']:
if self.doIhaveInstOrSimData()['haveInstance']:
sim.clearAll()
sim.loadNetParams(args['jsonModelFolder'])
self.netParams = sim.net.params
- remove(self.netParams.todict())
+ netpyne_ui_utils.remove(self.netParams.todict())
if wake_up_geppetto:
- if len(sim.net.cells) > 0:
- section = list(sim.net.cells[0].secs.keys())[0]
- if 'pt3d' not in list(sim.net.cells[0].secs[section].geom.keys()):
- sim.net.defineCellShapes()
- sim.gatherData()
- sim.loadSimData(args['jsonModelFolder'])
+ self._create3D_shapes(args['jsonModelFolder'])
+ # TODO: Fix me - gatherData will remove allSimData!
sim.gatherData()
+
self.geppetto_model = self.model_interpreter.getGeppettoModel(sim)
return json.loads(GeppettoModelSerializer.serialize(self.geppetto_model))
else:
return utils.getJSONReply()
- except:
- return utils.getJSONError("Error while loading the NetPyNE model", sys.exc_info())
+ except Exception:
+ message = "Error while loading the NetPyNE model"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
+
+ def _create3D_shapes(self, json_path: str):
+ """ Creates cellShapes for 3D viewer.
+
+ Performed as final step after `json_path` was loaded.
+ """
+ if len(sim.net.cells) > 0:
+ section = list(sim.net.cells[0].secs.keys())[0]
+ if 'pt3d' not in list(sim.net.cells[0].secs[section].geom.keys()):
+ sim.net.defineCellShapes()
+ sim.gatherData()
+ # Load again because gatherData removed simData
+ sim.loadSimData(json_path)
+
+ def loadFromIndexFile(self, json_path: str):
+ cfg, netParams = sim.loadModel(json_path, loadMechs=True, ignoreMechAlreadyExistsError=True)
+ self.simConfig = cfg
+ self.netParams = netParams
+
+ if isinstance(self.netParams, dict):
+ self.netParams = specs.NetParams(self.netParams)
+
+ if isinstance(self.simConfig, dict):
+ self.simConfig = specs.SimConfig(self.simConfig)
+
+ for key, value in self.netParams.cellParams.items():
+ if hasattr(value, 'todict'):
+ self.netParams.cellParams[key] = value.todict()
+
+ # TODO: when should sim.initialize be called?
+ # Only on import or better before every simulation or network instantiation?
+ sim.initialize()
+
+ def saveToIndexFile(self, srcPath, dstPath, exportNetParamsAsPython, exportSimConfigAsPython):
+ sim.saveModel(netParams=self.netParams,
+ simConfig=self.simConfig,
+ srcPath=srcPath,
+ dstPath=dstPath,
+ exportNetParamsAsPython=exportNetParamsAsPython,
+ exportSimConfigAsPython=exportSimConfigAsPython)
def importModel(self, modelParameters):
""" Imports a model stored in form of Python files.
@@ -214,13 +602,16 @@ def importModel(self, modelParameters):
# TODO: this must be integrated into the general lifecycle of "model change -> simulate"
# Shouldn't be specific to Import
sim.clearAll()
-
+ try:
+ loadModMechFiles(modelParameters['compileMod'], modelParameters['modFolder'], modelParameters.get("forceRecompile", True))
+ except Exception:
+ message = "Error while importing/compiling mods"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
try:
# Get Current dir
owd = os.getcwd()
- compileModMechFiles(modelParameters['compileMod'], modelParameters['modFolder'])
-
with redirect_stdout(sys.__stdout__):
# NetParams
net_params_path = str(modelParameters["netParamsPath"])
@@ -231,6 +622,12 @@ def importModel(self, modelParameters):
# Import Model attributes
self.netParams = getattr(net_params_module_name, str(modelParameters["netParamsVariable"]))
+ if isinstance(self.netParams, dict):
+ self.netParams = specs.NetParams(self.netParams)
+
+ if isinstance(self.simConfig, dict):
+ self.simConfig = specs.SimConfig(self.simConfig)
+
for key, value in self.netParams.cellParams.items():
if hasattr(value, 'todict'):
self.netParams.cellParams[key] = value.todict()
@@ -249,7 +646,69 @@ def importModel(self, modelParameters):
sim.initialize()
return utils.getJSONReply()
except:
- return utils.getJSONError("Error while importing the NetPyNE model", sys.exc_info())
+ message = "Error while importing the NetPyNE model"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
+ finally:
+ os.chdir(owd)
+
+ def importNeuroML(self, modelParameters):
+ from netpyne_ui.helpers import neuroml
+
+
+ try:
+ # Get Current dir
+ owd = os.getcwd()
+
+ with redirect_stdout(sys.__stdout__):
+ # NetParams
+ filename = str(modelParameters["fileName"])
+
+ json_fname = neuroml.convertNeuroML2(filename, compileMod=modelParameters["compileMod"])
+
+ return self.loadModel(args=dict(
+ compileMod=True,
+ modFolder=os.path.dirname(json_fname),
+ jsonModelFolder=json_fname,
+ loadNet=True,
+ loadSimData=True,
+ loadSimCfg=True,
+ loadNetParams=True
+ ))
+ except:
+ message = "Error while importing the NetPyNE model"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
+ finally:
+ os.chdir(owd)
+
+ def importLEMS(self, modelParameters):
+ from netpyne_ui.helpers import neuroml
+
+
+ try:
+ # Get Current dir
+ owd = os.getcwd()
+
+ with redirect_stdout(sys.__stdout__):
+ # NetParams
+ filename = str(modelParameters["fileName"])
+
+ json_fname = neuroml.convertLEMSSimulation(filename)
+
+ return self.loadModel(args=dict(
+ compileMod=True,
+ modFolder=os.path.dirname(json_fname),
+ jsonModelFolder=json_fname,
+ loadNet=True,
+ loadSimData=True,
+ loadSimCfg=True,
+ loadNetParams=True
+ ))
+ except Exception:
+ message = "Error while importing the NetPyNE model"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
finally:
os.chdir(owd)
@@ -262,7 +721,7 @@ def importCellTemplate(self, modelParameters):
conds = {} if rule not in self.netParams.cellParams else self.netParams.cellParams[rule]['conds']
- compileModMechFiles(modelParameters["compileMod"], modelParameters["modFolder"])
+ loadModMechFiles(modelParameters["compileMod"], modelParameters["modFolder"])
del modelParameters["modFolder"]
del modelParameters["compileMod"]
@@ -273,8 +732,10 @@ def importCellTemplate(self, modelParameters):
self.netParams.cellParams[rule] = self.netParams.cellParams[rule].todict()
return utils.getJSONReply()
- except:
- return utils.getJSONError("Error while importing the NetPyNE cell template", sys.exc_info())
+ except Exception:
+ message = "Error while importing the NetPyNE cell template"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
finally:
os.chdir(owd)
@@ -284,29 +745,33 @@ def exportModel(self, args):
if not args['netCells']:
sim.initialize(netParams=self.netParams, simConfig=self.simConfig)
sim.cfg.filename = args['fileName']
- include = [el for el in specs.SimConfig().saveDataInclude if el in args.keys() and args[el]]
+ sim_config_data_include = specs.SimConfig().saveDataInclude
+ include = [el for el in sim_config_data_include if args.get(el, False)]
if args['netCells']: include += ['netPops']
sim.cfg.saveJson = True
sim.saveData(include)
sim.cfg.saveJson = False
- with open(f"{sim.cfg.filename}.json") as json_file:
+ with open(f"{sim.cfg.filename}_data.json") as json_file:
data = json.load(json_file)
return data
- return utils.getJSONReply()
- except:
- return utils.getJSONError("Error while exporting the NetPyNE model", sys.exc_info())
+ except Exception:
+ message = "Error while exporting the NetPyNE model"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
def exportNeuroML(self, modelParams):
try:
with redirect_stdout(sys.__stdout__):
sim.exportNeuroML2(modelParams['fileName'], specs.SimConfig())
return utils.getJSONReply()
- except:
- return utils.getJSONError("Error while exporting the NetPyNE model", sys.exc_info())
+ except Exception:
+ message = "Error while exporting the NetPyNE model"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
- def importNeuroML(self, modelParams):
+ def importNeuroMLOLD(self, modelParams):
try:
with redirect_stdout(sys.__stdout__):
sim.initialize()
@@ -315,8 +780,10 @@ def importNeuroML(self, modelParams):
self.geppetto_model = self.model_interpreter.getGeppettoModel(sim)
return json.loads(GeppettoModelSerializer.serialize(self.geppetto_model))
- except:
- return utils.getJSONError("Error while exporting the NetPyNE model", sys.exc_info())
+ except Exception:
+ message = "Error while exporting the NetPyNE model"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
def deleteModel(self, modelParams):
try:
@@ -325,35 +792,33 @@ def deleteModel(self, modelParams):
self.simConfig = specs.SimConfig()
sim.initialize(specs.NetParams(), specs.SimConfig())
self.geppetto_model = None
- except:
- return utils.getJSONError("Error while exporting the NetPyNE model", sys.exc_info())
+ except Exception:
+ message = "Error while exporting the NetPyNE model"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
try:
- # This function fails is some keys don't exists
- # sim.clearAll()
- # TODO: as part of #264 we should remove the method and use clearAll intstead
- self.clearSim()
+ sim.clearAll()
except:
- pass
+ logging.exception("Failed to clear simulation")
return utils.getJSONReply()
def instantiateNetPyNEModel(self):
+ self.validate_netParams()
with redirect_stdout(sys.__stdout__):
saveData = sim.allSimData if hasattr(sim, 'allSimData') and 'spkt' in sim.allSimData.keys() and len(
sim.allSimData['spkt']) > 0 else False
+
+ #netcoded = jsonpickle.encode(self.netParams, unpicklable=False)
+ #simcoded = jsonpickle.encode(self.simConfig, unpicklable=False)
sim.create(self.netParams, self.simConfig)
sim.net.defineCellShapes() # creates 3d pt for cells with stylized geometries
sim.gatherData(gatherLFP=False)
- if saveData: sim.allSimData = saveData # preserve data from previous simulation
- return sim
+ if saveData:
+ sim.allSimData = saveData # preserve data from previous simulation
- def simulateNetPyNEModel(self):
- with redirect_stdout(sys.__stdout__):
- sim.setupRecording()
- sim.simulate()
- sim.saveData()
return sim
def doIhaveInstOrSimData(self):
@@ -375,17 +840,21 @@ def doIhaveInstOrSimData(self):
return {'haveInstance': out[0], 'haveSimData': out[1]}
def rename(self, path, oldValue, newValue):
- command = 'sim.rename(self.' + path + ',"' + oldValue + '","' + newValue + '")'
+ # command = 'sim.rename(self.' + path + ',"' + oldValue + '","' + newValue + '")'
+ command = f'sim.rename(self.{path}, {oldValue!r}, {newValue!r})'
logging.debug('renaming ' + command)
+
eval(command)
for model, synched_component in list(jupyter_geppetto.synched_models.items()):
if model != '' and oldValue in model and path in model: #
jupyter_geppetto.synched_models.pop(model)
- newModel = re.sub("(['])(?:(?=(\\?))\2.)*?\1", lambda x: x.group(0).replace(oldValue, newValue, 1),
- model)
- logging.debug("Rename funct - Model is " + model + " newModel is " + newModel)
- jupyter_geppetto.synched_models[newModel] = synched_component
+ new_model = re.sub("(['])(?:(?=(\\?))\2.)*?\1",
+ lambda x: x.group(0).replace(oldValue, newValue, 1),
+ model)
+ logging.debug("Rename funct - Model is " + model + " newModel is " + new_model)
+ jupyter_geppetto.synched_models[new_model] = synched_component
+
with redirect_stdout(sys.__stdout__):
if "popParams" in path:
self.propagate_field_rename("pop", newValue, oldValue)
@@ -401,10 +870,21 @@ def getPlotSettings(self, plot_name):
return self.simConfig.analysis[plot_name]
return {}
- def getDirList(self, dir=None, onlyDirs=False, filterFiles=False):
+ def checkFileExists(self, path):
+ path = Path(path or '')
+ return path.exists()
+
+ def getFullPath(self, dir, subDir):
+ if dir is None or dir == '':
+ base = constants.NETPYNE_WORKDIR_PATH
+ if subDir:
+ base = os.path.join(base, subDir)
+ dir = os.path.join(os.getcwd(), base)
+ return dir
+
+ def getDirList(self, dir=None, onlyDirs=False, filterFiles=False, subDir=None):
# Get Current dir
- if dir == None or dir == '':
- dir = os.path.join(os.getcwd(), NETPYNE_WORKDIR_PATH)
+ dir = self.getFullPath(dir, subDir)
dir_list = []
file_list = []
for f in sorted(os.listdir(str(dir)), key=str.lower):
@@ -422,6 +902,13 @@ def checkAvailablePlots(self):
def getPlot(self, plotName, LFPflavour, theme='gui'):
try:
with redirect_stdout(sys.__stdout__):
+ availablePlots = self.checkAvailablePlots()
+ checkCondition = availablePlots.get(plotName.replace('iplot', 'plot'), False)
+
+ if checkCondition is False:
+ logging.info("Plot " + plotName + " not available")
+ return -1
+
args = self.getPlotSettings(plotName)
if LFPflavour:
args['plots'] = [LFPflavour]
@@ -432,9 +919,15 @@ def getPlot(self, plotName, LFPflavour, theme='gui'):
# This arg brings dark theme. But some plots are broken by it
args['theme'] = theme
- if plotName in ("iplotConn", "iplot2Dnet") and sim.net.allCells:
+ if plotName in ("iplotConn", "iplot2Dnet") and hasattr(sim, 'net') and sim.net.allCells:
+ def conns_length(cell) -> int:
+ if type(cell) is dict:
+ return len(cell.get('conns', []))
+ else:
+ return len(getattr(cell, 'conns', []))
+
# To prevent unresponsive kernel, we don't show conns if they become too many
- num_conn = sum([len(cell.conns) for cell in sim.net.allCells if cell.conns])
+ num_conn = sum([conns_length(cell) for cell in sim.net.allCells])
if num_conn > NUM_CONN_LIMIT:
args["showConns"] = False
@@ -449,11 +942,9 @@ def getPlot(self, plotName, LFPflavour, theme='gui'):
return html
else:
-
- figData = getattr(analysis, plotName)(**args)
-
- if isinstance(figData, tuple):
- fig = figData[0]
+ fig_data = getattr(analysis, plotName)(**args)
+ if isinstance(fig_data, tuple):
+ fig = fig_data[0]
if fig == -1:
return fig
elif isinstance(fig, list):
@@ -466,9 +957,13 @@ def getPlot(self, plotName, LFPflavour, theme='gui'):
else:
return [ui.getSVG(fig)]
else:
- return figData
+ if plotName == 'plotEEG':
+ return self.simConfig.filename + '_EEG.png'
+ elif plotName == 'plotDipole':
+ return self.simConfig.filename + '_dipole.png'
+ else:
+ return fig_data
except Exception as e:
- # TODO: Extract these two lines as a function and call it in every catch clause
err = "There was an exception in %s():" % (e.plotName)
logging.exception(("%s \n %s \n%s" % (err, e, sys.exc_info())))
@@ -476,19 +971,23 @@ def getAvailablePops(self):
return list(self.netParams.popParams.keys())
def getAvailableCellModels(self):
- cellModels = set([])
+ cell_models = set([])
for p in self.netParams.popParams:
if 'cellModel' in self.netParams.popParams[p]:
cm = self.netParams.popParams[p]['cellModel']
- if cm not in cellModels:
- cellModels.add(cm)
- return list(cellModels)
+ if cm not in cell_models:
+ cell_models.add(cm)
+ return list(cell_models)
- def getAvailableCellTypes(self):
- cellTypes = set([])
- for p in self.netParams.cellParams:
- cellTypes.add(p)
- return list(cellTypes)
+ def getAvailableCellModels(self):
+ return ["", "VecStim", "NetStim", "IntFire1"]
+
+ def getAvailableStimulationDistribution(self):
+ return ["normal", "uniform"]
+
+ def getAvailableStimulationPattern(self):
+ # self.netParams.popParams[name]['spikePattern'] = {}
+ return ["", "rhythmic", "evoked", "poisson", "gauss"]
def getAvailableSections(self):
sections = {}
@@ -496,9 +995,40 @@ def getAvailableSections(self):
sections[cellRule] = list(self.netParams.cellParams[cellRule]['secs'].keys())
return sections
+ def getAvailableCellTypes(self):
+ cell_types = set([])
+ cell_types.add('all')
+ for p in self.netParams.cellParams:
+ cell_types.add(p)
+ return sorted(cell_types)
+
+ def getAvailableDensityTypes(self):
+ return ['uniform', '1DMap', '2DMap', 'distance']
+
+ def getAvailableRxDSections(self, selectedRegion = None):
+ sections = set([])
+ sections.add('all')
+ if selectedRegion and selectedRegion in self.netParams.rxdParams.regions and self.netParams.rxdParams.regions[selectedRegion].get('cells'):
+ if 'all' in self.netParams.rxdParams.regions[selectedRegion]['cells']:
+ for cellRule in self.netParams.cellParams:
+ for cellSect in self.netParams.cellParams[cellRule]['secs']:
+ sections.add(cellSect)
+ else:
+ for cellRule in self.netParams.cellParams:
+ if cellRule in self.netParams.rxdParams.regions[selectedRegion]['cells']:
+ for cellSect in self.netParams.cellParams[cellRule]['secs']:
+ sections.add(cellSect)
+ return sorted(sections)
+
def getAvailableStimSources(self):
return list(self.netParams.stimSourceParams.keys())
+ def getAvailableRxdRegions(self):
+ return list(self.netParams.rxdParams.regions.keys())
+
+ def getAvailableRxdSpecies(self):
+ return list(self.netParams.rxdParams.species.keys())
+
def getAvailableSynMech(self):
return list(self.netParams.synMechParams.keys())
@@ -524,7 +1054,10 @@ def getAvailablePlots(self):
"plotShape",
"plot2Dnet",
"iplotConn",
- "granger"
+ "granger",
+ "plotDipole",
+ "plotEEG",
+ "plotRateSpectrogram"
]
return [plot for plot in plots if plot not in list(self.simConfig.analysis.keys())]
@@ -569,8 +1102,10 @@ def deleteParam(self, model, label):
# side effect on other rules
if "popParams" in model:
self.propagate_field_rename("pop", None, label)
- self.propagate_field_rename("cellModel", None, rule['cellModel'])
- self.propagate_field_rename("cellType", None, rule['cellType'])
+ if 'cellModel' in rule:
+ self.propagate_field_rename("cellModel", None, rule['cellModel'])
+ if 'cellType' in rule:
+ self.propagate_field_rename("cellType", None, rule['cellType'])
elif "stimSourceParams" in model:
@@ -578,7 +1113,8 @@ def deleteParam(self, model, label):
elif "synMechParams" in model:
self.propagate_field_rename("synMech", None, label)
return True
- except:
+ except Exception as e :
+ logging.exception(f"Error while deleting parameter: {label}")
return False
def validateFunction(self, functionString):
@@ -587,55 +1123,24 @@ def validateFunction(self, functionString):
return validateFunction(functionString, self.netParams.__dict__)
def exportHLS(self, args):
- def convert2bool(string):
- return string.replace('true', 'True').replace('false', 'False').replace('null', 'False')
-
- def header(title, spacer='-'):
- return '\n# ' + title.upper() + ' ' + spacer * (77 - len(title)) + '\n'
try:
- params = ['popParams', 'cellParams', 'synMechParams']
- params += ['connParams', 'stimSourceParams', 'stimTargetParams']
-
- fname = args['fileName'] if args['fileName'][-3:] == '.py' else args['fileName'] + '.py'
-
- with open(fname, 'w') as script:
- script.write('from netpyne import specs, sim\n')
- script.write(header('documentation'))
- script.write("''' Script generated with NetPyNE-UI. Please visit:\n")
- script.write(" - https://www.netpyne.org\n - https://github.com/MetaCell/NetPyNE-UI\n'''\n")
- script.write(header('script', spacer='='))
- script.write('netParams = specs.NetParams()\n')
- script.write('simConfig = specs.SimConfig()\n')
- script.write(header('single value attributes'))
- for attr, value in list(self.netParams.__dict__.items()):
- if attr not in params:
- if value != getattr(specs.NetParams(), attr):
- script.write('netParams.' + attr + ' = ')
- script.write(convert2bool(json.dumps(value, indent=4)) + '\n')
-
- script.write(header('network attributes'))
- for param in params:
- for key, value in list(getattr(self.netParams, param).items()):
- script.write("netParams." + param + "['" + key + "'] = ")
- script.write(convert2bool(json.dumps(value, indent=4)) + '\n')
-
- script.write(header('network configuration'))
- for attr, value in list(self.simConfig.__dict__.items()):
- if value != getattr(specs.SimConfig(), attr):
- script.write('simConfig.' + attr + ' = ')
- script.write(convert2bool(json.dumps(value, indent=4)) + '\n')
-
- script.write(header('create simulate analyze network'))
- script.write('# sim.createSimulateAnalyze(netParams=netParams, simConfig=simConfig)\n')
-
- script.write(header('end script', spacer='='))
+ fname = args.get('fileName', 'output.py')
+ if not fname[-3:] == '.py':
+ fname = f"{fname}.py"
+
+ from netpyne.conversion import createPythonScript
+ createPythonScript(fname, self.netParams, self.simConfig)
with open(fname) as f:
- return f.read()
+ file_b64 = base64.b64encode(bytes(f.read(), 'utf-8')).decode()
+ export_info = {"fileContent": file_b64, "fileName": fname}
+ return export_info
- except:
- return utils.getJSONError("Error while importing the NetPyNE model", sys.exc_info())
+ except Exception:
+ message = "Error while exporting NetPyNE model to python"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
def propagate(self, model, label, cond, new, old):
with redirect_stdout(sys.__stdout__):
@@ -644,7 +1149,7 @@ def propagate(self, model, label, cond, new, old):
for plot in analysis.keys():
if cond in analysis[plot].keys():
for index, item in enumerate(analysis[plot][cond]):
- if isinstance(item, str):
+ if isinstance(item, str) or isinstance(item, int):
if item == old:
if new == None:
analysis[plot][cond].remove(item)
@@ -662,11 +1167,11 @@ def propagate(self, model, label, cond, new, old):
else:
obj = getattr(self.netParams, model)
for key in obj.keys():
- if label in list(obj[key][cond].keys()):
+ if cond in obj[key] and label in list(obj[key][cond].keys()):
if isinstance(obj[key][cond][label], str):
if old == obj[key][cond][label]:
if new == '' or new == None:
- obj[key].pop(label)
+ obj[key][cond].pop(label)
else:
obj[key][cond][label] = new
elif isinstance(obj[key][cond][label], list):
@@ -735,63 +1240,20 @@ def propagate_syn_mech_rename(self, new, old):
if self.netParams.stimSourceParams[self.netParams.stimTargetParams[label]['source']][
'type'] == 'NetStim':
if old == self.netParams.stimTargetParams[label]['synMech']:
- if new == None:
+ if new is None:
self.netParams.stimTargetParams[label].pop('synMech')
else:
self.netParams.stimTargetParams[label]['synMech'] = new
- def clearSim(self):
- # clean up
- sim.pc.barrier()
- sim.pc.gid_clear() # clear previous gid settings
-
- # clean cells and simData in all nodes
- sim.clearObj([cell.__dict__ if hasattr(cell, '__dict__') else cell for cell in sim.net.cells])
- if 'stims' in list(sim.simData.keys()):
- sim.clearObj([stim for stim in sim.simData['stims']])
-
- for key in list(sim.simData.keys()): del sim.simData[key]
-
- if hasattr(sim, 'net'):
- for c in sim.net.cells: del c
- for p in sim.net.pops: del p
- if hasattr(sim.net, 'params'):
- del sim.net.params
-
- # clean cells and simData gathered in master node
- if sim.rank == 0:
- if hasattr(sim.net, 'allCells'):
- sim.clearObj([cell.__dict__ if hasattr(cell, '__dict__') else cell for cell in sim.net.allCells])
- if hasattr(sim, 'allSimData'):
- if 'stims' in list(sim.allSimData.keys()):
- sim.clearObj([stim for stim in sim.allSimData['stims']])
- for key in list(sim.allSimData.keys()): del sim.allSimData[key]
- del sim.allSimData
-
- import matplotlib
- matplotlib.pyplot.clf()
- matplotlib.pyplot.close('all')
-
- if hasattr(sim, 'net'):
- if hasattr(sim.net, 'allCells'):
- for c in sim.net.allCells: del c
- del sim.net.allCells
- if hasattr(sim.net, 'allPops'):
- for p in sim.net.allPops: del p
-
- del sim.net
-
- import gc;
- gc.collect()
-
def create_celltype_from_template(self, label="CellType", conds={}, cell_template_name="Blank"):
try:
with redirect_stdout(sys.__stdout__):
self.netParams.addCellParamsTemplate(label=label, template=cell_template_name)
return True
- except:
- return utils.getJSONError(f"Error while creating cellType from template {cell_template_name}",
- sys.exc_info())
+ except Exception:
+ message = f"Error while creating cellType from template {cell_template_name}"
+ logging.exception(message)
+ return utils.getJSONError(message, sys.exc_info())
logging.info("Initialising NetPyNE UI")
diff --git a/netpyne_ui/netpyne_model_interpreter.py b/netpyne_ui/netpyne_model_interpreter.py
index d506a372..2175ab6e 100644
--- a/netpyne_ui/netpyne_model_interpreter.py
+++ b/netpyne_ui/netpyne_model_interpreter.py
@@ -20,8 +20,7 @@ def getGeppettoModel(self, netpyne_model):
# We create a GeppettoModel instance and we set a name a assign a lib
geppetto_model = self.factory.createGeppettoModel('NetPyNEModel')
self.factory.geppetto_common_library = geppetto_model.libraries[0]
- netpyne_geppetto_library = pygeppetto.GeppettoLibrary(
- name='netpynelib')
+ netpyne_geppetto_library = pygeppetto.GeppettoLibrary(name='netpynelib')
geppetto_model.libraries.append(netpyne_geppetto_library)
self.extractPopulations(netpyne_model, netpyne_geppetto_library)
@@ -34,9 +33,12 @@ def extractPopulations(self, netpyne_model, netpyne_geppetto_library):
network = pygeppetto.CompositeType(id='network_netpyne', name='network_netpyne')
netpyne_geppetto_library.types.append(network)
+ if not hasattr(netpyne_model.net, 'allCells'):
+ return
+
# Create intermediate population structure for easy access (by key)
populations = {}
- for index, cell in enumerate(netpyne_model.net.allCells):
+ for _, cell in enumerate(netpyne_model.net.allCells):
# This will be only executed the first time for each population
if cell['tags']['pop'] not in populations:
# Create CellType, VisualType, ArrayType, ArrayVariable and append to netpyne library
@@ -67,10 +69,9 @@ def extractPopulations(self, netpyne_model, netpyne_geppetto_library):
populations[cell['tags']['pop']] = arrayType
# Note: no need to check if pt3d since already done via netpyne sim.net.defineCellShapes() in instantiateNetPyNEModel
- secs = cell['secs']
-
# Iterate sections creating spheres and cylinders
- if hasattr(secs, 'items'):
+ if 'secs' in cell and hasattr(cell['secs'], 'items'):
+ secs = cell['secs']
for sec_name, sec in list(secs.items()):
if 'pt3d' in sec['geom']:
points = sec['geom']['pt3d']
diff --git a/netpyne_ui/resources/stdin.txt b/netpyne_ui/resources/stdin.txt
new file mode 100644
index 00000000..57dc54cc
--- /dev/null
+++ b/netpyne_ui/resources/stdin.txt
@@ -0,0 +1,5 @@
+y
+y
+y
+y
+y
diff --git a/netpyne_ui/simulations.py b/netpyne_ui/simulations.py
new file mode 100644
index 00000000..df19464a
--- /dev/null
+++ b/netpyne_ui/simulations.py
@@ -0,0 +1,144 @@
+import logging
+import subprocess
+import os
+import multiprocessing
+import platform
+
+from netpyne import sim
+from netpyne_ui import constants
+
+# Available netpyne.batch.Batch methods.
+MPI_DIRECT = "mpi_direct"
+MPI_BULLETIN = "mpi_bulletin"
+
+system = platform.system()
+if system == "Darwin":
+ import sys
+
+ # nrniv needs NRN_PYLIB to be set to python executable path (MacOS, Python 3.7.6)
+ os.environ["NRN_PYLIB"] = sys.executable
+
+
+class SimulationError(Exception):
+ """ Base Simulation Exception """
+
+
+class InvalidConfigError(Exception):
+ """ Thrown if invalid number of CPUs were specified. """
+
+
+class LocalSimulationPool:
+ """ Pool that manages simulation running on the same machine as Netpyne-UI. """
+
+ cpus = multiprocessing.cpu_count()
+
+ def __init__(self):
+ # We allow to run only one asynchronous simulation at a time on the same instance.
+ self.subprocess = None
+
+ def run(self, parallel, cores, method="", batch=False, asynchronous=False, working_directory=None):
+ if int(cores) > self.cpus:
+ raise InvalidConfigError(
+ f"Specified {cores} cores, but only {self.cpus} are available")
+
+ logging.info(f"Scheduling simulation on {cores} cores with {method} ...")
+
+ if batch or asynchronous or parallel:
+ if method == MPI_DIRECT:
+ self._run_in_subprocess(
+ _python_command(working_directory), asynchronous=asynchronous, working_directory=working_directory
+ )
+ elif method == MPI_BULLETIN:
+ if parallel:
+ self._run_in_subprocess(
+ _bulletin_board_cmd(cores, working_directory), asynchronous=asynchronous, working_directory=working_directory
+ )
+ else:
+ self._run_in_subprocess(
+ _python_command(working_directory), asynchronous=asynchronous, working_directory=working_directory
+ )
+ else:
+ raise InvalidConfigError(f"Unsupported method {method}")
+ else:
+ return self._run_in_same_process()
+
+ def is_running(self):
+ return self.subprocess and self.subprocess.poll() is None
+
+ def list(self):
+ if not self.subprocess:
+ return "no_simulation"
+
+ ret_code = self.subprocess.poll()
+ if ret_code is None:
+ return "running"
+
+ status = "completed" if ret_code == 0 else "failed"
+ return [{"status": status}]
+
+ def stop(self):
+ if self.is_running():
+ self.subprocess.kill()
+
+ def _run_in_same_process(self):
+ logging.debug('Running single core simulation')
+
+ sim.setupRecording()
+ sim.simulate()
+ sim.saveData()
+
+ def _run_in_subprocess(self, cmds, asynchronous=False, working_directory: str = None):
+ if self.is_running():
+ logging.info("Another simulation is still running")
+ return False
+ logging.info("Running simulations on subprocess inside directory %s", working_directory)
+ logging.info("Running commands: \n%s", "\n".join(cmds))
+ if working_directory:
+ with open(os.path.join(working_directory, 'sim.log'), 'w') as f:
+ self.subprocess = subprocess.Popen(cmds, stdout=f, stderr=f)
+ else:
+ self.subprocess = subprocess.Popen(cmds)
+
+ if not asynchronous:
+ # blocking wait
+ return_code = self.subprocess.wait()
+ if return_code == 0:
+ logging.info("Simulation finished with success")
+ else:
+ logging.error("Simulation run failed")
+
+
+def _bulletin_board_cmd(cores, working_directory=None):
+ """ Creates command to run batch or single simulations in parallel.
+
+ Uses mpiexec that implements the OpenMPI protocol to schedule simulations.
+ Uses the master/worker pattern.
+ """
+ return ["mpiexec", "-n", str(cores), "--use-hwthread-cpus", "nrniv", "-python", "-mpi", _script_path(working_directory)]
+
+
+def _script_path(working_directory=None):
+ return os.path.join(working_directory,
+ constants.SIMULATION_SCRIPT_NAME) if working_directory else f"./{constants.SIMULATION_SCRIPT_NAME}"
+
+
+def _python_command(working_directory=None):
+ return ["python", _script_path(working_directory)]
+
+
+def run(platform="local", parallel=False, cores=1, method="", batch=False, asynchronous=False, working_directory=None):
+ if platform == "local":
+ local.run(
+ parallel=parallel,
+ cores=cores,
+ method=method,
+ batch=batch,
+ asynchronous=asynchronous,
+ working_directory=working_directory
+ )
+ else:
+ # remote simulations in future versions
+ pass
+
+
+local = LocalSimulationPool()
diff --git a/netpyne_ui/template.py b/netpyne_ui/template.py
deleted file mode 100644
index 2a370fd2..00000000
--- a/netpyne_ui/template.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from netpyne import sim
-netParams = sim.loadNetParams("./netParams.json", None, False)
-simConfig = sim.loadSimCfg("./simParams.json", None, False)
-
-sim.createSimulateAnalyze(netParams, simConfig)
-
-
-
diff --git a/netpyne_ui/template2.py b/netpyne_ui/template2.py
deleted file mode 100644
index 17360fc2..00000000
--- a/netpyne_ui/template2.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from netpyne import sim
-sim.load("./model_output.json")
-sim.simulate()
\ No newline at end of file
diff --git a/netpyne_ui/templates/__init__.py b/netpyne_ui/templates/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/netpyne_ui/templates/batch.py b/netpyne_ui/templates/batch.py
new file mode 100644
index 00000000..d3811e83
--- /dev/null
+++ b/netpyne_ui/templates/batch.py
@@ -0,0 +1,132 @@
+import json
+import os
+import sys
+import tempfile
+import pathlib
+import time
+
+from neuron import h
+from netpyne import specs
+from netpyne.batch import Batch
+
+CURRENT_DIR = "."
+try:
+ CURRENT_DIR = os.path.dirname(__file__)
+except:
+ pass
+
+os.chdir(CURRENT_DIR)
+
+def is_error():
+ """Validates if Experiment failed or succeeded.
+
+ Experiment is successful if there exists a data file for every trial (cfg file)
+ """
+
+ data_files = list(pathlib.Path(
+ CURRENT_DIR).glob(f"*_data.json"))
+ cfg_files = list(pathlib.Path(
+ CURRENT_DIR).glob(f"*_cfg.json"))
+
+ if len(data_files) != len(cfg_files):
+ print(
+ f"data files don't match with cfg files {len(data_files)} - {len(cfg_files)}")
+ return True
+
+ return False
+
+
+def update_state(experiment, state):
+ experiment["state"] = state
+
+ with tempfile.NamedTemporaryFile('w', dir=os.path.dirname("experiment.json"), delete=False) as tf:
+ json.dump(experiment, tf, default=str, sort_keys=True, indent=4)
+ tempname = tf.name
+
+ os.rename(tempname, "./experiment.json")
+
+
+def run_batch(experiment):
+ # Map params to netpyne format
+ params = specs.ODict()
+ grouped_params = []
+ for param in experiment["params"]:
+ params[param["mapsTo"].replace("netParams.", "")] = param["values"]
+ if param["inGroup"]:
+ grouped_params.append(param["mapsTo"].replace("netParams.", ""))
+
+ with open("netParams.json", "r") as f:
+ net_params = json.load(f)
+ net_params = specs.NetParams(net_params["net"]["params"])
+
+ with open("simConfig.json", "r") as f:
+ sim_config = json.load(f)
+ sim_config = specs.SimConfig(sim_config["simConfig"])
+
+ batch = Batch(
+ cfg=sim_config,
+ netParams=net_params,
+ params=params,
+ groupedParams=grouped_params,
+ seed=experiment.get("seed", None),
+ )
+
+ # Label will be subfolder of saveFolder
+ batch.batchLabel = experiment.get("name", "batch_template_run")
+
+ # Have to overwrite the saveFolder, default goes to root folder which is not always allowed by OS
+ batch.saveFolder = os.getcwd()
+
+ # For now, we only support grid|list
+ batch.method = experiment.get("method", "grid")
+
+ # for now, we only support mpi_direct or bulletinboard
+ # * mpi_direct can be started by running batch.py
+ # * mpi_bulletin requires to run "mpiexec -n 4 nrniv -mpi batch.py", otherwise runs in single core
+ run_cfg = experiment.get("runCfg", None)
+
+ cores = run_cfg.get("cores", None)
+ cores = int(cores) if cores else None
+
+ if run_cfg:
+ batch.runCfg = {
+ "type": run_cfg.get("type", "mpi_bulletin"),
+ "script": run_cfg.get("script", "run.py"),
+ "skip": run_cfg.get("skip", True),
+ "cores": cores,
+ }
+
+ batch.run()
+ return batch
+
+
+with open("experiment.json", "r") as f:
+ experiment = json.load(f)
+ if experiment['runCfg']['type'] == 'mpi_bulletin':
+ pc = h.ParallelContext()
+ if pc.id() == 0:
+ update_state(experiment, "SIMULATING")
+ else:
+ update_state(experiment, "SIMULATING")
+
+ try:
+ batch = run_batch(experiment)
+ if batch.runCfg["type"] == "mpi_bulletin":
+ pc = h.ParallelContext()
+ if pc.id() != 0:
+ sys.exit(0)
+
+ # wait for data file writing to complete ...
+ # TODO: netpyne sim needs to wait until file exists before exiting!
+ time.sleep(10)
+ if is_error():
+ update_state(experiment, "ERROR")
+ sys.exit(1)
+ else:
+ update_state(experiment, "SIMULATED")
+
+ except Exception as e:
+ print("Experiment failed ...")
+ print(e)
+ update_state(experiment, "ERROR")
+ sys.exit(1)
diff --git a/netpyne_ui/templates/batch_run_single.py b/netpyne_ui/templates/batch_run_single.py
new file mode 100644
index 00000000..52906dfe
--- /dev/null
+++ b/netpyne_ui/templates/batch_run_single.py
@@ -0,0 +1,24 @@
+import neuron
+from netpyne import sim
+
+
+def run():
+ # Folder that contains x86_64 folder
+ NETPYNE_WORKDIR_PATH = "../../../"
+ neuron.load_mechanisms(NETPYNE_WORKDIR_PATH)
+
+ # read cfg and netParams from command line arguments if available; otherwise use default
+ simConfig, netParams = sim.readCmdLineArgs(
+ simConfigDefault="cfg.py", netParamsDefault="netParams.py"
+ )
+
+ # Create network and run simulation
+ sim.createSimulate(netParams=netParams, simConfig=simConfig)
+ sim.saveData()
+
+
+try:
+ run()
+except Exception as e:
+ print("Trial failed ...")
+ print(e)
diff --git a/netpyne_ui/templates/run.py b/netpyne_ui/templates/run.py
new file mode 100644
index 00000000..a89af07d
--- /dev/null
+++ b/netpyne_ui/templates/run.py
@@ -0,0 +1,54 @@
+import os
+import json
+import neuron
+import sys
+import tempfile
+
+from neuron import h
+from netpyne import sim
+
+os.chdir(os.path.dirname(__file__))
+
+
+def update_state(experiment, state):
+ experiment["state"] = state
+
+ with tempfile.NamedTemporaryFile('w', dir=os.path.dirname("experiment.json"), delete=False) as tf:
+ json.dump(experiment, tf, default=str, sort_keys=True, indent=4)
+ tempname = tf.name
+
+ os.rename(tempname, "./experiment.json")
+
+
+def run_sim():
+ # Folder that contains x86_64 folder
+ NETPYNE_WORKDIR_PATH = "../../../"
+ neuron.load_mechanisms(NETPYNE_WORKDIR_PATH)
+
+ netParams = sim.loadNetParams("./netParams.json", None, False)
+ simConfig = sim.loadSimCfg("./simConfig.json", None, False)
+
+ sim.createSimulate(netParams, simConfig)
+ sim.saveData()
+
+
+with open("./experiment.json", "r") as f:
+ exp = json.load(f)
+ if exp['runCfg']['type'] == 'mpi_bulletin' and exp['runCfg']['cores'] > 1:
+ pc = h.ParallelContext()
+ if pc.id() == 0:
+ update_state(exp, "SIMULATING")
+ else:
+ update_state(exp, "SIMULATING")
+
+try:
+ run_sim()
+ update_state(exp, "SIMULATED")
+ sys.exit(0)
+
+except Exception as e:
+ print("Experiment failed ...")
+ print(e)
+
+ update_state(exp, "ERROR")
+ sys.exit(1)
diff --git a/netpyne_ui/templates/run_instantiated_net.py b/netpyne_ui/templates/run_instantiated_net.py
new file mode 100644
index 00000000..a1bef0c1
--- /dev/null
+++ b/netpyne_ui/templates/run_instantiated_net.py
@@ -0,0 +1,11 @@
+import neuron
+
+from netpyne import sim
+
+# Folder that contains x86_64 folder
+NETPYNE_WORKDIR_PATH = '../../../'
+neuron.load_mechanisms(NETPYNE_WORKDIR_PATH)
+
+sim.load("./model_output.json")
+sim.createSimulate()
+sim.saveData()
\ No newline at end of file
diff --git a/netpyne_ui/utils.py b/netpyne_ui/utils.py
new file mode 100644
index 00000000..646135f6
--- /dev/null
+++ b/netpyne_ui/utils.py
@@ -0,0 +1,23 @@
+import os
+
+
+def remove(dictionary):
+ # remove reserved keys such as __dict__, __Method__, etc
+ # they appear when we do sim.loadAll(json_file)
+ if isinstance(dictionary, dict):
+ for key, value in list(dictionary.items()):
+ if key.startswith('__'):
+ dictionary.pop(key)
+ else:
+ remove(value)
+
+
+def get_next_file_name(directory: str, filename: str) -> str:
+ if not os.path.exists(os.path.join(directory, filename)):
+ return filename
+
+ i = 1
+ while os.path.exists(os.path.join(directory, f"{filename}-{i}")):
+ i += 1
+
+ return f"{filename}-{i}"
diff --git a/requirements.txt b/requirements.txt
index 7d232b46..c2d7075e 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
-airspeed==0.5.4dev-20150515
+airspeed==0.5.20
alembic==1.4.2
async-generator==1.10
attrs==19.3.0
@@ -15,24 +15,26 @@ defusedxml==0.6.0
Deprecated==1.2.10
entrypoints==0.3
future==0.18.2
+h5py==3.7.0
idna==2.9
ipython-genutils==0.2.0
ipywidgets==7.5.1
jedi==0.17.0
Jinja2==2.11.2
+jsonpickle==2.1.0
jsonschema==3.2.0
-jupyter==1.0.0
-jupyter-client==6.1.3
-jupyter-console==6.1.0
-jupyter-core==4.6.3
-jupyter_geppetto==1.1.1
-jupyter-telemetry==0.0.5
-jupyterhub==1.1.0
-jupyterlab==2.1.3
+jupyter_geppetto==1.1.5
+jupyter-client==7.0.6
+jupyter-core==4.9.1
+jupyter-server==1.11.2
+jupyterhub==1.5.0
+jupyterlab==3.2.4
+neuromllite==0.5.4
jupyterthemes==0.20.0
kiwisolver==1.2.0
lesscpy==0.14.0
-libNeuroML==0.2.50
+libNeuroML==0.5.1
+lfpykit==0.5.1
lxml==4.5.1
Mako==1.1.0
MarkupSafe==1.1.1
@@ -42,11 +44,11 @@ mistune==0.8.4
multimethod==1.3
nbconvert==5.6.1
nbformat==5.0.6
-neuromllite==0.1.9
-netpyne==1.0.0.2
-NEURON==7.8.1.1
+netpyne==1.0.6
+NEURON==8.2.2
numpy==1.18.5
oauthlib==3.0.1
+optuna==2.10.1
ordered-set==4.0.2
pamela==1.0.0
pandas==0.23.4
@@ -62,10 +64,14 @@ pycosat==0.6.3
pycparser==2.20
pyecore==0.11.7
pygeppetto==0.8.1
+PyLEMS==0.5.9
+pyNeuroML==1.0.10
+sentry_sdk==1.5.2
+dacite==1.6.0
+h5py==3.7.0
+jsonpickle==2.1.0
Pygments==2.6.1
PyJWT==1.7.1
-PyLEMS==0.4.9.3
-pyNeuroML==0.3.15
pyOpenSSL==19.1.0
pyparsing==2.4.7
pyrsistent==0.16.0
@@ -85,11 +91,11 @@ scipy==1.4.1
Send2Trash==1.5.0
terminado==0.8.3
testpath==0.4.4
-tornado==6.0.4
+tornado==6.1.0
traitlets==4.3.3
typing-extensions==3.7.4.2
urllib3==1.25.9
webencodings==0.5.1
widgetsnbextension==3.5.1
wrapt==1.12.1
-zipp==3.1.0
+zipp==3.1.0
\ No newline at end of file
diff --git a/run.py b/run.py
index bd3d26d2..5da5f591 100644
--- a/run.py
+++ b/run.py
@@ -9,14 +9,15 @@
os.environ['JUPYTER_CONFIG_DIR'] = os.path.join(os.path.dirname(os.path.abspath(__file__)), '.jupyter-config')
-settings.debug = True
+settings.debug = False
if __name__ == '__main__':
sys.argv.append('--NotebookApp.default_url=/geppetto')
sys.argv.append("--NotebookApp.token=''")
sys.argv.append('--library=netpyne_ui')
+ sys.argv.append('--no-browser')
sys.argv.append('--NotebookApp.disable_check_xsrf=True')
-
+
app = NotebookApp.instance()
app.initialize(sys.argv)
app.file_to_run = ''
diff --git a/setup.py b/setup.py
index de9196c9..081b6c05 100644
--- a/setup.py
+++ b/setup.py
@@ -3,11 +3,14 @@
import os
from glob import glob
-#This block copies resources to the server so we avoid jupyter nbextension install --py --sys-prefix jupyter_geppetto
+# This block copies resources to the server so we avoid jupyter nbextension install --py --sys-prefix jupyter_geppetto
data_files = []
-data_files.append(('geppetto/src/main/webapp/build/', glob('src/jupyter_geppetto/geppetto/src/main/webapp/build/*.js')))
-data_files.append(('geppetto/src/main/webapp/build/', glob('src/jupyter_geppetto/geppetto/src/main/webapp/build/*.vm')))
-data_files.append(('geppetto/geppetto/src/main/webapp/build/', glob('src/jupyter_geppetto/geppetto/src/main/webapp/build/fonts/*')))
+data_files.append(('geppetto/src/main/webapp/build/',
+ glob('src/jupyter_geppetto/geppetto/src/main/webapp/build/*.js')))
+data_files.append(('geppetto/src/main/webapp/build/',
+ glob('src/jupyter_geppetto/geppetto/src/main/webapp/build/*.vm')))
+data_files.append(('geppetto/geppetto/src/main/webapp/build/',
+ glob('src/jupyter_geppetto/geppetto/src/main/webapp/build/fonts/*')))
for root, dirnames, filenames in os.walk('src/jupyter_geppetto/geppetto/src/main/webapp/js/'):
for filename in fnmatch.filter(filenames, '*'):
data_files.append((root[3:], [os.path.join(root, filename)]))
@@ -15,7 +18,7 @@
setuptools.setup(
name="netpyne_ui",
- version="0.7.0",
+ version="1.1.0",
url="https://github.com/MetaCell/NetPyNE-UI",
author="MetaCell",
author_email="info@metacell.us",
@@ -38,7 +41,13 @@
],
install_requires=[
'jupyter-geppetto>=1.0.0',
- 'NEURON>=7.8.0'
- 'netpyne>=1.0.0'
+ 'NEURON>=8.2.2',
+ 'netpyne>=1.0.6',
+ 'neuromllite==0.5.4',
+ 'pyNeuroML>=1.0.10',
+ 'sentry_sdk>=1.5.2',
+ 'dacite>=1.6.0',
+ 'h5py>=3.7.0',
+ 'jsonpickle>=2.1.0',
],
)
diff --git a/tests/backend/models/gui_import_dict.py b/tests/backend/models/gui_import_dict.py
new file mode 100644
index 00000000..de26e84c
--- /dev/null
+++ b/tests/backend/models/gui_import_dict.py
@@ -0,0 +1,69 @@
+from netpyne import specs
+
+# Network parameters
+netParams = {} # object of class NetParams to store the network parameters
+
+netParams['cellParams'] = {}
+netParams['popParams'] = {}
+netParams['stimSourceParams'] = {}
+netParams['stimTargetParams'] = {}
+netParams['synMechParams'] = {}
+netParams['connParams'] = {}
+
+## Cell parameters
+secs = {} # dict with section info
+secs['soma'] = {'geom': {}, 'mechs': {}}
+secs['soma']['geom'] = {'diam': 12, 'L': 12, 'Ra': 100.0, 'cm': 1} # soma geometry
+secs['soma']['mechs']['hh'] = {'gnabar': 0.12, 'gkbar': 0.036, 'gl': 0.0003, 'el': -54.3} # soma hh mechanism
+
+secs['dend'] = {'geom': {}, 'mechs': {}}
+secs['dend']['geom'] = {'diam': 1.0, 'L': 200.0, 'Ra': 100.0, 'cm': 1}
+secs['dend']['topol'] = {'parentSec': 'soma', 'parentX': 1.0, 'childX': 0} # dend geometry
+secs['dend']['mechs']['pas'] = {'g': 0.001, 'e': -70} # dend pas mechanism
+
+netParams['cellParams']['pyr'] = {'secs': secs} # add dict to list of cell parameters
+
+## Population parameters
+netParams['popParams']['E'] = {'cellType': 'pyr', 'numCells': 40}
+
+ # Stimulation parameters
+netParams['stimSourceParams']['IClamp1'] = {'type': 'IClamp', 'dur': 5, 'del': 20, 'amp': 0.1}
+netParams['stimTargetParams']['IClamp1->cell0'] = {'source': 'IClamp1', 'conds': {'cellList':[0]}, 'sec':'dend', 'loc':1.0}
+
+
+# Synaptic mechanism parameters
+netParams['synMechParams']['exc'] = {'mod': 'Exp2Syn', 'tau1': 0.1, 'tau2': 1.0, 'e': 0}
+
+
+# Connectivity parameters
+netParams['connParams']['E->E'] = {
+ 'preConds': {'pop': 'E'},
+ 'postConds': {'pop': 'E'},
+ 'weight': 0.005, # weight of each connection
+ 'probability': 0.1,
+ 'delay': 5, # delay min=0.2, mean=13.0, var = 1.4
+ 'synMech': 'exc',
+ 'sec': 'dend'}
+
+# Simulation options
+simConfig = specs.SimConfig() # object of class SimConfig to store simulation configuration
+
+simConfig.duration = 0.2*1e3 # Duration of the simulation, in ms
+simConfig.dt = 0.1 # Internal integration timestep to use
+simConfig.verbose = False # Show detailed messages
+simConfig.recordTraces = {'V_soma':{'sec':'soma','loc':0.5,'var':'v'},
+ 'V_dend': {'sec': 'dend', 'loc': 1.0, 'var':'v'}} # Dict with traces to record
+simConfig.recordCells = [0]
+simConfig.recordStep = 0.1 # Step size in ms to save data (eg. V traces, LFP, etc)
+simConfig.filename = 'gui_tut1' # Set file output name
+simConfig.saveJson = False # Save params, network and sim output to pickle file
+simConfig.analysis['iplotTraces'] = {'include': [0], 'overlay': True}
+simConfig.analysis['iplotRaster'] = {'markerSize': 5, 'showFig': True}
+
+
+if __name__ == '__main__':
+ netpyne_geppetto.netParams=netParams
+ netpyne_geppetto.simConfig=simConfig
+
+#from netpyne import sim
+#sim.createSimulateAnalyze(netParams, simConfig)
diff --git a/tests/backend/models/hhcells_model.json b/tests/backend/models/hhcells_model.json
new file mode 100644
index 00000000..a0e891b3
--- /dev/null
+++ b/tests/backend/models/hhcells_model.json
@@ -0,0 +1,27302 @@
+{
+ "net": {
+ "cells": [
+ {
+ "conns": [],
+ "gid": 0,
+ "secLists": null,
+ "secs": null,
+ "stims": [],
+ "tags": {
+ "cellLabel": 0,
+ "cellType": "hhcell",
+ "label": [
+ "hhcell"
+ ],
+ "pop": "hhpop",
+ "x": 0,
+ "xnorm": 0.0,
+ "y": 20.0,
+ "ynorm": 0.2,
+ "z": 0,
+ "znorm": 0.0
+ }
+ },
+ {
+ "conns": [],
+ "gid": 1,
+ "secLists": null,
+ "secs": null,
+ "stims": [],
+ "tags": {
+ "cellLabel": 1,
+ "cellType": "hhcell",
+ "label": [
+ "hhcell"
+ ],
+ "pop": "hhpop",
+ "x": 20.0,
+ "xnorm": 0.2,
+ "y": 10.0,
+ "ynorm": 0.1,
+ "z": 0,
+ "znorm": 0.0
+ }
+ }
+ ],
+ "params": {
+ "cellParams": {
+ "hhcell": {
+ "secLists": {
+ "soma_group": [
+ "soma"
+ ]
+ },
+ "secs": {
+ "soma": {
+ "geom": {
+ "Ra": 34.56,
+ "cm": 1.6,
+ "pt3d": [
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 17.841242
+ ],
+ [
+ 0.0,
+ 17.841242,
+ 0.0,
+ 17.841242
+ ]
+ ]
+ },
+ "ions": {},
+ "mechs": {
+ "pas": {
+ "e": -57.0,
+ "g": 0.00031
+ }
+ },
+ "vinit": -70.0
+ }
+ }
+ }
+ },
+ "cellsVisualizationSpacingMultiplier": [
+ 1,
+ 1,
+ 1
+ ],
+ "connParams": {},
+ "correctBorder": false,
+ "defaultDelay": 1,
+ "defaultThreshold": 10,
+ "defaultWeight": 1,
+ "defineCellShapes": false,
+ "mapping": {
+ "__dict__": {}
+ },
+ "popParams": {
+ "hhpop": {
+ "cellType": "hhcell",
+ "cellsList": [
+ {
+ "cellLabel": 0,
+ "x": 0,
+ "y": 20.0,
+ "z": 0
+ },
+ {
+ "cellLabel": 1,
+ "x": 20.0,
+ "y": 10.0,
+ "z": 0
+ }
+ ],
+ "numCells": 2,
+ "originalFormat": "NeuroML2",
+ "pop": "hhpop"
+ }
+ },
+ "popTagsCopiedToCells": [
+ "cellModel",
+ "cellType"
+ ],
+ "propVelocity": 500.0,
+ "rotateCellsRandomly": false,
+ "rxdParams": {},
+ "scale": 1,
+ "scaleConnWeight": 1,
+ "scaleConnWeightModels": false,
+ "scaleConnWeightNetStims": 1,
+ "shape": "cuboid",
+ "sizeX": 100,
+ "sizeY": 100,
+ "sizeZ": 100,
+ "stimSourceParams": {},
+ "stimTargetParams": {},
+ "subConnParams": {},
+ "synMechParams": {}
+ },
+ "pops": {
+ "hhpop": {
+ "cellGids": [
+ 0,
+ 1
+ ],
+ "tags": {
+ "cellType": "hhcell",
+ "cellsList": [
+ {
+ "cellLabel": 0,
+ "x": 0,
+ "y": 20.0,
+ "z": 0
+ },
+ {
+ "cellLabel": 1,
+ "x": 20.0,
+ "y": 10.0,
+ "z": 0
+ }
+ ],
+ "numCells": 2,
+ "originalFormat": "NeuroML2",
+ "pop": "hhpop"
+ }
+ }
+ }
+ },
+ "netpyne_changeset": "",
+ "netpyne_version": "1.0.2",
+ "simConfig": {
+ "addSynMechs": true,
+ "allowConnsWithWeight0": true,
+ "allowSelfConns": false,
+ "analysis": {
+ "plot2Dnet": false,
+ "plotConn": false,
+ "plotRaster": false,
+ "plotSpikeHist": false,
+ "plotSpikePSD": false
+ },
+ "backupCfgFile": [],
+ "cache_efficient": false,
+ "compactConnFormat": false,
+ "connRandomSecFromList": true,
+ "coreneuron": false,
+ "createNEURONObj": 1,
+ "createPyStruct": 1,
+ "cvode_active": false,
+ "cvode_atol": 0.001,
+ "distributeSynsUniformly": true,
+ "dt": 0.05,
+ "duration": 450.0,
+ "filename": "HHCellNetwork.txt",
+ "gatherOnlySimData": true,
+ "gpu": false,
+ "hParams": {
+ "celsius": 6.3,
+ "clamp_resist": 0.001,
+ "v_init": -65.0
+ },
+ "includeParamsLabel": true,
+ "invertedYCoord": true,
+ "oneSynPerNetcon": true,
+ "plotCells": [
+ "all"
+ ],
+ "printPopAvgRates": false,
+ "printRunTime": false,
+ "printSynsAfterRule": false,
+ "pt3dRelativeToCellLocation": true,
+ "rand123GlobalIndex": null,
+ "random123": false,
+ "recordCells": [
+ "all"
+ ],
+ "recordCellsSpikes": -1,
+ "recordDipole": false,
+ "recordDipolesHNN": false,
+ "recordLFP": [],
+ "recordStep": 0.05,
+ "recordStim": true,
+ "recordTime": true,
+ "recordTraces": {
+ "of0_hhpop_0_soma_v": {
+ "conds": {
+ "cellLabel": 0,
+ "pop": "hhpop"
+ },
+ "loc": 0.5,
+ "sec": "soma",
+ "var": "v"
+ },
+ "of0_hhpop_1_soma_v": {
+ "conds": {
+ "cellLabel": 1,
+ "pop": "hhpop"
+ },
+ "loc": 0.5,
+ "sec": "soma",
+ "var": "v"
+ }
+ },
+ "saveCSV": false,
+ "saveCellConns": false,
+ "saveCellSecs": false,
+ "saveDat": true,
+ "saveDataInclude": [
+ "netParams",
+ "netCells",
+ "netPops",
+ "simConfig",
+ "simData"
+ ],
+ "saveDipoleCells": false,
+ "saveDipolePops": false,
+ "saveDpk": false,
+ "saveFileStep": 0.05,
+ "saveFolder": "",
+ "saveHDF5": false,
+ "saveJson": false,
+ "saveLFPCells": false,
+ "saveLFPPops": false,
+ "saveMat": false,
+ "savePickle": false,
+ "saveTiming": false,
+ "seeds": {
+ "conn": 0,
+ "loc": 0,
+ "stim": 123456789
+ },
+ "simLabel": "",
+ "timestampFilename": false,
+ "timing": true,
+ "tstop": 450.0,
+ "use_fast_imem": false,
+ "validateNetParams": false,
+ "verbose": false
+ },
+ "simData": {
+ "avgRate": 0,
+ "of0_hhpop_0_soma_v": {
+ "cell_0": [
+ -70.0,
+ -69.87527081398949,
+ -69.75173834873613,
+ -69.62939112223944,
+ -69.50821776266365,
+ -69.38820700728063,
+ -69.2693477014231,
+ -69.15162879744784,
+ -69.0350393537088,
+ -68.91956853354014,
+ -68.805205604249,
+ -68.69193993611786,
+ -68.57976100141663,
+ -68.46865837342409,
+ -68.35862172545872,
+ -68.24964082991887,
+ -68.14170555733222,
+ -68.03480587541415,
+ -67.92893184813535,
+ -67.82407363479824,
+ -67.72022148912238,
+ -67.61736575833848,
+ -67.51549688229127,
+ -67.41460539255094,
+ -67.31468191153297,
+ -67.2157171516266,
+ -67.11770191433152,
+ -67.02062708940294,
+ -66.92448365400477,
+ -66.82926267187104,
+ -66.73495529247519,
+ -66.64155275020755,
+ -66.54904636356056,
+ -66.45742753432182,
+ -66.36668774677494,
+ -66.27681856690802,
+ -66.18781164162972,
+ -66.09965869799292,
+ -66.01235154242568,
+ -65.92588205996972,
+ -65.8402422135262,
+ -65.75542404310859,
+ -65.67141966510292,
+ -65.58822127153493,
+ -65.50582112934441,
+ -65.4242115796664,
+ -65.3433850371193,
+ -65.26333398909989,
+ -65.18405099508502,
+ -65.10552868593999,
+ -65.02775976323366,
+ -64.95073699856012,
+ -64.87445323286671,
+ -64.79890137578877,
+ -64.72407440499043,
+ -64.64996536551203,
+ -64.57656736912364,
+ -64.50387359368483,
+ -64.43187728251051,
+ -64.36057174374301,
+ -64.28995034972999,
+ -64.22000653640855,
+ -64.15073380269494,
+ -64.08212570988049,
+ -64.01417588103298,
+ -63.94687800040407,
+ -63.880225812842156,
+ -63.81421312321105,
+ -63.74883379581409,
+ -63.684081753823925,
+ -63.6199509787176,
+ -63.55643550971721,
+ -63.493529443235865,
+ -63.431226932328926,
+ -63.36952218615059,
+ -63.30840946941562,
+ -63.24788310186629,
+ -63.18793745774439,
+ -63.12856696526835,
+ -63.06976610611535,
+ -63.01152941490842,
+ -62.95385147870844,
+ -62.89672693651099,
+ -62.840150478748114,
+ -62.78411684679479,
+ -62.72862083248013,
+ -62.67365727760335,
+ -62.619221073454256,
+ -62.56530716033848,
+ -62.511910527107126,
+ -62.45902621069106,
+ -62.406649295639546,
+ -62.35477491366343,
+ -62.30339824318259,
+ -62.25251450887784,
+ -62.202118981247004,
+ -62.1522069761654,
+ -62.10277385445041,
+ -62.0538150214303,
+ -62.005325926517166,
+ -61.957302062783945,
+ -61.90973896654553,
+ -61.86263221694389,
+ -61.81597743553712,
+ -61.769770285892534,
+ -61.724006473183564,
+ -61.67868174379059,
+ -61.63379188490557,
+ -61.589332724140455,
+ -61.54530012913941,
+ -61.50169000719471,
+ -61.45849830486632,
+ -61.41572100760514,
+ -61.3733541393799,
+ -61.33139376230754,
+ -61.28983597628726,
+ -61.24867691863795,
+ -61.20791276373922,
+ -61.1675397226758,
+ -61.12755404288534,
+ -61.08795200780968,
+ -61.04872993654936,
+ -61.00988418352149,
+ -60.97141113812094,
+ -60.93330722438471,
+ -60.89556890065957,
+ -60.85819265927286,
+ -60.82117502620648,
+ -60.78451256077398,
+ -60.748201855300756,
+ -60.71223953480731,
+ -60.67662225669557,
+ -60.6413467104382,
+ -60.606409617270884,
+ -60.571807729887595,
+ -60.53753783213875,
+ -60.503596738732284,
+ -60.469981294937575,
+ -60.436688376292246,
+ -60.403714888311725,
+ -60.371057766201645,
+ -60.33871397457297,
+ -60.306680507159854,
+ -60.274954386540244,
+ -60.243532663859106,
+ -60.21241241855436,
+ -60.181590758085406,
+ -60.151064817664285,
+ -60.120831759989386,
+ -60.09088877498175,
+ -60.06123307952386,
+ -60.03186191720097,
+ -60.00277255804491,
+ -59.97396229828032,
+ -59.94542846007336,
+ -59.91716839128281,
+ -59.88917946521355,
+ -59.86145908037244,
+ -59.8340046602265,
+ -59.80681365296341,
+ -59.779883531254384,
+ -59.7532117920192,
+ -59.72679595619358,
+ -59.700633568498745,
+ -59.67472219721324,
+ -59.64905943394688,
+ -59.62364289341691,
+ -59.59847021322628,
+ -59.5735390536441,
+ -59.54884709738815,
+ -59.52439204940949,
+ -59.50017163667916,
+ -59.476183607976886,
+ -59.45242573368184,
+ -59.428895805565425,
+ -59.405591636585996,
+ -59.3825110606856,
+ -59.35965193258865,
+ -59.3370121276025,
+ -59.31458954141999,
+ -59.292382089923855,
+ -59.270387708992985,
+ -59.2486043543106,
+ -59.22703000117423,
+ -59.205662644307495,
+ -59.18450029767378,
+ -59.16354099429158,
+ -59.142782786051704,
+ -59.122223743536196,
+ -59.101861955839006,
+ -59.081695530388366,
+ -59.0617225927709,
+ -59.041941286557375,
+ -59.02234977313017,
+ -59.0029462315124,
+ -58.983728858198596,
+ -58.96469586698716,
+ -58.94584548881427,
+ -58.9271759715895,
+ -58.90868558003293,
+ -58.89037259551389,
+ -58.87223531589119,
+ -58.85427205535494,
+ -58.836481144269825,
+ -58.81886092901994,
+ -58.80140977185509,
+ -58.784126050738564,
+ -58.76700815919635,
+ -58.75005450616785,
+ -58.73326351585798,
+ -58.716633627590696,
+ -58.70016329566395,
+ -58.683850989206015,
+ -58.66769519203319,
+ -58.65169440250889,
+ -58.635847133404035,
+ -58.62015191175887,
+ -58.604607278746016,
+ -58.58921178953489,
+ -58.57396401315743,
+ -58.558862532375045,
+ -58.54390594354693,
+ -58.52909285649959,
+ -58.514421894397614,
+ -58.49989169361571,
+ -58.485500903611964,
+ -58.47124818680231,
+ -58.457132218436215,
+ -58.4431516864735,
+ -58.429305291462455,
+ -58.41559174641902,
+ -58.40200977670717,
+ -58.38855811992044,
+ -58.375235525764595,
+ -58.362040755941415,
+ -58.34897258403359,
+ -58.33602979539074,
+ -58.32321118701652,
+ -58.31051556745678,
+ -58.29794175668886,
+ -58.285488586011866,
+ -58.27315489793809,
+ -58.26093954608539,
+ -58.24884139507064,
+ -58.23685932040423,
+ -58.224992208385494,
+ -58.21323895599925,
+ -58.201598470813245,
+ -58.190069670876625,
+ -58.17865148461937,
+ -58.1673428507527,
+ -58.15614271817043,
+ -58.14505004585124,
+ -58.134063802761986,
+ -58.12318296776179,
+ -58.11240652950719,
+ -58.10173348635809,
+ -58.09116284628471,
+ -58.08069362677532,
+ -58.07032485474498,
+ -58.060055566445044,
+ -58.04988480737361,
+ -58.0398116321868,
+ -58.02983510461088,
+ -58.019954297355255,
+ -58.01016829202625,
+ -58.00047617904178,
+ -57.9908770575468,
+ -57.98137003532954,
+ -57.97195422873863,
+ -57.962628762600936,
+ -57.953392770140205,
+ -57.94424539289652,
+ -57.935185780646506,
+ -57.9262130913243,
+ -57.91732649094329,
+ -57.908525153518575,
+ -57.899808260990234,
+ -57.89117500314725,
+ -57.88262457755221,
+ -57.874156189466746,
+ -57.86576905177765,
+ -57.8574623849237,
+ -57.84923541682323,
+ -57.84108738280233,
+ -57.833017525523815,
+ -57.82502509491681,
+ -57.817109348107024,
+ -57.80926954934772,
+ -57.80150496995132,
+ -57.79381488822167,
+ -57.786198589386984,
+ -57.77865536553338,
+ -57.7711845155391,
+ -57.76378534500932,
+ -57.75645716621164,
+ -57.749199298012144,
+ -57.742011065812086,
+ -57.7348918014852,
+ -57.727840843315576,
+ -57.7208575359362,
+ -57.71394123026798,
+ -57.70709128345946,
+ -57.70030705882707,
+ -57.693587925795924,
+ -57.68693325984121,
+ -57.68034244243017,
+ -57.67381486096457,
+ -57.66734990872381,
+ -57.660946984808476,
+ -57.65460549408453,
+ -57.648324847127974,
+ -57.642104460170074,
+ -57.635943755043094,
+ -57.629842159126554,
+ -57.62379910529402,
+ -57.61781403186037,
+ -57.61188638252961,
+ -57.60601560634316,
+ -57.60020115762864,
+ -57.59444249594913,
+ -57.588739086052996,
+ -57.58309039782407,
+ -57.57749590623244,
+ -57.571955091285616,
+ -57.56646743798019,
+ -57.561032436253974,
+ -57.55564958093863,
+ -57.55031837171266,
+ -57.545038313054945,
+ -57.539808914198645,
+ -57.53462968908563,
+ -57.52950015632126,
+ -57.52441983912969,
+ -57.51938826530951,
+ -57.514404967189854,
+ -57.50946948158698,
+ -57.504581349761175,
+ -57.49974011737411,
+ -57.494945334446655,
+ -57.49019655531702,
+ -57.48549333859934,
+ -57.48083524714264,
+ -57.47622184799024,
+ -57.47165271233945,
+ -57.46712741550178,
+ -57.46264553686341,
+ -57.458206659846155,
+ -57.45381037186868,
+ -57.44945626430819,
+ -57.44514393246246,
+ -57.440872975512185,
+ -57.43664299648375,
+ -57.43245360221231,
+ -57.42830440330529,
+ -57.42419501410614,
+ -57.42012505265851,
+ -57.416094140670765,
+ -57.412101903480796,
+ -57.40814797002122,
+ -57.404231972784864,
+ -57.400353547790644,
+ -57.39651233454969,
+ -57.39270797603188,
+ -57.388940118632625,
+ -57.38520841214002,
+ -57.381512509702276,
+ -57.37785206779551,
+ -57.37422674619177,
+ -57.370636207927475,
+ -57.367080119272025,
+ -57.363558149696836,
+ -57.36006997184459,
+ -57.35661526149882,
+ -57.35319369755376,
+ -57.34980496198454,
+ -57.34644873981755,
+ -57.34312471910126,
+ -57.33983259087714,
+ -57.33657204915099,
+ -57.333342790864485,
+ -57.330144515867026,
+ -57.3269769268878,
+ -57.323839729508194,
+ -57.320732632134394,
+ -57.31765534597031,
+ -57.31460758499071,
+ -57.31158906591466,
+ -57.30859950817917,
+ -57.30563863391314,
+ -57.302706167911495,
+ -57.29980183760965,
+ -57.29692537305815,
+ -57.29407650689758,
+ -57.291254974333725,
+ -57.288460513112945,
+ -57.28569286349781,
+ -57.28295176824295,
+ -57.28023697257117,
+ -57.27754822414972,
+ -57.274885273066886,
+ -57.27224787180874,
+ -57.26963577523614,
+ -57.26704874056195,
+ -57.26448652732845,
+ -57.26194889738503,
+ -57.25943561486602,
+ -57.25694644616876,
+ -57.25448115993192,
+ -57.25203952701397,
+ -57.249621320471896,
+ -57.247226315540104,
+ -57.24485428960951,
+ -57.242505022206885,
+ -57.24017829497432,
+ -57.237873891648974,
+ -57.23559159804293,
+ -57.23333120202333,
+ -57.23109249349262,
+ -57.228875264369044,
+ -57.2266793085673,
+ -57.224504421979375,
+ -57.22235040245559,
+ -57.22021704978579,
+ -57.21810416568076,
+ -57.216011553753766,
+ -57.213939019502334,
+ -57.211886370290145,
+ -57.20985341532914,
+ -57.20783996566179,
+ -57.205845834143524,
+ -57.20387083542534,
+ -57.20191478593658,
+ -57.19997750386786,
+ -57.19805880915418,
+ -57.19615852345818,
+ -57.19427647015357,
+ -57.1924124743087,
+ -57.19056636267033,
+ -57.1887379636475,
+ -57.186927107295574,
+ -57.18513362530047,
+ -57.18335735096302,
+ -57.181598119183434,
+ -57.17985576644599,
+ -57.17813013080383,
+ -57.1764210518639,
+ -57.174728370772044,
+ -57.17305193019825,
+ -57.171391574322,
+ -57.16974714881783,
+ -57.16811850084093,
+ -57.166505479013,
+ -57.16490793340811,
+ -57.163325715538825,
+ -57.16175867834238,
+ -57.160206676167014,
+ -57.15866956475842,
+ -57.157147201246346,
+ -57.155639444131324,
+ -57.154146153271505,
+ -57.15266718986964,
+ -57.15120241646018,
+ -57.149751696896494,
+ -57.14831489633822,
+ -57.14689188123872,
+ -57.14548251933269,
+ -57.14408667962383,
+ -57.14270423237272,
+ -57.14133504908472,
+ -57.139979002498016,
+ -57.138635966571854,
+ -57.13730581647476,
+ -57.13598842857296,
+ -57.1346836804189,
+ -57.13339145073986,
+ -57.13211161942666,
+ -57.13084406752253,
+ -57.12958867721204,
+ -57.12834533181013,
+ -57.12711391575129,
+ -57.12589431457881,
+ -57.12468641493413,
+ -57.12349010454634,
+ -57.122305272221695,
+ -57.12113180783331,
+ -57.119969602310924,
+ -57.11881854763075,
+ -57.11767853680545,
+ -57.11654946387417,
+ -57.11543122389271,
+ -57.11432371292376,
+ -57.11322682802725,
+ -57.11214046725076,
+ -57.111064529620066,
+ -57.109998915129744,
+ -57.10894352473388,
+ -57.10789826033687,
+ -57.10686302478427,
+ -57.10583772185381,
+ -57.10482225624642,
+ -57.103816533577394,
+ -57.10282046036758,
+ -57.101833944034745,
+ -57.10085689288492,
+ -57.09988921610391,
+ -57.098930823748844,
+ -57.0979816267398,
+ -57.097041536851556,
+ -57.09611046670535,
+ -57.09518832976079,
+ -57.09427504030781,
+ -57.09337051345867,
+ -57.09247466514013,
+ -57.09158741208555,
+ -57.09070867182722,
+ -57.089838362688674,
+ -57.08897640377708,
+ -57.08812271497575,
+ -57.08727721693668,
+ -57.08643983107316,
+ -57.08561047955249,
+ -57.084789085288755,
+ -57.083975571935625,
+ -57.08316986387929,
+ -57.08237188623143,
+ -57.081581564822216,
+ -57.080798826193465,
+ -57.0800235975918,
+ -57.079255806961854,
+ -57.07849538293963,
+ -57.07774225484581,
+ -57.07699635267923,
+ -57.07625760711035,
+ -57.07552594947481,
+ -57.07480131176707,
+ -57.07408362663405,
+ -57.073372827368914,
+ -57.072668847904836,
+ -57.071971622808874,
+ -57.07128108727589,
+ -57.070597177122515,
+ -57.069919828781195,
+ -57.06924897929428,
+ -57.06858456630817,
+ -57.06792652806752,
+ -57.06727480340949,
+ -57.06662933175808,
+ -57.0659900531185,
+ -57.06535690807156,
+ -57.064729837768176,
+ -57.06410878392391,
+ -57.06349368881353,
+ -57.06288449526564,
+ -57.0622811466574,
+ -57.06168358690921,
+ -57.06109176047956,
+ -57.060505612359826,
+ -57.05992508806916,
+ -57.05935013364943,
+ -57.058780695660225,
+ -57.05821672117386,
+ -57.057658157770454,
+ -57.057104953533106,
+ -57.056557057043,
+ -57.05601441737468,
+ -57.0554769840913,
+ -57.05494470723991,
+ -57.054417537346865,
+ -57.053895425413174,
+ -57.053378322909985,
+ -57.05286618177405,
+ -57.05235895440327,
+ -57.05185659365226,
+ -57.05135905282799,
+ -57.050866285685416,
+ -57.05037824642319,
+ -57.04989488967942,
+ -57.04941617052744,
+ -57.048942044471616,
+ -57.04847246744326,
+ -57.04800739579648,
+ -57.04754678630416,
+ -57.04709059615392,
+ -57.04663878294415,
+ -57.046191304680065,
+ -57.0457481197698,
+ -57.045309187020536,
+ -57.0448744656347,
+ -57.04444391520614,
+ -57.04401749571638,
+ -57.043595167530924,
+ -57.04317689139553,
+ -57.04276262843259,
+ -57.04235234013751,
+ -57.041945988375126,
+ -57.04154353537617,
+ -57.04114494373375,
+ -57.040750176399875,
+ -57.04035919668202,
+ -57.0399719682397,
+ -57.0395884550811,
+ -57.039208621559744,
+ -57.03883243237115,
+ -57.03845985254958,
+ -57.038090847464765,
+ -57.03772538281871,
+ -57.037363424642486,
+ -57.037004939293084,
+ -57.03664989345028,
+ -57.036298254113554,
+ -57.035949988599,
+ -57.035605064536306,
+ -57.03526344986573,
+ -57.03492511283514,
+ -57.03459002199704,
+ -57.03425814620567,
+ -57.033929454614096,
+ -57.03360391667134,
+ -57.03328150211956,
+ -57.032962180991206,
+ -57.03264592360627,
+ -57.0323327005695,
+ -57.03202248276769,
+ -57.031715241366946,
+ -57.03141094781004,
+ -57.031109573813715,
+ -57.030811091366104,
+ -57.03051547272409,
+ -57.03022269041074,
+ -57.02993271721274,
+ -57.02964552617789,
+ -57.029361090612575,
+ -57.02907938407931,
+ -57.02880038039424,
+ -57.02852405362475,
+ -57.02825037808703,
+ -57.0279793283437,
+ -57.027710879201436,
+ -57.027445005708636,
+ -57.02718168315309,
+ -57.026920887059696,
+ -57.026662593188185,
+ -57.02640677753085,
+ -57.02615341631034,
+ -57.02590248597744,
+ -57.02565396320885,
+ -57.02540782490509,
+ -57.025164048188266,
+ -57.02492261040002,
+ -57.02468348909937,
+ -57.024446662060654,
+ -57.02421210727146,
+ -57.02397980293057,
+ -57.02374972744594,
+ -57.023521859432684,
+ -57.02329617771111,
+ -57.023072661304724,
+ -57.02285128943829,
+ -57.022632041535914,
+ -57.02241489721911,
+ -57.02219983630491,
+ -57.02198683880399,
+ -57.02177588491884,
+ -57.02156695504187,
+ -57.02136002975363,
+ -57.02115508982099,
+ -57.020952116195346,
+ -57.02075109001087,
+ -57.020551992582725,
+ -57.02035480540536,
+ -57.020159510150776,
+ -57.01996608866682,
+ -57.019774522975496,
+ -57.01958479527131,
+ -57.019396887919584,
+ -57.01921078345487,
+ -57.019026464579255,
+ -57.018843914160826,
+ -57.018663115232016,
+ -57.01848405098807,
+ -57.01830670478546,
+ -57.01813106014035,
+ -57.01795710072705,
+ -57.01778481037653,
+ -57.01761417307487,
+ -57.0174451729618,
+ -57.01727779432924,
+ -57.017112021619795,
+ -57.01694783942536,
+ -57.01678523248566,
+ -57.016624185686815,
+ -57.01646468405998,
+ -57.01630671277993,
+ -57.01615025716366,
+ -57.015995302669054,
+ -57.01584183489352,
+ -57.01568983957266,
+ -57.01553930257892,
+ -57.01539020992032,
+ -57.0152425477391,
+ -57.01509630231047,
+ -57.01495146004132,
+ -57.014808007468964,
+ -57.014665931259884,
+ -57.01452521820849,
+ -57.01438585523589,
+ -57.014247829388694,
+ -57.014111127837765,
+ -57.01397573787708,
+ -57.01384164692252,
+ -57.0137088425107,
+ -57.01357731229782,
+ -57.0134470440585,
+ -57.01331802568468,
+ -57.01319024518446,
+ -57.01306369068099,
+ -57.012938350411375,
+ -57.012814212725594,
+ -57.01269126608539,
+ -57.01256949906322,
+ -57.01244890034116,
+ -57.01232945870991,
+ -57.01221116306769,
+ -57.01209400241925,
+ -57.01197796587484,
+ -57.011863042649175,
+ -57.011749222060466,
+ -57.0116364935294,
+ -57.011524846578176,
+ -57.01141427082951,
+ -57.01130475600571,
+ -57.01119629192766,
+ -57.01108886851393,
+ -57.01098247577981,
+ -57.0108771038364,
+ -57.01077274288966,
+ -57.010669383239524,
+ -57.01056701527901,
+ -57.01046562949329,
+ -57.010365216458844,
+ -57.01026576684256,
+ -57.01016727140086,
+ -57.010069720978876,
+ -57.00997310650956,
+ -57.009877419012874,
+ -57.009782649594925,
+ -57.009688789447154,
+ -57.00959582984552,
+ -57.0095037621497,
+ -57.00941257780224,
+ -57.009322268327814,
+ -57.009232825332404,
+ -57.009144240502536,
+ -57.00905650560449,
+ -57.008969612483554,
+ -57.00888355306326,
+ -57.008798319344606,
+ -57.008713903405365,
+ -57.00863029739931,
+ -57.00854749355549,
+ -57.00846548417752,
+ -57.00838426164285,
+ -57.008303818402084,
+ -57.00822414697823,
+ -57.008145239966055,
+ -57.008067090031375,
+ -57.00798968991037,
+ -57.00791303240891,
+ -57.00783711040189,
+ -57.00776191683257,
+ -57.00768744471193,
+ -57.007613687117974,
+ -57.00754063719515,
+ -57.00746828815366,
+ -57.00739663326887,
+ -57.00732566588065,
+ -57.00725537939278,
+ -57.00718576727233,
+ -57.007116823049046,
+ -57.00704854031475,
+ -57.006980912722746,
+ -57.00691393398724,
+ -57.006847597882754,
+ -57.00678189824352,
+ -57.00671682896294,
+ -57.00665238399301,
+ -57.00658855734374,
+ -57.00652534308263,
+ -57.00646273533408,
+ -57.006400728278884,
+ -57.00633931615364,
+ -57.00627849325028,
+ -57.00621825391547,
+ -57.00615859255014,
+ -57.00609950360893,
+ -57.00604098159968,
+ -57.00598302108294,
+ -57.00592561667143,
+ -57.00586876302958,
+ -57.005812454873,
+ -57.005756686968,
+ -57.005701454131106,
+ -57.00564675122858,
+ -57.00559257317594,
+ -57.00553891493748,
+ -57.00548577152583,
+ -57.005433138001436,
+ -57.005381009472174,
+ -57.005329381092835,
+ -57.005278248064705,
+ -57.00522760563511,
+ -57.00517744909698,
+ -57.00512777378841,
+ -57.005078575092206,
+ -57.005029848435484,
+ -57.004981589289244,
+ -57.00493379316793,
+ -57.00488645562902,
+ -57.00483957227263,
+ -57.00479313874108,
+ -57.004747150718494,
+ -57.00470160393042,
+ -57.004656494143404,
+ -57.00461181716462,
+ -57.00456756884147,
+ -57.00452374506119,
+ -57.00448034175049,
+ -57.00443735487514,
+ -57.004394780439625,
+ -57.004352614486784,
+ -57.0043108530974,
+ -57.004269492389874,
+ -57.00422852851984,
+ -57.00418795767982,
+ -57.00414777609886,
+ -57.0041079800422,
+ -57.004068565810904,
+ -57.00402952974153,
+ -57.00399086820578,
+ -57.003952577610185,
+ -57.00391465439573,
+ -57.00387709503755,
+ -57.00383989604462,
+ -57.00380305395939,
+ -57.00376656535749,
+ -57.003730426847405,
+ -57.00369463507016,
+ -57.00365918669902,
+ -57.00362407843914,
+ -57.00358930702731,
+ -57.00355486923163,
+ -57.00352076185119,
+ -57.00348698171582,
+ -57.003453525685735,
+ -57.0034203906513,
+ -57.0033875735327,
+ -57.00335507127968,
+ -57.00332288087124,
+ -57.00329099931537,
+ -57.00325942364877,
+ -57.00322815093657,
+ -57.00319717827206,
+ -57.003166502776416,
+ -57.00313612159843,
+ -57.003106031914264,
+ -57.00307623092716,
+ -57.00304671586719,
+ -57.00301748399103,
+ -57.00298853258165,
+ -57.00295985894809,
+ -57.002931460425216,
+ -57.00290333437347,
+ -57.002875478178616,
+ -57.00284788925149,
+ -57.00282056502778,
+ -57.00279350296778,
+ -57.002766700556144,
+ -57.00274015530166,
+ -57.00271386473702,
+ -57.00268782641859,
+ -57.00266203792618,
+ -57.00263649686282,
+ -57.00261120085454,
+ -57.00258614755015,
+ -57.00256133462101,
+ -57.00253675976082,
+ -57.002512420685434,
+ -57.00248831513259,
+ -57.00246444086174,
+ -57.00244079565385,
+ -57.00241737731115,
+ -57.00239418365697,
+ -57.00237121253553,
+ -57.00234846181173,
+ -57.00232592937095,
+ -57.002303613118855,
+ -57.00228151098123,
+ -57.00225962090372,
+ -57.00223794085172,
+ -57.002216468810126,
+ -57.00219520278316,
+ -57.00217414079422,
+ -57.002153280885636,
+ -57.00213262111855,
+ -57.00211215957269,
+ -57.00209189434621,
+ -57.00207182355551,
+ -57.002051945335076,
+ -57.00203225783728,
+ -57.002012759232215,
+ -57.00199344770755,
+ -57.001974321468325,
+ -57.00195537873681,
+ -57.001936617752335,
+ -57.001918036771116,
+ -57.0018996340661,
+ -57.00188140792681,
+ -57.00186335665917,
+ -57.00184547858537,
+ -57.0018277720437,
+ -57.00181023538837,
+ -57.00179286698941,
+ -57.00177566523247,
+ -57.001758628518694,
+ -57.00174175526457,
+ -57.00172504390177,
+ -57.00170849287703,
+ -57.001692100651965,
+ -57.00167586570297,
+ -57.001659786521046,
+ -57.00164386161168,
+ -57.0016280894947,
+ -57.00161246870413,
+ -57.001596997788056,
+ -57.00158167530851,
+ -57.001566499841296,
+ -57.0015514699759,
+ -57.001536584315346,
+ -57.00152184147605,
+ -57.0015072400877,
+ -57.001492778793136,
+ -57.00147845624823,
+ -57.00146427112174,
+ -57.001450222095194,
+ -57.001436307862775,
+ -57.00142252713119,
+ -57.001408878619564,
+ -57.0013953610593,
+ -57.001381973193986,
+ -57.00136871377925,
+ -57.001355581582665,
+ -57.00134257538364,
+ -57.001329693973275,
+ -57.00131693615428,
+ -57.001304300740856,
+ -57.00129178655857,
+ -57.00127939244426,
+ -57.00126711724594,
+ -57.00125495982265,
+ -57.00124291904441,
+ -57.00123099379205,
+ -57.00121918295715,
+ -57.00120748544193,
+ -57.00119590015914,
+ -57.001184426031955,
+ -57.00117306199389,
+ -57.001161806988684,
+ -57.00115065997022,
+ -57.00113961990242,
+ -57.00112868575913,
+ -57.00111785652405,
+ -57.001107131190636,
+ -57.001096508762004,
+ -57.00108598825082,
+ -57.00107556867924,
+ -57.00106524907879,
+ -57.00105502849029,
+ -57.00104490596377,
+ -57.00103488055836,
+ -57.00102495134223,
+ -57.00101511739249,
+ -57.0010053777951,
+ -57.00099573164479,
+ -57.00098617804498,
+ -57.00097671610769,
+ -57.00096734495345,
+ -57.00095806371125,
+ -57.00094887151842,
+ -57.00093976752056,
+ -57.0009307508715,
+ -57.00092182073315,
+ -57.00091297627548,
+ -57.000904216676425,
+ -57.00089554112181,
+ -57.00088694880525,
+ -57.00087843892813,
+ -57.00087001069948,
+ -57.00086166333591,
+ -57.000853396061565,
+ -57.00084520810802,
+ -57.00083709871422,
+ -57.00082906712643,
+ -57.00082111259814,
+ -57.00081323438999,
+ -57.00080543176972,
+ -57.0007977040121,
+ -57.00079005039886,
+ -57.00078247021862,
+ -57.00077496276681,
+ -57.00076752734565,
+ -57.00076016326403,
+ -57.000752869837484,
+ -57.0007456463881,
+ -57.00073849224448,
+ -57.00073140674167,
+ -57.00072438922109,
+ -57.00071743903048,
+ -57.000710555523845,
+ -57.000703738061375,
+ -57.00069698600941,
+ -57.00069029874036,
+ -57.000683675632665,
+ -57.00067711607073,
+ -57.00067061944486,
+ -57.00066418515121,
+ -57.000657812591726,
+ -57.000651501174104,
+ -57.00064525031171,
+ -57.00063905942355,
+ -57.000632927934184,
+ -57.00062685527372,
+ -57.00062084087772,
+ -57.00061488418716,
+ -57.00060898464837,
+ -57.00060314171303,
+ -57.000597354838035,
+ -57.00059162348552,
+ -57.000585947122765,
+ -57.000580325222174,
+ -57.000574757261205,
+ -57.000569242722335,
+ -57.000563781093,
+ -57.00055837186555,
+ -57.000553014537225,
+ -57.000547708610064,
+ -57.0005424535909,
+ -57.0005372489913,
+ -57.000532094327504,
+ -57.0005269891204,
+ -57.00052193289548,
+ -57.00051692518277,
+ -57.00051196551683,
+ -57.000507053436664,
+ -57.00050218848571,
+ -57.00049737021178,
+ -57.00049259816704,
+ -57.000487871907936,
+ -57.00048319099517,
+ -57.00047855499367,
+ -57.00047396347253,
+ -57.00046941600498,
+ -57.000464912168354,
+ -57.00046045154402,
+ -57.000456033717384,
+ -57.00045165827782,
+ -57.00044732481864,
+ -57.000443032937056,
+ -57.00043878223416,
+ -57.000434572314866,
+ -57.000430402787856,
+ -57.000426273265596,
+ -57.00042218336426,
+ -57.00041813270369,
+ -57.0004141209074,
+ -57.0004101476025,
+ -57.00040621241968,
+ -57.00040231499319,
+ -57.00039845496076,
+ -57.00039463196361,
+ -57.00039084564641,
+ -57.00038709565723,
+ -57.000383381647524,
+ -57.000379703272074,
+ -57.00037606018899,
+ -57.000372452059665,
+ -57.00036887854873,
+ -57.00036533932403,
+ -57.000361834056605,
+ -57.000358362420656,
+ -57.0003549240935,
+ -57.00035151875556,
+ -57.00034814609031,
+ -57.00034480578427,
+ -57.00034149752698,
+ -57.000338221010935,
+ -57.0003349759316,
+ -57.00033176198735,
+ -57.000328578879454,
+ -57.00032542631206,
+ -57.000322303992135,
+ -57.000319211629474,
+ -57.00031614893665,
+ -57.00031311562899,
+ -57.00031011142457,
+ -57.00030713604414,
+ -57.00030418921116,
+ -57.00030127065172,
+ -57.000298380094556,
+ -57.00029551727099,
+ -57.00029268191494,
+ -57.00028987376287,
+ -57.000287092553755,
+ -57.0002843380291,
+ -57.00028160993287,
+ -57.00027890801151,
+ -57.000276232013874,
+ -57.00027358169124,
+ -57.000270956797266,
+ -57.000268357087975,
+ -57.00026578232173,
+ -57.00026323225922,
+ -57.00026070666342,
+ -57.00025820529958,
+ -57.000255727935205,
+ -57.00025327434003,
+ -57.000250844286015,
+ -57.00024843754728,
+ -57.00024605390012,
+ -57.00024369312299,
+ -57.00024135499646,
+ -57.00023903930321,
+ -57.000236745828005,
+ -57.00023447435766,
+ -57.00023222468106,
+ -57.000229996589105,
+ -57.00022778987469,
+ -57.00022560433272,
+ -57.00022343976004,
+ -57.00022129595547,
+ -57.000219172719746,
+ -57.00021706985552,
+ -57.00021498716734,
+ -57.000212924461614,
+ -57.00021088154663,
+ -57.000208858232504,
+ -57.00020685433117,
+ -57.00020486965637,
+ -57.000202904023645,
+ -57.000200957250286,
+ -57.00019902915534,
+ -57.00019711955961,
+ -57.00019522828559,
+ -57.0001933551575,
+ -57.000191500001236,
+ -57.00018966264437,
+ -57.00018784291612,
+ -57.00018604064735,
+ -57.00018425567054,
+ -57.000182487819785,
+ -57.000180736930766,
+ -57.000179002840746,
+ -57.000177285388546,
+ -57.00017558441453,
+ -57.0001738997606,
+ -57.00017223127017,
+ -57.00017057878816,
+ -57.000168942160975,
+ -57.000167321236496,
+ -57.000165715864064,
+ -57.000164125894464,
+ -57.00016255117991,
+ -57.00016099157404,
+ -57.00015944693189,
+ -57.00015791710989,
+ -57.000156401965846,
+ -57.00015490135893,
+ -57.00015341514967,
+ -57.00015194319992,
+ -57.00015048537287,
+ -57.00014904153302,
+ -57.00014761154617,
+ -57.0001461952794,
+ -57.00014479260108,
+ -57.000143403380825,
+ -57.000142027489524,
+ -57.00014066479928,
+ -57.00013931518344,
+ -57.00013797851656,
+ -57.00013665467441,
+ -57.00013534353392,
+ -57.000134044973244,
+ -57.00013275887167,
+ -57.00013148510967,
+ -57.000130223568846,
+ -57.00012897413194,
+ -57.00012773668283,
+ -57.00012651110649,
+ -57.000125297289,
+ -57.00012409511755,
+ -57.00012290448039,
+ -57.00012172526687,
+ -57.000120557367374,
+ -57.00011940067335,
+ -57.00011825507729,
+ -57.00011712047271,
+ -57.000115996754154,
+ -57.000114883817176,
+ -57.000113781558326,
+ -57.00011268987516,
+ -57.0001116086662,
+ -57.00011053783096,
+ -57.00010947726991,
+ -57.000108426884466,
+ -57.000107386577,
+ -57.00010635625082,
+ -57.000105335810154,
+ -57.000104325160166,
+ -57.00010332420691,
+ -57.00010233285735,
+ -57.00010135101935,
+ -57.00010037860165,
+ -57.00009941551386,
+ -57.00009846166647,
+ -57.00009751697081,
+ -57.000096581339086,
+ -57.00009565468433,
+ -57.00009473692041,
+ -57.000093827962026,
+ -57.000092927724694,
+ -57.000092036124734,
+ -57.000091153079275,
+ -57.00009027850624,
+ -57.00008941232435,
+ -57.000088554453086,
+ -57.000087704812714,
+ -57.00008686332426,
+ -57.00008602990952,
+ -57.000085204491015,
+ -57.00008438699203,
+ -57.00008357733658,
+ -57.000082775449414,
+ -57.000081981255995,
+ -57.00008119468251,
+ -57.000080415655844,
+ -57.00007964410359,
+ -57.00007887995404,
+ -57.000078123136156,
+ -57.0000773735796,
+ -57.00007663121471,
+ -57.00007589597248,
+ -57.000075167784566,
+ -57.00007444658329,
+ -57.00007373230162,
+ -57.00007302487317,
+ -57.00007232423217,
+ -57.000071630313506,
+ -57.000070943052684,
+ -57.00007026238582,
+ -57.00006958824965,
+ -57.00006892058152,
+ -57.00006825931936,
+ -57.00006760440172,
+ -57.00006695576772,
+ -57.000066313357074,
+ -57.00006567711007,
+ -57.00006504696757,
+ -57.000064422871006,
+ -57.00006380476237,
+ -57.00006319258421,
+ -57.000062586279626,
+ -57.000061985792264,
+ -57.00006139106631,
+ -57.000060802046484,
+ -57.00006021867804,
+ -57.000059640906755,
+ -57.00005906867893,
+ -57.000058501941375,
+ -57.00005794064141,
+ -57.00005738472687,
+ -57.00005683414608,
+ -57.000056288847865,
+ -57.00005574878154,
+ -57.000055213896914,
+ -57.00005468414427,
+ -57.00005415947436,
+ -57.00005363983843,
+ -57.00005312518817,
+ -57.000052615475745,
+ -57.00005211065378,
+ -57.000051610675364,
+ -57.00005111549402,
+ -57.000050625063714,
+ -57.00005013933887,
+ -57.000049658274335,
+ -57.0000491818254,
+ -57.000048709947784,
+ -57.00004824259762,
+ -57.000047779731474,
+ -57.00004732130632,
+ -57.00004686727955,
+ -57.000046417608964,
+ -57.000045972252764,
+ -57.00004553116956,
+ -57.00004509431835,
+ -57.000044661658535,
+ -57.00004423314989,
+ -57.0000438087526,
+ -57.000043388427216,
+ -57.00004297213466,
+ -57.000042559836245,
+ -57.00004215149365,
+ -57.00004174706892,
+ -57.00004134652446,
+ -57.00004094982305,
+ -57.000040556927814,
+ -57.00004016780223,
+ -57.000039782410134,
+ -57.0000394007157,
+ -57.00003902268345,
+ -57.000038648278256,
+ -57.00003827746531,
+ -57.000037910210146,
+ -57.00003754647864,
+ -57.000037186236966,
+ -57.00003682945165,
+ -57.000036476089534,
+ -57.00003612611777,
+ -57.000035779503825,
+ -57.00003543621549,
+ -57.00003509622085,
+ -57.00003475948831,
+ -57.00003442598656,
+ -57.00003409568462,
+ -57.00003376855177,
+ -57.00003344455762,
+ -57.00003312367205,
+ -57.000032805865224,
+ -57.00003249110762,
+ -57.000032179369974,
+ -57.00003187062331,
+ -57.000031564838935,
+ -57.00003126198842,
+ -57.000030962043624,
+ -57.00003066497666,
+ -57.00003037075992,
+ -57.00003007936606,
+ -57.000029790768,
+ -57.0000295049389,
+ -57.00002922185221,
+ -57.00002894148161,
+ -57.00002866380104,
+ -57.000028388784685,
+ -57.000028116406995,
+ -57.000027846642645,
+ -57.00002757946656,
+ -57.00002731485392,
+ -57.00002705278011,
+ -57.00002679322078,
+ -57.000026536151815,
+ -57.0000262815493,
+ -57.000026029389595,
+ -57.00002577964924,
+ -57.00002553230504,
+ -57.00002528733399,
+ -57.00002504471333,
+ -57.00002480442051,
+ -57.00002456643319,
+ -57.000024330729254,
+ -57.00002409728679,
+ -57.0000238660841,
+ -57.000023637099694,
+ -57.000023410312295,
+ -57.00002318570082,
+ -57.00002296324439,
+ -57.00002274292233,
+ -57.00002252471416,
+ -57.000022308599604,
+ -57.00002209455857,
+ -57.00002188257116,
+ -57.00002167261768,
+ -57.0000214646786,
+ -57.00002125873461,
+ -57.00002105476656,
+ -57.0000208527555,
+ -57.000020652682636,
+ -57.000020454529384,
+ -57.000020258277324,
+ -57.00002006390822,
+ -57.00001987140399,
+ -57.00001968074676,
+ -57.0000194919188,
+ -57.00001930490256,
+ -57.00001911968065,
+ -57.00001893623587,
+ -57.00001875455116,
+ -57.000018574609626,
+ -57.00001839639455,
+ -57.00001821988938,
+ -57.00001804507769,
+ -57.000017871943236,
+ -57.00001770046993,
+ -57.00001753064184,
+ -57.000017362443174,
+ -57.0000171958583,
+ -57.00001703087173,
+ -57.00001686746813,
+ -57.00001670563232,
+ -57.00001654534925,
+ -57.000016386604024,
+ -57.000016229381885,
+ -57.00001607366822,
+ -57.000015919448565,
+ -57.00001576670858,
+ -57.00001561543406,
+ -57.00001546561095,
+ -57.000015317225326,
+ -57.0000151702634,
+ -57.00001502471151,
+ -57.00001488055612,
+ -57.00001473778384,
+ -57.0000145963814,
+ -57.00001445633565,
+ -57.00001431763357,
+ -57.00001418026228,
+ -57.00001404420901,
+ -57.0000139094611,
+ -57.00001377600604,
+ -57.00001364383142,
+ -57.000013512924966,
+ -57.00001338327449,
+ -57.00001325486796,
+ -57.00001312769343,
+ -57.000013001739084,
+ -57.00001287699321,
+ -57.00001275344422,
+ -57.00001263108062,
+ -57.00001250989105,
+ -57.00001238986424,
+ -57.00001227098903,
+ -57.00001215325438,
+ -57.00001203664934,
+ -57.00001192116307,
+ -57.00001180678484,
+ -57.00001169350402,
+ -57.000011581310076,
+ -57.00001147019258,
+ -57.000011360141215,
+ -57.00001125114574,
+ -57.00001114319603,
+ -57.000011036282054,
+ -57.00001093039386,
+ -57.00001082552162,
+ -57.000010721655585,
+ -57.00001061878609,
+ -57.000010516903586,
+ -57.0000104159986,
+ -57.000010316061754,
+ -57.000010217083755,
+ -57.0000101190554,
+ -57.00001002196759,
+ -57.00000992581129,
+ -57.00000983057757,
+ -57.000009736257574,
+ -57.000009642842535,
+ -57.000009550323774,
+ -57.00000945869269,
+ -57.00000936794076,
+ -57.00000927805956,
+ -57.000009189040725,
+ -57.000009100875985,
+ -57.00000901355715,
+ -57.000008927076095,
+ -57.000008841424794,
+ -57.00000875659528,
+ -57.00000867257966,
+ -57.00000858937014,
+ -57.00000850695898,
+ -57.000008425338514,
+ -57.00000834450116,
+ -57.0000082644394,
+ -57.0000081851458,
+ -57.00000810661299,
+ -57.00000802883366,
+ -57.00000795180059,
+ -57.00000787550662,
+ -57.000007799944655,
+ -57.00000772510767,
+ -57.00000765098872,
+ -57.0000075775809,
+ -57.0000075048774,
+ -57.00000743287146,
+ -57.000007361556385,
+ -57.000007290925545,
+ -57.00000722097238,
+ -57.000007151690376,
+ -57.00000708307311,
+ -57.000007015114186,
+ -57.0000069478073,
+ -57.0000068811462,
+ -57.00000681512468,
+ -57.000006749736606,
+ -57.0000066849759,
+ -57.000006620836544,
+ -57.00000655731258,
+ -57.0000064943981,
+ -57.000006432087254,
+ -57.00000637037425,
+ -57.00000630925336,
+ -57.0000062487189,
+ -57.000006188765234,
+ -57.0000061293868,
+ -57.000006070578074,
+ -57.00000601233359,
+ -57.00000595464794,
+ -57.000005897515756,
+ -57.00000584093173,
+ -57.0000057848906,
+ -57.00000572938716,
+ -57.00000567441626,
+ -57.00000561997277,
+ -57.00000556605164,
+ -57.00000551264787,
+ -57.00000545975647,
+ -57.00000540737255,
+ -57.000005355491226,
+ -57.00000530410768,
+ -57.00000525321714,
+ -57.00000520281487,
+ -57.000005152896186,
+ -57.00000510345645,
+ -57.00000505449107,
+ -57.00000500599549,
+ -57.0000049579652,
+ -57.000004910395745,
+ -57.0000048632827,
+ -57.000004816621676,
+ -57.000004770408346,
+ -57.00000472463841,
+ -57.000004679307615,
+ -57.00000463441175,
+ -57.00000458994664,
+ -57.000004545908155,
+ -57.0000045022922,
+ -57.00000445909472,
+ -57.0000044163117,
+ -57.00000437393916,
+ -57.00000433197317,
+ -57.00000429040983,
+ -57.000004249245265,
+ -57.00000420847566,
+ -57.00000416809722,
+ -57.00000412810619,
+ -57.000004088498855,
+ -57.00000404927154,
+ -57.00000401042059,
+ -57.0000039719424,
+ -57.00000393383339,
+ -57.00000389609002,
+ -57.00000385870878,
+ -57.00000382168619,
+ -57.00000378501882,
+ -57.00000374870326,
+ -57.000003712736124,
+ -57.00000367711408,
+ -57.000003641833814,
+ -57.00000360689205,
+ -57.000003572285536,
+ -57.00000353801105,
+ -57.00000350406542,
+ -57.00000347044548,
+ -57.0000034371481,
+ -57.0000034041702,
+ -57.00000337150871,
+ -57.00000333916059,
+ -57.00000330712284,
+ -57.00000327539247,
+ -57.000003243966546,
+ -57.00000321284214,
+ -57.00000318201636,
+ -57.00000315148633,
+ -57.00000312124923,
+ -57.00000309130224,
+ -57.00000306164258,
+ -57.000003032267486,
+ -57.000003003174236,
+ -57.00000297436012,
+ -57.000002945822466,
+ -57.00000291755862,
+ -57.00000288956595,
+ -57.00000286184186,
+ -57.000002834383764,
+ -57.00000280718912,
+ -57.00000278025539,
+ -57.000002753580084,
+ -57.00000272716071,
+ -57.00000270099483,
+ -57.00000267507999,
+ -57.000002649413794,
+ -57.00000262399385,
+ -57.0000025988178,
+ -57.00000257388331,
+ -57.000002549188046,
+ -57.00000252472973,
+ -57.00000250050608,
+ -57.00000247651484,
+ -57.00000245275378,
+ -57.00000242922071,
+ -57.00000240591342,
+ -57.000002382829756,
+ -57.00000235996757,
+ -57.00000233732474,
+ -57.00000231489915,
+ -57.00000229268873,
+ -57.000002270691404,
+ -57.00000224890513,
+ -57.0000022273279,
+ -57.000002205957685,
+ -57.00000218479251,
+ -57.0000021638304,
+ -57.000002143069416,
+ -57.000002122507624,
+ -57.000002102143114,
+ -57.00000208197399,
+ -57.00000206199838,
+ -57.000002042214426,
+ -57.00000202262029,
+ -57.000002003214156,
+ -57.00000198399421,
+ -57.00000196495867,
+ -57.00000194610577,
+ -57.00000192743376,
+ -57.000001908940895,
+ -57.00000189062546,
+ -57.000001872485754,
+ -57.00000185452009,
+ -57.0000018367268,
+ -57.00000181910423,
+ -57.00000180165073,
+ -57.0000017843647,
+ -57.00000176724452,
+ -57.0000017502886,
+ -57.00000173349536,
+ -57.000001716863245,
+ -57.00000170039071,
+ -57.000001684076224,
+ -57.00000166791827,
+ -57.00000165191534,
+ -57.00000163606595,
+ -57.00000162036863,
+ -57.00000160482192,
+ -57.00000158942437,
+ -57.000001574174554,
+ -57.00000155907105,
+ -57.000001544112465,
+ -57.00000152929739,
+ -57.000001514624465,
+ -57.000001500092324,
+ -57.000001485699606,
+ -57.00000147144498,
+ -57.00000145732712,
+ -57.00000144334472,
+ -57.00000142949647,
+ -57.00000141578109,
+ -57.000001402197306,
+ -57.00000138874385,
+ -57.00000137541947,
+ -57.00000136222294,
+ -57.00000134915302,
+ -57.0000013362085,
+ -57.000001323388176,
+ -57.000001310690855,
+ -57.000001298115365,
+ -57.00000128566053,
+ -57.000001273325196,
+ -57.00000126110821,
+ -57.00000124900844,
+ -57.00000123702476,
+ -57.00000122515606,
+ -57.00000121340124,
+ -57.0000012017592,
+ -57.00000119022886,
+ -57.00000117880914,
+ -57.00000116749899,
+ -57.000001156297365,
+ -57.00000114520321,
+ -57.000001134215495,
+ -57.000001123333206,
+ -57.000001112555324,
+ -57.000001101880855,
+ -57.0000010913088,
+ -57.00000108083818,
+ -57.000001070468024,
+ -57.00000106019736,
+ -57.00000105002524,
+ -57.00000103995072,
+ -57.00000102997286,
+ -57.00000102009073,
+ -57.000001010303414,
+ -57.000001000610006,
+ -57.0000009910096,
+ -57.00000098150131,
+ -57.000000972084244,
+ -57.00000096275753,
+ -57.000000953520306,
+ -57.000000944371706,
+ -57.00000093531088,
+ -57.00000092633699,
+ -57.0000009174492,
+ -57.00000090864668,
+ -57.00000089992862,
+ -57.000000891294206,
+ -57.00000088274264,
+ -57.00000087427312,
+ -57.00000086588486,
+ -57.00000085757708,
+ -57.00000084934901,
+ -57.000000841199885,
+ -57.00000083312895,
+ -57.00000082513545,
+ -57.00000081721865,
+ -57.0000008093778,
+ -57.00000080161218,
+ -57.00000079392107,
+ -57.00000078630375,
+ -57.00000077875952,
+ -57.000000771287674,
+ -57.00000076388751,
+ -57.00000075655836,
+ -57.00000074929952,
+ -57.00000074211032,
+ -57.00000073499011,
+ -57.00000072793821,
+ -57.00000072095396,
+ -57.00000071403673,
+ -57.00000070718587,
+ -57.00000070040074,
+ -57.00000069368071,
+ -57.00000068702516,
+ -57.00000068043346,
+ -57.00000067390501,
+ -57.00000066743919,
+ -57.00000066103541,
+ -57.00000065469307,
+ -57.00000064841158,
+ -57.00000064219036,
+ -57.00000063602883,
+ -57.00000062992642,
+ -57.000000623882556,
+ -57.00000061789668,
+ -57.00000061196824,
+ -57.00000060609668,
+ -57.00000060028145,
+ -57.00000059452202,
+ -57.00000058881785,
+ -57.0000005831684,
+ -57.00000057757316,
+ -57.0000005720316,
+ -57.000000566543214,
+ -57.000000561107484,
+ -57.00000055572391,
+ -57.00000055039199,
+ -57.00000054511122,
+ -57.00000053988112,
+ -57.0000005347012,
+ -57.00000052957098,
+ -57.000000524489984,
+ -57.000000519457735,
+ -57.00000051447377,
+ -57.00000050953762,
+ -57.00000050464884,
+ -57.00000049980696,
+ -57.000000495011534,
+ -57.00000049026212,
+ -57.000000485558274,
+ -57.00000048089956,
+ -57.00000047628554,
+ -57.00000047171579,
+ -57.00000046718989,
+ -57.00000046270741,
+ -57.00000045826794,
+ -57.00000045387107,
+ -57.00000044951638,
+ -57.00000044520347,
+ -57.00000044093194,
+ -57.0000004367014,
+ -57.00000043251144,
+ -57.00000042836169,
+ -57.00000042425175,
+ -57.000000420181244,
+ -57.000000416149796,
+ -57.00000041215702,
+ -57.00000040820256,
+ -57.00000040428604,
+ -57.000000400407096,
+ -57.00000039656537,
+ -57.000000392760505,
+ -57.00000038899214,
+ -57.00000038525994,
+ -57.00000038156354,
+ -57.00000037790261,
+ -57.0000003742768,
+ -57.00000037068578,
+ -57.00000036712922,
+ -57.00000036360678,
+ -57.000000360118136,
+ -57.000000356662966,
+ -57.00000035324094,
+ -57.00000034985175,
+ -57.000000346495085,
+ -57.00000034317062,
+ -57.00000033987805,
+ -57.00000033661707,
+ -57.00000033338738,
+ -57.00000033018868,
+ -57.00000032702067,
+ -57.00000032388306,
+ -57.00000032077554,
+ -57.00000031769785,
+ -57.000000314649675,
+ -57.00000031163075,
+ -57.00000030864079,
+ -57.00000030567952,
+ -57.00000030274666,
+ -57.00000029984194,
+ -57.00000029696509,
+ -57.00000029411584,
+ -57.00000029129393,
+ -57.000000288499095,
+ -57.000000285731076,
+ -57.00000028298962,
+ -57.000000280274456,
+ -57.00000027758535,
+ -57.000000274922044,
+ -57.00000027228429,
+ -57.000000269671844,
+ -57.00000026708447,
+ -57.00000026452191,
+ -57.00000026198394,
+ -57.000000259470326,
+ -57.000000256980826,
+ -57.00000025451521,
+ -57.00000025207325,
+ -57.00000024965472,
+ -57.00000024725939,
+ -57.00000024488705,
+ -57.00000024253747,
+ -57.000000240210426,
+ -57.00000023790572,
+ -57.00000023562312,
+ -57.00000023336242,
+ -57.000000231123416,
+ -57.00000022890589,
+ -57.00000022670964,
+ -57.00000022453446,
+ -57.00000022238015,
+ -57.00000022024651,
+ -57.000000218133344,
+ -57.000000216040455,
+ -57.000000213967645,
+ -57.000000211914724,
+ -57.0000002098815,
+ -57.00000020786778,
+ -57.00000020587338,
+ -57.00000020389811,
+ -57.0000002019418,
+ -57.00000020000426,
+ -57.00000019808531,
+ -57.00000019618477,
+ -57.000000194302466,
+ -57.00000019243822,
+ -57.00000019059186,
+ -57.00000018876322,
+ -57.00000018695212,
+ -57.0000001851584,
+ -57.000000183381886,
+ -57.00000018162242,
+ -57.000000179879834,
+ -57.00000017815397,
+ -57.00000017644466,
+ -57.00000017475175,
+ -57.00000017307508,
+ -57.0000001714145,
+ -57.000000169769855,
+ -57.00000016814099,
+ -57.000000166527755,
+ -57.00000016492999,
+ -57.000000163347565,
+ -57.00000016178032,
+ -57.00000016022811,
+ -57.000000158690796,
+ -57.00000015716823,
+ -57.000000155660274,
+ -57.000000154166784,
+ -57.000000152687626,
+ -57.00000015122266,
+ -57.00000014977174,
+ -57.00000014833475,
+ -57.000000146911546,
+ -57.00000014550199,
+ -57.00000014410597,
+ -57.00000014272334,
+ -57.00000014135397,
+ -57.000000139997745,
+ -57.00000013865453,
+ -57.0000001373242,
+ -57.00000013600663,
+ -57.00000013470171,
+ -57.0000001334093,
+ -57.0000001321293,
+ -57.00000013086158,
+ -57.00000012960602,
+ -57.00000012836251,
+ -57.000000127130924,
+ -57.00000012591116,
+ -57.00000012470309,
+ -57.000000123506624,
+ -57.00000012232163,
+ -57.000000121148005,
+ -57.00000011998564,
+ -57.000000118834436,
+ -57.00000011769427,
+ -57.00000011656505,
+ -57.00000011544666,
+ -57.000000114339,
+ -57.000000113241974,
+ -57.00000011215547,
+ -57.00000011107939,
+ -57.00000011001363,
+ -57.0000001089581,
+ -57.00000010791269,
+ -57.000000106877316,
+ -57.000000105851875,
+ -57.000000104836275,
+ -57.000000103830416,
+ -57.00000010283421,
+ -57.00000010184756,
+ -57.00000010087038,
+ -57.00000009990257,
+ -57.00000009894405,
+ -57.00000009799473,
+ -57.00000009705451,
+ -57.000000096123316,
+ -57.00000009520105,
+ -57.00000009428764,
+ -57.000000093382994,
+ -57.00000009248703,
+ -57.00000009159966,
+ -57.0000000907208,
+ -57.000000089850374,
+ -57.0000000889883,
+ -57.0000000881345,
+ -57.00000008728889,
+ -57.000000086451394,
+ -57.000000085621934,
+ -57.00000008480043,
+ -57.00000008398681,
+ -57.00000008318099,
+ -57.00000008238291,
+ -57.00000008159248,
+ -57.00000008080964,
+ -57.00000008003431,
+ -57.00000007926642,
+ -57.0000000785059,
+ -57.00000007775267,
+ -57.00000007700667,
+ -57.000000076267824,
+ -57.00000007553607,
+ -57.00000007481134,
+ -57.000000074093556,
+ -57.00000007338266,
+ -57.00000007267858,
+ -57.00000007198126,
+ -57.000000071290636,
+ -57.00000007060663,
+ -57.00000006992919,
+ -57.000000069258256,
+ -57.00000006859376,
+ -57.00000006793563,
+ -57.00000006728382,
+ -57.000000066638265,
+ -57.0000000659989,
+ -57.00000006536567,
+ -57.000000064738515,
+ -57.00000006411738,
+ -57.0000000635022,
+ -57.00000006289292,
+ -57.000000062289494,
+ -57.00000006169186,
+ -57.00000006109995,
+ -57.00000006051373,
+ -57.00000005993313,
+ -57.0000000593581,
+ -57.000000058788586,
+ -57.000000058224536,
+ -57.0000000576659,
+ -57.00000005711262,
+ -57.00000005656465,
+ -57.00000005602194,
+ -57.000000055484435,
+ -57.00000005495209,
+ -57.000000054424845,
+ -57.00000005390266,
+ -57.00000005338549,
+ -57.00000005287328,
+ -57.00000005236599,
+ -57.000000051863566,
+ -57.00000005136596,
+ -57.000000050873126,
+ -57.00000005038502,
+ -57.000000049901594,
+ -57.00000004942281,
+ -57.00000004894862,
+ -57.00000004847898,
+ -57.000000048013845,
+ -57.00000004755317,
+ -57.00000004709692,
+ -57.00000004664504,
+ -57.000000046197506,
+ -57.00000004575426,
+ -57.00000004531527,
+ -57.00000004488049,
+ -57.00000004444988,
+ -57.0000000440234,
+ -57.00000004360102,
+ -57.00000004318269,
+ -57.00000004276837,
+ -57.000000042358025,
+ -57.000000041951616,
+ -57.00000004154911,
+ -57.000000041150464,
+ -57.000000040755644,
+ -57.00000004036461,
+ -57.00000003997733,
+ -57.000000039593765,
+ -57.00000003921388,
+ -57.00000003883764,
+ -57.00000003846501,
+ -57.000000038095955,
+ -57.000000037730445,
+ -57.00000003736844,
+ -57.000000037009904,
+ -57.00000003665481,
+ -57.00000003630313,
+ -57.00000003595481,
+ -57.000000035609844,
+ -57.00000003526819,
+ -57.000000034929805,
+ -57.00000003459467,
+ -57.00000003426275,
+ -57.000000033934015,
+ -57.00000003360843,
+ -57.00000003328597,
+ -57.00000003296661,
+ -57.00000003265031,
+ -57.00000003233705,
+ -57.00000003202679,
+ -57.00000003171951,
+ -57.000000031415176,
+ -57.000000031113764,
+ -57.000000030815244,
+ -57.00000003051959,
+ -57.000000030226765,
+ -57.00000002993675,
+ -57.00000002964952,
+ -57.00000002936505,
+ -57.0000000290833,
+ -57.00000002880426,
+ -57.00000002852789,
+ -57.00000002825418,
+ -57.00000002798309,
+ -57.000000027714606,
+ -57.0000000274487,
+ -57.000000027185344,
+ -57.00000002692451,
+ -57.00000002666618,
+ -57.000000026410326,
+ -57.00000002615693,
+ -57.00000002590597,
+ -57.000000025657414,
+ -57.00000002541124,
+ -57.00000002516743,
+ -57.00000002492596,
+ -57.000000024686805,
+ -57.000000024449946,
+ -57.00000002421536,
+ -57.00000002398303,
+ -57.00000002375292,
+ -57.00000002352502,
+ -57.00000002329931,
+ -57.00000002307576,
+ -57.00000002285436,
+ -57.00000002263508,
+ -57.00000002241791,
+ -57.00000002220282,
+ -57.00000002198979,
+ -57.00000002177881,
+ -57.00000002156985,
+ -57.0000000213629,
+ -57.00000002115793,
+ -57.00000002095493,
+ -57.00000002075387,
+ -57.00000002055475,
+ -57.00000002035754,
+ -57.00000002016222,
+ -57.00000001996877,
+ -57.00000001977718,
+ -57.00000001958743,
+ -57.0000000193995,
+ -57.000000019213374,
+ -57.00000001902903,
+ -57.00000001884646,
+ -57.00000001866563,
+ -57.000000018486546,
+ -57.00000001830917,
+ -57.000000018133505,
+ -57.00000001795952,
+ -57.00000001778721,
+ -57.00000001761655,
+ -57.000000017447526,
+ -57.00000001728012,
+ -57.000000017114324,
+ -57.00000001695012,
+ -57.00000001678749,
+ -57.00000001662642,
+ -57.0000000164669,
+ -57.00000001630891,
+ -57.000000016152434,
+ -57.00000001599746,
+ -57.000000015843966,
+ -57.00000001569195,
+ -57.000000015541396,
+ -57.00000001539228,
+ -57.0000000152446,
+ -57.00000001509834,
+ -57.00000001495348,
+ -57.000000014810006,
+ -57.00000001466791,
+ -57.00000001452718,
+ -57.0000000143878,
+ -57.00000001424976,
+ -57.000000014113034,
+ -57.000000013977626,
+ -57.00000001384352,
+ -57.0000000137107,
+ -57.00000001357915,
+ -57.00000001344886,
+ -57.00000001331983,
+ -57.00000001319203,
+ -57.00000001306546,
+ -57.000000012940106,
+ -57.00000001281595,
+ -57.000000012692986,
+ -57.0000000125712,
+ -57.000000012450585,
+ -57.00000001233113,
+ -57.000000012212816,
+ -57.00000001209564,
+ -57.00000001197959,
+ -57.00000001186465,
+ -57.000000011750814,
+ -57.00000001163807,
+ -57.00000001152641,
+ -57.00000001141582,
+ -57.00000001130629,
+ -57.00000001119781,
+ -57.00000001109037,
+ -57.00000001098397,
+ -57.00000001087858,
+ -57.00000001077421,
+ -57.00000001067083,
+ -57.00000001056845,
+ -57.00000001046705,
+ -57.00000001036662,
+ -57.00000001026716,
+ -57.00000001016865,
+ -57.00000001007108,
+ -57.00000000997446,
+ -57.000000009878754,
+ -57.000000009783975,
+ -57.000000009690105,
+ -57.00000000959713,
+ -57.00000000950505,
+ -57.00000000941385,
+ -57.00000000932353,
+ -57.00000000923407,
+ -57.000000009145474,
+ -57.00000000905773,
+ -57.00000000897082,
+ -57.000000008884754,
+ -57.00000000879951,
+ -57.000000008715084,
+ -57.00000000863147,
+ -57.00000000854865,
+ -57.000000008466635,
+ -57.0000000083854,
+ -57.000000008304944,
+ -57.000000008225264,
+ -57.000000008146344,
+ -57.000000008068184,
+ -57.00000000799077,
+ -57.0000000079141,
+ -57.00000000783817,
+ -57.000000007762964,
+ -57.000000007688485,
+ -57.000000007614716,
+ -57.00000000754166,
+ -57.000000007469296,
+ -57.00000000739763,
+ -57.000000007326655,
+ -57.00000000725636,
+ -57.00000000718674,
+ -57.00000000711779,
+ -57.0000000070495,
+ -57.000000006981864,
+ -57.000000006914874,
+ -57.00000000684853,
+ -57.00000000678282,
+ -57.00000000671774,
+ -57.00000000665329,
+ -57.00000000658945,
+ -57.00000000652623,
+ -57.000000006463615,
+ -57.0000000064016,
+ -57.00000000634018,
+ -57.00000000627935,
+ -57.0000000062191,
+ -57.00000000615943,
+ -57.000000006100336,
+ -57.00000000604181,
+ -57.00000000598384,
+ -57.00000000592643,
+ -57.000000005869566,
+ -57.00000000581325,
+ -57.00000000575747,
+ -57.00000000570223,
+ -57.00000000564752,
+ -57.000000005593336,
+ -57.00000000553967,
+ -57.00000000548652,
+ -57.000000005433876,
+ -57.00000000538174,
+ -57.00000000533011,
+ -57.00000000527897,
+ -57.00000000522832,
+ -57.00000000517816,
+ -57.00000000512848,
+ -57.00000000507927,
+ -57.000000005030536,
+ -57.00000000498227,
+ -57.00000000493446,
+ -57.00000000488712,
+ -57.00000000484023,
+ -57.00000000479379,
+ -57.0000000047478,
+ -57.000000004702244,
+ -57.000000004657124,
+ -57.00000000461244,
+ -57.000000004568186,
+ -57.00000000452436,
+ -57.00000000448095,
+ -57.00000000443796,
+ -57.000000004395375,
+ -57.000000004353204,
+ -57.00000000431144,
+ -57.00000000427007,
+ -57.0000000042291,
+ -57.00000000418852,
+ -57.00000000414833,
+ -57.00000000410853,
+ -57.00000000406911,
+ -57.00000000403006,
+ -57.000000003991396,
+ -57.0000000039531,
+ -57.00000000391517,
+ -57.0000000038776,
+ -57.0000000038404,
+ -57.00000000380355,
+ -57.000000003767056,
+ -57.00000000373091,
+ -57.00000000369511,
+ -57.00000000365966,
+ -57.00000000362454,
+ -57.00000000358977,
+ -57.00000000355533,
+ -57.000000003521215,
+ -57.00000000348743,
+ -57.00000000345397,
+ -57.00000000342083,
+ -57.00000000338801,
+ -57.0000000033555,
+ -57.00000000332331,
+ -57.00000000329142,
+ -57.00000000325984,
+ -57.000000003228564,
+ -57.000000003197584,
+ -57.0000000031669,
+ -57.00000000313652,
+ -57.00000000310643,
+ -57.00000000307662,
+ -57.000000003047106,
+ -57.00000000301787,
+ -57.00000000298891,
+ -57.000000002960235,
+ -57.000000002931834,
+ -57.000000002903704,
+ -57.000000002875844,
+ -57.00000000284825,
+ -57.000000002820926,
+ -57.00000000279386,
+ -57.00000000276705,
+ -57.00000000274051,
+ -57.00000000271421,
+ -57.00000000268817,
+ -57.000000002662375,
+ -57.00000000263683,
+ -57.00000000261153,
+ -57.000000002586475,
+ -57.000000002561656,
+ -57.00000000253708,
+ -57.000000002512735,
+ -57.000000002488626,
+ -57.00000000246475,
+ -57.000000002441105,
+ -57.000000002417686,
+ -57.000000002394486,
+ -57.000000002371515,
+ -57.00000000234876,
+ -57.000000002326225,
+ -57.000000002303906,
+ -57.0000000022818,
+ -57.00000000225991,
+ -57.000000002238224,
+ -57.00000000221675,
+ -57.000000002195485,
+ -57.00000000217442,
+ -57.000000002153556,
+ -57.00000000213289,
+ -57.00000000211243,
+ -57.000000002092165,
+ -57.00000000207209,
+ -57.00000000205221,
+ -57.00000000203252,
+ -57.00000000201302,
+ -57.000000001993705,
+ -57.00000000197458,
+ -57.000000001955634,
+ -57.00000000193687,
+ -57.00000000191829,
+ -57.000000001899885,
+ -57.00000000188166,
+ -57.000000001863604,
+ -57.00000000184573,
+ -57.00000000182802,
+ -57.000000001810484,
+ -57.00000000179311,
+ -57.00000000177591,
+ -57.00000000175887,
+ -57.000000001741995,
+ -57.00000000172528,
+ -57.00000000170873,
+ -57.000000001692335,
+ -57.0000000016761,
+ -57.00000000166002,
+ -57.00000000164409,
+ -57.000000001628315,
+ -57.00000000161269,
+ -57.000000001597215,
+ -57.00000000158189,
+ -57.00000000156671,
+ -57.000000001551676,
+ -57.00000000153679,
+ -57.00000000152205,
+ -57.000000001507445,
+ -57.00000000149298,
+ -57.000000001478654,
+ -57.000000001464464,
+ -57.00000000145042,
+ -57.0000000014365,
+ -57.00000000142271,
+ -57.00000000140906,
+ -57.00000000139554,
+ -57.000000001382155,
+ -57.000000001368896,
+ -57.000000001355765,
+ -57.000000001342755,
+ -57.00000000132987,
+ -57.00000000131711,
+ -57.00000000130447,
+ -57.00000000129196,
+ -57.00000000127956,
+ -57.00000000126728,
+ -57.000000001255124,
+ -57.00000000124308,
+ -57.00000000123115,
+ -57.00000000121934,
+ -57.000000001207646,
+ -57.00000000119606,
+ -57.00000000118458,
+ -57.00000000117321,
+ -57.00000000116196,
+ -57.00000000115081,
+ -57.00000000113977,
+ -57.00000000112883,
+ -57.000000001118,
+ -57.000000001107274,
+ -57.00000000109665,
+ -57.00000000108613,
+ -57.000000001075705,
+ -57.00000000106538,
+ -57.000000001055156,
+ -57.00000000104503,
+ -57.000000001035005,
+ -57.00000000102507,
+ -57.00000000101524,
+ -57.000000001005496,
+ -57.00000000099585,
+ -57.00000000098629,
+ -57.000000000976826,
+ -57.000000000967454,
+ -57.000000000958174,
+ -57.00000000094898,
+ -57.00000000093988,
+ -57.00000000093086,
+ -57.00000000092193,
+ -57.00000000091308,
+ -57.00000000090432,
+ -57.000000000895646,
+ -57.000000000887056,
+ -57.00000000087854,
+ -57.000000000870116,
+ -57.00000000086177,
+ -57.0000000008535,
+ -57.00000000084531,
+ -57.000000000837204,
+ -57.000000000829175,
+ -57.00000000082122,
+ -57.00000000081334,
+ -57.000000000805535,
+ -57.000000000797804,
+ -57.00000000079015,
+ -57.00000000078257,
+ -57.00000000077506,
+ -57.00000000076762,
+ -57.00000000076025,
+ -57.000000000752955,
+ -57.00000000074573,
+ -57.000000000738574,
+ -57.00000000073149,
+ -57.00000000072447,
+ -57.00000000071752,
+ -57.000000000710635,
+ -57.000000000703814,
+ -57.000000000697064,
+ -57.00000000069038,
+ -57.000000000683755,
+ -57.0000000006772,
+ -57.0000000006707,
+ -57.000000000664265,
+ -57.00000000065789,
+ -57.00000000065158,
+ -57.00000000064533,
+ -57.00000000063914,
+ -57.00000000063301,
+ -57.00000000062693,
+ -57.000000000620915,
+ -57.00000000061496,
+ -57.00000000060906,
+ -57.00000000060322,
+ -57.00000000059743,
+ -57.0000000005917,
+ -57.00000000058602,
+ -57.0000000005804,
+ -57.00000000057483,
+ -57.000000000569315,
+ -57.00000000056385,
+ -57.000000000558444,
+ -57.00000000055309,
+ -57.00000000054778,
+ -57.00000000054252,
+ -57.00000000053731,
+ -57.000000000532154,
+ -57.000000000527045,
+ -57.000000000521986,
+ -57.00000000051698,
+ -57.00000000051202,
+ -57.00000000050711,
+ -57.00000000050224,
+ -57.00000000049742,
+ -57.00000000049265,
+ -57.00000000048792,
+ -57.00000000048324,
+ -57.0000000004786,
+ -57.00000000047401,
+ -57.00000000046946,
+ -57.00000000046496,
+ -57.000000000460496,
+ -57.000000000456076,
+ -57.0000000004517,
+ -57.000000000447365,
+ -57.00000000044307,
+ -57.000000000438824,
+ -57.00000000043461,
+ -57.00000000043044,
+ -57.00000000042631,
+ -57.00000000042222,
+ -57.00000000041817,
+ -57.000000000414154,
+ -57.00000000041018,
+ -57.000000000406246,
+ -57.000000000402345,
+ -57.00000000039849,
+ -57.000000000394664,
+ -57.00000000039088,
+ -57.000000000387125,
+ -57.00000000038341,
+ -57.00000000037973,
+ -57.00000000037608,
+ -57.000000000372474,
+ -57.0000000003689,
+ -57.00000000036536,
+ -57.00000000036186,
+ -57.00000000035838,
+ -57.000000000354945,
+ -57.00000000035154,
+ -57.000000000348166,
+ -57.000000000344826,
+ -57.000000000341515,
+ -57.00000000033824,
+ -57.00000000033499,
+ -57.00000000033178,
+ -57.0000000003286,
+ -57.00000000032544,
+ -57.00000000032232,
+ -57.00000000031923,
+ -57.00000000031617,
+ -57.000000000313136,
+ -57.00000000031013,
+ -57.00000000030715,
+ -57.000000000304205,
+ -57.000000000301284,
+ -57.00000000029839,
+ -57.00000000029553,
+ -57.000000000292694,
+ -57.00000000028989,
+ -57.00000000028711,
+ -57.00000000028435,
+ -57.000000000281624,
+ -57.00000000027892,
+ -57.000000000276245,
+ -57.000000000273594,
+ -57.00000000027097,
+ -57.00000000026837,
+ -57.0000000002658,
+ -57.00000000026325,
+ -57.00000000026073,
+ -57.000000000258225,
+ -57.000000000255746,
+ -57.000000000253294,
+ -57.000000000250864,
+ -57.000000000248455,
+ -57.000000000246075,
+ -57.000000000243716,
+ -57.00000000024138,
+ -57.00000000023906,
+ -57.00000000023677,
+ -57.00000000023449,
+ -57.00000000023224,
+ -57.00000000023001,
+ -57.0000000002278,
+ -57.00000000022561,
+ -57.000000000223444,
+ -57.0000000002213,
+ -57.000000000219174,
+ -57.00000000021707,
+ -57.00000000021499,
+ -57.00000000021293,
+ -57.00000000021088,
+ -57.00000000020886,
+ -57.00000000020685,
+ -57.00000000020487,
+ -57.0000000002029,
+ -57.000000000200956,
+ -57.00000000019903,
+ -57.00000000019712,
+ -57.00000000019523,
+ -57.00000000019335,
+ -57.0000000001915,
+ -57.00000000018966,
+ -57.00000000018784,
+ -57.000000000186034,
+ -57.00000000018425,
+ -57.00000000018248,
+ -57.000000000180734,
+ -57.000000000179,
+ -57.00000000017728,
+ -57.00000000017558,
+ -57.0000000001739,
+ -57.00000000017223,
+ -57.00000000017057,
+ -57.00000000016894,
+ -57.00000000016732,
+ -57.00000000016571,
+ -57.00000000016412,
+ -57.000000000162544,
+ -57.00000000016099,
+ -57.000000000159446,
+ -57.00000000015792,
+ -57.000000000156405,
+ -57.000000000154905,
+ -57.00000000015342,
+ -57.00000000015195,
+ -57.00000000015049,
+ -57.00000000014905,
+ -57.00000000014762,
+ -57.00000000014621,
+ -57.00000000014481,
+ -57.000000000143416,
+ -57.00000000014204,
+ -57.00000000014067,
+ -57.00000000013932,
+ -57.00000000013799,
+ -57.000000000136666,
+ -57.00000000013535,
+ -57.00000000013405,
+ -57.000000000132765,
+ -57.00000000013149,
+ -57.00000000013023,
+ -57.00000000012898,
+ -57.00000000012774,
+ -57.00000000012652,
+ -57.000000000125304,
+ -57.0000000001241,
+ -57.00000000012291,
+ -57.00000000012173,
+ -57.000000000120565,
+ -57.00000000011941,
+ -57.00000000011826,
+ -57.000000000117126,
+ -57.000000000116,
+ -57.00000000011489,
+ -57.000000000113786,
+ -57.00000000011269,
+ -57.00000000011161,
+ -57.00000000011054,
+ -57.00000000010948,
+ -57.00000000010843,
+ -57.00000000010739,
+ -57.00000000010636,
+ -57.00000000010534,
+ -57.00000000010433,
+ -57.00000000010333,
+ -57.00000000010233,
+ -57.00000000010135,
+ -57.00000000010038,
+ -57.00000000009941,
+ -57.00000000009846,
+ -57.000000000097515,
+ -57.00000000009658,
+ -57.00000000009565,
+ -57.00000000009474,
+ -57.00000000009383,
+ -57.000000000092925,
+ -57.00000000009204,
+ -57.000000000091156,
+ -57.00000000009028,
+ -57.000000000089415,
+ -57.000000000088555,
+ -57.0000000000877,
+ -57.000000000086864,
+ -57.00000000008603,
+ -57.00000000008521,
+ -57.00000000008439,
+ -57.00000000008358,
+ -57.00000000008278,
+ -57.00000000008198,
+ -57.000000000081194,
+ -57.00000000008041,
+ -57.00000000007964,
+ -57.00000000007887,
+ -57.00000000007812,
+ -57.00000000007737,
+ -57.00000000007663,
+ -57.0000000000759,
+ -57.000000000075175,
+ -57.00000000007445,
+ -57.00000000007373,
+ -57.00000000007302,
+ -57.00000000007232,
+ -57.00000000007162,
+ -57.00000000007093,
+ -57.00000000007025,
+ -57.000000000069576,
+ -57.00000000006891,
+ -57.00000000006825,
+ -57.000000000067594,
+ -57.00000000006695,
+ -57.00000000006631,
+ -57.00000000006567,
+ -57.000000000065036,
+ -57.00000000006441,
+ -57.00000000006379,
+ -57.00000000006318,
+ -57.00000000006258,
+ -57.00000000006198,
+ -57.000000000061384,
+ -57.000000000060794,
+ -57.00000000006021,
+ -57.000000000059636,
+ -57.00000000005906,
+ -57.00000000005849,
+ -57.00000000005793,
+ -57.000000000057376,
+ -57.00000000005683,
+ -57.00000000005628,
+ -57.00000000005574,
+ -57.00000000005521,
+ -57.000000000054676,
+ -57.00000000005415,
+ -57.00000000005363,
+ -57.00000000005312,
+ -57.00000000005261,
+ -57.000000000052104,
+ -57.00000000005161,
+ -57.00000000005111,
+ -57.00000000005062,
+ -57.000000000050136,
+ -57.00000000004965,
+ -57.00000000004918,
+ -57.00000000004871,
+ -57.00000000004824,
+ -57.00000000004778,
+ -57.000000000047315,
+ -57.00000000004686,
+ -57.00000000004641,
+ -57.000000000045965,
+ -57.000000000045524,
+ -57.00000000004509,
+ -57.00000000004466,
+ -57.00000000004423,
+ -57.000000000043805,
+ -57.000000000043386,
+ -57.00000000004297,
+ -57.000000000042554,
+ -57.00000000004215,
+ -57.000000000041744,
+ -57.00000000004135,
+ -57.00000000004095,
+ -57.00000000004056,
+ -57.00000000004017,
+ -57.00000000003978,
+ -57.0000000000394,
+ -57.00000000003902,
+ -57.000000000038646,
+ -57.00000000003828,
+ -57.00000000003791,
+ -57.000000000037545,
+ -57.00000000003718,
+ -57.00000000003683,
+ -57.00000000003647,
+ -57.000000000036124,
+ -57.000000000035776,
+ -57.000000000035435,
+ -57.000000000035094,
+ -57.00000000003476,
+ -57.000000000034426,
+ -57.0000000000341,
+ -57.00000000003377,
+ -57.000000000033445,
+ -57.000000000033126,
+ -57.000000000032806,
+ -57.00000000003249,
+ -57.00000000003218,
+ -57.000000000031875,
+ -57.00000000003157,
+ -57.000000000031264,
+ -57.000000000030965,
+ -57.00000000003067,
+ -57.000000000030376,
+ -57.000000000030084,
+ -57.00000000002979,
+ -57.00000000002951,
+ -57.000000000029225,
+ -57.00000000002895,
+ -57.00000000002867,
+ -57.00000000002839,
+ -57.00000000002812,
+ -57.00000000002785,
+ -57.00000000002758,
+ -57.00000000002732,
+ -57.00000000002706,
+ -57.000000000026795,
+ -57.00000000002654,
+ -57.00000000002628,
+ -57.000000000026034,
+ -57.000000000025786,
+ -57.00000000002554,
+ -57.000000000025295,
+ -57.000000000025054,
+ -57.00000000002481,
+ -57.00000000002457,
+ -57.000000000024336,
+ -57.0000000000241,
+ -57.00000000002387,
+ -57.00000000002364,
+ -57.00000000002341,
+ -57.000000000023185,
+ -57.000000000022965,
+ -57.000000000022744,
+ -57.000000000022524,
+ -57.00000000002231,
+ -57.0000000000221,
+ -57.000000000021885,
+ -57.00000000002167,
+ -57.000000000021465,
+ -57.00000000002126,
+ -57.00000000002105,
+ -57.000000000020854,
+ -57.000000000020655,
+ -57.00000000002046,
+ -57.00000000002026,
+ -57.000000000020066,
+ -57.000000000019874,
+ -57.00000000001968,
+ -57.00000000001949,
+ -57.000000000019305,
+ -57.00000000001912,
+ -57.000000000018936,
+ -57.00000000001875,
+ -57.000000000018574,
+ -57.000000000018396,
+ -57.00000000001822,
+ -57.00000000001804,
+ -57.00000000001787,
+ -57.0000000000177,
+ -57.00000000001753,
+ -57.00000000001736,
+ -57.000000000017195,
+ -57.00000000001703,
+ -57.00000000001687,
+ -57.000000000016705,
+ -57.00000000001654,
+ -57.000000000016385,
+ -57.00000000001623,
+ -57.00000000001607,
+ -57.000000000015916,
+ -57.00000000001577,
+ -57.00000000001562,
+ -57.00000000001547,
+ -57.00000000001532,
+ -57.00000000001517,
+ -57.00000000001503,
+ -57.000000000014886,
+ -57.000000000014744,
+ -57.0000000000146,
+ -57.00000000001446,
+ -57.00000000001432,
+ -57.00000000001418,
+ -57.00000000001405,
+ -57.00000000001391,
+ -57.00000000001378,
+ -57.00000000001364,
+ -57.000000000013515,
+ -57.00000000001339,
+ -57.00000000001326,
+ -57.00000000001313,
+ -57.000000000013,
+ -57.000000000012875,
+ -57.000000000012754,
+ -57.00000000001263,
+ -57.00000000001251,
+ -57.00000000001239,
+ -57.00000000001227,
+ -57.00000000001215,
+ -57.00000000001204,
+ -57.00000000001192,
+ -57.00000000001181,
+ -57.000000000011696,
+ -57.00000000001158,
+ -57.00000000001147,
+ -57.00000000001136,
+ -57.000000000011255,
+ -57.00000000001115,
+ -57.00000000001104,
+ -57.000000000010935,
+ -57.00000000001083,
+ -57.00000000001072,
+ -57.00000000001062,
+ -57.00000000001052,
+ -57.000000000010424,
+ -57.000000000010324,
+ -57.000000000010225,
+ -57.000000000010125,
+ -57.000000000010026,
+ -57.000000000009926,
+ -57.000000000009834,
+ -57.00000000000974,
+ -57.00000000000965,
+ -57.00000000000956,
+ -57.000000000009464,
+ -57.00000000000937,
+ -57.00000000000928,
+ -57.00000000000919,
+ -57.0000000000091,
+ -57.00000000000902,
+ -57.00000000000893,
+ -57.000000000008846,
+ -57.00000000000876,
+ -57.000000000008676,
+ -57.00000000000859,
+ -57.000000000008505,
+ -57.00000000000843,
+ -57.00000000000835,
+ -57.00000000000827,
+ -57.00000000000819,
+ -57.000000000008114,
+ -57.000000000008036,
+ -57.00000000000796,
+ -57.00000000000788,
+ -57.0000000000078,
+ -57.000000000007724,
+ -57.00000000000765,
+ -57.00000000000758,
+ -57.00000000000751,
+ -57.00000000000744,
+ -57.00000000000737,
+ -57.0000000000073,
+ -57.000000000007226,
+ -57.000000000007155,
+ -57.000000000007084,
+ -57.00000000000701,
+ -57.00000000000695,
+ -57.000000000006885,
+ -57.00000000000682,
+ -57.00000000000676,
+ -57.00000000000669,
+ -57.00000000000663,
+ -57.000000000006565,
+ -57.0000000000065,
+ -57.00000000000644,
+ -57.000000000006374,
+ -57.00000000000631,
+ -57.000000000006246,
+ -57.00000000000619,
+ -57.00000000000613,
+ -57.000000000006075,
+ -57.00000000000602,
+ -57.00000000000596,
+ -57.000000000005905,
+ -57.00000000000585,
+ -57.00000000000579,
+ -57.000000000005734,
+ -57.00000000000568,
+ -57.00000000000562,
+ -57.00000000000556,
+ -57.00000000000551,
+ -57.00000000000546,
+ -57.00000000000541,
+ -57.00000000000536,
+ -57.00000000000531,
+ -57.00000000000526,
+ -57.00000000000521,
+ -57.00000000000516,
+ -57.00000000000511,
+ -57.00000000000506,
+ -57.00000000000501,
+ -57.00000000000496,
+ -57.00000000000491,
+ -57.00000000000486,
+ -57.00000000000481,
+ -57.00000000000477,
+ -57.000000000004725,
+ -57.00000000000468,
+ -57.00000000000464,
+ -57.0000000000046,
+ -57.000000000004555,
+ -57.00000000000451,
+ -57.00000000000447,
+ -57.00000000000443,
+ -57.000000000004384,
+ -57.00000000000434,
+ -57.0000000000043,
+ -57.000000000004256,
+ -57.00000000000421,
+ -57.00000000000417,
+ -57.00000000000413,
+ -57.000000000004086,
+ -57.00000000000404,
+ -57.00000000000401,
+ -57.00000000000397,
+ -57.000000000003936,
+ -57.0000000000039,
+ -57.000000000003865,
+ -57.00000000000383,
+ -57.000000000003794,
+ -57.00000000000376,
+ -57.00000000000372,
+ -57.00000000000369,
+ -57.00000000000365,
+ -57.00000000000362,
+ -57.00000000000358,
+ -57.000000000003546,
+ -57.00000000000351,
+ -57.000000000003475,
+ -57.00000000000344,
+ -57.0000000000034,
+ -57.00000000000337,
+ -57.00000000000333,
+ -57.000000000003304,
+ -57.000000000003276,
+ -57.00000000000325,
+ -57.00000000000322,
+ -57.00000000000319,
+ -57.00000000000316,
+ -57.00000000000313,
+ -57.000000000003105,
+ -57.00000000000308,
+ -57.00000000000305,
+ -57.00000000000302,
+ -57.00000000000299,
+ -57.00000000000296,
+ -57.000000000002935,
+ -57.000000000002906,
+ -57.00000000000288,
+ -57.00000000000285,
+ -57.00000000000282,
+ -57.00000000000279,
+ -57.000000000002764,
+ -57.000000000002736,
+ -57.00000000000271,
+ -57.00000000000268,
+ -57.00000000000265,
+ -57.00000000000262,
+ -57.00000000000259,
+ -57.000000000002565,
+ -57.000000000002544,
+ -57.00000000000252,
+ -57.0000000000025,
+ -57.00000000000248,
+ -57.00000000000246,
+ -57.00000000000244,
+ -57.000000000002416,
+ -57.000000000002395,
+ -57.00000000000237,
+ -57.00000000000235,
+ -57.00000000000233,
+ -57.00000000000231,
+ -57.00000000000229,
+ -57.00000000000227,
+ -57.000000000002245,
+ -57.000000000002224,
+ -57.0000000000022,
+ -57.00000000000218,
+ -57.00000000000216,
+ -57.00000000000214,
+ -57.00000000000212,
+ -57.000000000002096,
+ -57.000000000002075,
+ -57.00000000000205,
+ -57.00000000000203,
+ -57.00000000000201,
+ -57.00000000000199,
+ -57.00000000000197,
+ -57.00000000000195,
+ -57.000000000001926,
+ -57.000000000001904,
+ -57.00000000000188,
+ -57.00000000000186,
+ -57.00000000000184,
+ -57.000000000001826,
+ -57.00000000000181,
+ -57.0000000000018,
+ -57.00000000000178,
+ -57.00000000000177,
+ -57.000000000001755,
+ -57.00000000000174,
+ -57.00000000000173,
+ -57.00000000000171,
+ -57.0000000000017,
+ -57.000000000001684,
+ -57.00000000000167,
+ -57.000000000001656,
+ -57.00000000000164,
+ -57.00000000000163,
+ -57.00000000000161,
+ -57.0000000000016,
+ -57.000000000001585,
+ -57.00000000000157,
+ -57.000000000001556,
+ -57.00000000000154,
+ -57.00000000000153,
+ -57.00000000000151,
+ -57.0000000000015,
+ -57.000000000001485,
+ -57.00000000000147,
+ -57.00000000000146,
+ -57.00000000000144,
+ -57.00000000000143,
+ -57.000000000001414,
+ -57.0000000000014,
+ -57.000000000001386,
+ -57.00000000000137,
+ -57.00000000000136,
+ -57.00000000000134,
+ -57.00000000000133,
+ -57.000000000001315,
+ -57.0000000000013,
+ -57.000000000001286,
+ -57.00000000000127,
+ -57.00000000000126,
+ -57.00000000000124,
+ -57.00000000000123,
+ -57.000000000001215,
+ -57.0000000000012,
+ -57.00000000000119,
+ -57.00000000000117,
+ -57.00000000000116,
+ -57.000000000001144,
+ -57.00000000000113,
+ -57.000000000001116,
+ -57.0000000000011,
+ -57.000000000001094,
+ -57.00000000000109,
+ -57.00000000000108,
+ -57.00000000000107,
+ -57.000000000001066,
+ -57.00000000000106,
+ -57.00000000000105,
+ -57.000000000001044,
+ -57.00000000000104,
+ -57.00000000000103,
+ -57.00000000000102,
+ -57.000000000001016,
+ -57.00000000000101,
+ -57.000000000001,
+ -57.000000000000995,
+ -57.00000000000099,
+ -57.00000000000098,
+ -57.00000000000097,
+ -57.000000000000966,
+ -57.00000000000096,
+ -57.00000000000095,
+ -57.000000000000945,
+ -57.00000000000094,
+ -57.00000000000093,
+ -57.000000000000924,
+ -57.00000000000092,
+ -57.00000000000091,
+ -57.0000000000009,
+ -57.000000000000895,
+ -57.00000000000089,
+ -57.00000000000088,
+ -57.000000000000874,
+ -57.00000000000087,
+ -57.00000000000086,
+ -57.00000000000085,
+ -57.000000000000846,
+ -57.00000000000084,
+ -57.00000000000083,
+ -57.000000000000824,
+ -57.00000000000082,
+ -57.00000000000081,
+ -57.0000000000008,
+ -57.000000000000796,
+ -57.00000000000079,
+ -57.00000000000078,
+ -57.000000000000774,
+ -57.00000000000077,
+ -57.00000000000076,
+ -57.00000000000075,
+ -57.000000000000746,
+ -57.00000000000074,
+ -57.00000000000073,
+ -57.000000000000725,
+ -57.00000000000072,
+ -57.00000000000071,
+ -57.0000000000007,
+ -57.000000000000696,
+ -57.00000000000069,
+ -57.00000000000068,
+ -57.000000000000675,
+ -57.00000000000067,
+ -57.00000000000066,
+ -57.000000000000654,
+ -57.00000000000065,
+ -57.00000000000064,
+ -57.00000000000063,
+ -57.000000000000625,
+ -57.00000000000062,
+ -57.00000000000061,
+ -57.000000000000604,
+ -57.0000000000006,
+ -57.00000000000059,
+ -57.00000000000058,
+ -57.000000000000576,
+ -57.00000000000057,
+ -57.00000000000056,
+ -57.000000000000554,
+ -57.00000000000055,
+ -57.00000000000054,
+ -57.00000000000053,
+ -57.000000000000526,
+ -57.00000000000052,
+ -57.00000000000051,
+ -57.000000000000504,
+ -57.0000000000005,
+ -57.00000000000049,
+ -57.00000000000048,
+ -57.000000000000476,
+ -57.00000000000047,
+ -57.00000000000046,
+ -57.000000000000455,
+ -57.00000000000045,
+ -57.00000000000044,
+ -57.00000000000043,
+ -57.000000000000426,
+ -57.00000000000042,
+ -57.00000000000041,
+ -57.000000000000405,
+ -57.0000000000004,
+ -57.00000000000039,
+ -57.000000000000384,
+ -57.00000000000038,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037
+ ]
+ },
+ "of0_hhpop_1_soma_v": {
+ "cell_1": [
+ -70.0,
+ -69.87527081398949,
+ -69.75173834873613,
+ -69.62939112223944,
+ -69.50821776266365,
+ -69.38820700728063,
+ -69.2693477014231,
+ -69.15162879744784,
+ -69.0350393537088,
+ -68.91956853354014,
+ -68.805205604249,
+ -68.69193993611786,
+ -68.57976100141663,
+ -68.46865837342409,
+ -68.35862172545872,
+ -68.24964082991887,
+ -68.14170555733222,
+ -68.03480587541415,
+ -67.92893184813535,
+ -67.82407363479824,
+ -67.72022148912238,
+ -67.61736575833848,
+ -67.51549688229127,
+ -67.41460539255094,
+ -67.31468191153297,
+ -67.2157171516266,
+ -67.11770191433152,
+ -67.02062708940294,
+ -66.92448365400477,
+ -66.82926267187104,
+ -66.73495529247519,
+ -66.64155275020755,
+ -66.54904636356056,
+ -66.45742753432182,
+ -66.36668774677494,
+ -66.27681856690802,
+ -66.18781164162972,
+ -66.09965869799292,
+ -66.01235154242568,
+ -65.92588205996972,
+ -65.8402422135262,
+ -65.75542404310859,
+ -65.67141966510292,
+ -65.58822127153493,
+ -65.50582112934441,
+ -65.4242115796664,
+ -65.3433850371193,
+ -65.26333398909989,
+ -65.18405099508502,
+ -65.10552868593999,
+ -65.02775976323366,
+ -64.95073699856012,
+ -64.87445323286671,
+ -64.79890137578877,
+ -64.72407440499043,
+ -64.64996536551203,
+ -64.57656736912364,
+ -64.50387359368483,
+ -64.43187728251051,
+ -64.36057174374301,
+ -64.28995034972999,
+ -64.22000653640855,
+ -64.15073380269494,
+ -64.08212570988049,
+ -64.01417588103298,
+ -63.94687800040407,
+ -63.880225812842156,
+ -63.81421312321105,
+ -63.74883379581409,
+ -63.684081753823925,
+ -63.6199509787176,
+ -63.55643550971721,
+ -63.493529443235865,
+ -63.431226932328926,
+ -63.36952218615059,
+ -63.30840946941562,
+ -63.24788310186629,
+ -63.18793745774439,
+ -63.12856696526835,
+ -63.06976610611535,
+ -63.01152941490842,
+ -62.95385147870844,
+ -62.89672693651099,
+ -62.840150478748114,
+ -62.78411684679479,
+ -62.72862083248013,
+ -62.67365727760335,
+ -62.619221073454256,
+ -62.56530716033848,
+ -62.511910527107126,
+ -62.45902621069106,
+ -62.406649295639546,
+ -62.35477491366343,
+ -62.30339824318259,
+ -62.25251450887784,
+ -62.202118981247004,
+ -62.1522069761654,
+ -62.10277385445041,
+ -62.0538150214303,
+ -62.005325926517166,
+ -61.957302062783945,
+ -61.90973896654553,
+ -61.86263221694389,
+ -61.81597743553712,
+ -61.769770285892534,
+ -61.724006473183564,
+ -61.67868174379059,
+ -61.63379188490557,
+ -61.589332724140455,
+ -61.54530012913941,
+ -61.50169000719471,
+ -61.45849830486632,
+ -61.41572100760514,
+ -61.3733541393799,
+ -61.33139376230754,
+ -61.28983597628726,
+ -61.24867691863795,
+ -61.20791276373922,
+ -61.1675397226758,
+ -61.12755404288534,
+ -61.08795200780968,
+ -61.04872993654936,
+ -61.00988418352149,
+ -60.97141113812094,
+ -60.93330722438471,
+ -60.89556890065957,
+ -60.85819265927286,
+ -60.82117502620648,
+ -60.78451256077398,
+ -60.748201855300756,
+ -60.71223953480731,
+ -60.67662225669557,
+ -60.6413467104382,
+ -60.606409617270884,
+ -60.571807729887595,
+ -60.53753783213875,
+ -60.503596738732284,
+ -60.469981294937575,
+ -60.436688376292246,
+ -60.403714888311725,
+ -60.371057766201645,
+ -60.33871397457297,
+ -60.306680507159854,
+ -60.274954386540244,
+ -60.243532663859106,
+ -60.21241241855436,
+ -60.181590758085406,
+ -60.151064817664285,
+ -60.120831759989386,
+ -60.09088877498175,
+ -60.06123307952386,
+ -60.03186191720097,
+ -60.00277255804491,
+ -59.97396229828032,
+ -59.94542846007336,
+ -59.91716839128281,
+ -59.88917946521355,
+ -59.86145908037244,
+ -59.8340046602265,
+ -59.80681365296341,
+ -59.779883531254384,
+ -59.7532117920192,
+ -59.72679595619358,
+ -59.700633568498745,
+ -59.67472219721324,
+ -59.64905943394688,
+ -59.62364289341691,
+ -59.59847021322628,
+ -59.5735390536441,
+ -59.54884709738815,
+ -59.52439204940949,
+ -59.50017163667916,
+ -59.476183607976886,
+ -59.45242573368184,
+ -59.428895805565425,
+ -59.405591636585996,
+ -59.3825110606856,
+ -59.35965193258865,
+ -59.3370121276025,
+ -59.31458954141999,
+ -59.292382089923855,
+ -59.270387708992985,
+ -59.2486043543106,
+ -59.22703000117423,
+ -59.205662644307495,
+ -59.18450029767378,
+ -59.16354099429158,
+ -59.142782786051704,
+ -59.122223743536196,
+ -59.101861955839006,
+ -59.081695530388366,
+ -59.0617225927709,
+ -59.041941286557375,
+ -59.02234977313017,
+ -59.0029462315124,
+ -58.983728858198596,
+ -58.96469586698716,
+ -58.94584548881427,
+ -58.9271759715895,
+ -58.90868558003293,
+ -58.89037259551389,
+ -58.87223531589119,
+ -58.85427205535494,
+ -58.836481144269825,
+ -58.81886092901994,
+ -58.80140977185509,
+ -58.784126050738564,
+ -58.76700815919635,
+ -58.75005450616785,
+ -58.73326351585798,
+ -58.716633627590696,
+ -58.70016329566395,
+ -58.683850989206015,
+ -58.66769519203319,
+ -58.65169440250889,
+ -58.635847133404035,
+ -58.62015191175887,
+ -58.604607278746016,
+ -58.58921178953489,
+ -58.57396401315743,
+ -58.558862532375045,
+ -58.54390594354693,
+ -58.52909285649959,
+ -58.514421894397614,
+ -58.49989169361571,
+ -58.485500903611964,
+ -58.47124818680231,
+ -58.457132218436215,
+ -58.4431516864735,
+ -58.429305291462455,
+ -58.41559174641902,
+ -58.40200977670717,
+ -58.38855811992044,
+ -58.375235525764595,
+ -58.362040755941415,
+ -58.34897258403359,
+ -58.33602979539074,
+ -58.32321118701652,
+ -58.31051556745678,
+ -58.29794175668886,
+ -58.285488586011866,
+ -58.27315489793809,
+ -58.26093954608539,
+ -58.24884139507064,
+ -58.23685932040423,
+ -58.224992208385494,
+ -58.21323895599925,
+ -58.201598470813245,
+ -58.190069670876625,
+ -58.17865148461937,
+ -58.1673428507527,
+ -58.15614271817043,
+ -58.14505004585124,
+ -58.134063802761986,
+ -58.12318296776179,
+ -58.11240652950719,
+ -58.10173348635809,
+ -58.09116284628471,
+ -58.08069362677532,
+ -58.07032485474498,
+ -58.060055566445044,
+ -58.04988480737361,
+ -58.0398116321868,
+ -58.02983510461088,
+ -58.019954297355255,
+ -58.01016829202625,
+ -58.00047617904178,
+ -57.9908770575468,
+ -57.98137003532954,
+ -57.97195422873863,
+ -57.962628762600936,
+ -57.953392770140205,
+ -57.94424539289652,
+ -57.935185780646506,
+ -57.9262130913243,
+ -57.91732649094329,
+ -57.908525153518575,
+ -57.899808260990234,
+ -57.89117500314725,
+ -57.88262457755221,
+ -57.874156189466746,
+ -57.86576905177765,
+ -57.8574623849237,
+ -57.84923541682323,
+ -57.84108738280233,
+ -57.833017525523815,
+ -57.82502509491681,
+ -57.817109348107024,
+ -57.80926954934772,
+ -57.80150496995132,
+ -57.79381488822167,
+ -57.786198589386984,
+ -57.77865536553338,
+ -57.7711845155391,
+ -57.76378534500932,
+ -57.75645716621164,
+ -57.749199298012144,
+ -57.742011065812086,
+ -57.7348918014852,
+ -57.727840843315576,
+ -57.7208575359362,
+ -57.71394123026798,
+ -57.70709128345946,
+ -57.70030705882707,
+ -57.693587925795924,
+ -57.68693325984121,
+ -57.68034244243017,
+ -57.67381486096457,
+ -57.66734990872381,
+ -57.660946984808476,
+ -57.65460549408453,
+ -57.648324847127974,
+ -57.642104460170074,
+ -57.635943755043094,
+ -57.629842159126554,
+ -57.62379910529402,
+ -57.61781403186037,
+ -57.61188638252961,
+ -57.60601560634316,
+ -57.60020115762864,
+ -57.59444249594913,
+ -57.588739086052996,
+ -57.58309039782407,
+ -57.57749590623244,
+ -57.571955091285616,
+ -57.56646743798019,
+ -57.561032436253974,
+ -57.55564958093863,
+ -57.55031837171266,
+ -57.545038313054945,
+ -57.539808914198645,
+ -57.53462968908563,
+ -57.52950015632126,
+ -57.52441983912969,
+ -57.51938826530951,
+ -57.514404967189854,
+ -57.50946948158698,
+ -57.504581349761175,
+ -57.49974011737411,
+ -57.494945334446655,
+ -57.49019655531702,
+ -57.48549333859934,
+ -57.48083524714264,
+ -57.47622184799024,
+ -57.47165271233945,
+ -57.46712741550178,
+ -57.46264553686341,
+ -57.458206659846155,
+ -57.45381037186868,
+ -57.44945626430819,
+ -57.44514393246246,
+ -57.440872975512185,
+ -57.43664299648375,
+ -57.43245360221231,
+ -57.42830440330529,
+ -57.42419501410614,
+ -57.42012505265851,
+ -57.416094140670765,
+ -57.412101903480796,
+ -57.40814797002122,
+ -57.404231972784864,
+ -57.400353547790644,
+ -57.39651233454969,
+ -57.39270797603188,
+ -57.388940118632625,
+ -57.38520841214002,
+ -57.381512509702276,
+ -57.37785206779551,
+ -57.37422674619177,
+ -57.370636207927475,
+ -57.367080119272025,
+ -57.363558149696836,
+ -57.36006997184459,
+ -57.35661526149882,
+ -57.35319369755376,
+ -57.34980496198454,
+ -57.34644873981755,
+ -57.34312471910126,
+ -57.33983259087714,
+ -57.33657204915099,
+ -57.333342790864485,
+ -57.330144515867026,
+ -57.3269769268878,
+ -57.323839729508194,
+ -57.320732632134394,
+ -57.31765534597031,
+ -57.31460758499071,
+ -57.31158906591466,
+ -57.30859950817917,
+ -57.30563863391314,
+ -57.302706167911495,
+ -57.29980183760965,
+ -57.29692537305815,
+ -57.29407650689758,
+ -57.291254974333725,
+ -57.288460513112945,
+ -57.28569286349781,
+ -57.28295176824295,
+ -57.28023697257117,
+ -57.27754822414972,
+ -57.274885273066886,
+ -57.27224787180874,
+ -57.26963577523614,
+ -57.26704874056195,
+ -57.26448652732845,
+ -57.26194889738503,
+ -57.25943561486602,
+ -57.25694644616876,
+ -57.25448115993192,
+ -57.25203952701397,
+ -57.249621320471896,
+ -57.247226315540104,
+ -57.24485428960951,
+ -57.242505022206885,
+ -57.24017829497432,
+ -57.237873891648974,
+ -57.23559159804293,
+ -57.23333120202333,
+ -57.23109249349262,
+ -57.228875264369044,
+ -57.2266793085673,
+ -57.224504421979375,
+ -57.22235040245559,
+ -57.22021704978579,
+ -57.21810416568076,
+ -57.216011553753766,
+ -57.213939019502334,
+ -57.211886370290145,
+ -57.20985341532914,
+ -57.20783996566179,
+ -57.205845834143524,
+ -57.20387083542534,
+ -57.20191478593658,
+ -57.19997750386786,
+ -57.19805880915418,
+ -57.19615852345818,
+ -57.19427647015357,
+ -57.1924124743087,
+ -57.19056636267033,
+ -57.1887379636475,
+ -57.186927107295574,
+ -57.18513362530047,
+ -57.18335735096302,
+ -57.181598119183434,
+ -57.17985576644599,
+ -57.17813013080383,
+ -57.1764210518639,
+ -57.174728370772044,
+ -57.17305193019825,
+ -57.171391574322,
+ -57.16974714881783,
+ -57.16811850084093,
+ -57.166505479013,
+ -57.16490793340811,
+ -57.163325715538825,
+ -57.16175867834238,
+ -57.160206676167014,
+ -57.15866956475842,
+ -57.157147201246346,
+ -57.155639444131324,
+ -57.154146153271505,
+ -57.15266718986964,
+ -57.15120241646018,
+ -57.149751696896494,
+ -57.14831489633822,
+ -57.14689188123872,
+ -57.14548251933269,
+ -57.14408667962383,
+ -57.14270423237272,
+ -57.14133504908472,
+ -57.139979002498016,
+ -57.138635966571854,
+ -57.13730581647476,
+ -57.13598842857296,
+ -57.1346836804189,
+ -57.13339145073986,
+ -57.13211161942666,
+ -57.13084406752253,
+ -57.12958867721204,
+ -57.12834533181013,
+ -57.12711391575129,
+ -57.12589431457881,
+ -57.12468641493413,
+ -57.12349010454634,
+ -57.122305272221695,
+ -57.12113180783331,
+ -57.119969602310924,
+ -57.11881854763075,
+ -57.11767853680545,
+ -57.11654946387417,
+ -57.11543122389271,
+ -57.11432371292376,
+ -57.11322682802725,
+ -57.11214046725076,
+ -57.111064529620066,
+ -57.109998915129744,
+ -57.10894352473388,
+ -57.10789826033687,
+ -57.10686302478427,
+ -57.10583772185381,
+ -57.10482225624642,
+ -57.103816533577394,
+ -57.10282046036758,
+ -57.101833944034745,
+ -57.10085689288492,
+ -57.09988921610391,
+ -57.098930823748844,
+ -57.0979816267398,
+ -57.097041536851556,
+ -57.09611046670535,
+ -57.09518832976079,
+ -57.09427504030781,
+ -57.09337051345867,
+ -57.09247466514013,
+ -57.09158741208555,
+ -57.09070867182722,
+ -57.089838362688674,
+ -57.08897640377708,
+ -57.08812271497575,
+ -57.08727721693668,
+ -57.08643983107316,
+ -57.08561047955249,
+ -57.084789085288755,
+ -57.083975571935625,
+ -57.08316986387929,
+ -57.08237188623143,
+ -57.081581564822216,
+ -57.080798826193465,
+ -57.0800235975918,
+ -57.079255806961854,
+ -57.07849538293963,
+ -57.07774225484581,
+ -57.07699635267923,
+ -57.07625760711035,
+ -57.07552594947481,
+ -57.07480131176707,
+ -57.07408362663405,
+ -57.073372827368914,
+ -57.072668847904836,
+ -57.071971622808874,
+ -57.07128108727589,
+ -57.070597177122515,
+ -57.069919828781195,
+ -57.06924897929428,
+ -57.06858456630817,
+ -57.06792652806752,
+ -57.06727480340949,
+ -57.06662933175808,
+ -57.0659900531185,
+ -57.06535690807156,
+ -57.064729837768176,
+ -57.06410878392391,
+ -57.06349368881353,
+ -57.06288449526564,
+ -57.0622811466574,
+ -57.06168358690921,
+ -57.06109176047956,
+ -57.060505612359826,
+ -57.05992508806916,
+ -57.05935013364943,
+ -57.058780695660225,
+ -57.05821672117386,
+ -57.057658157770454,
+ -57.057104953533106,
+ -57.056557057043,
+ -57.05601441737468,
+ -57.0554769840913,
+ -57.05494470723991,
+ -57.054417537346865,
+ -57.053895425413174,
+ -57.053378322909985,
+ -57.05286618177405,
+ -57.05235895440327,
+ -57.05185659365226,
+ -57.05135905282799,
+ -57.050866285685416,
+ -57.05037824642319,
+ -57.04989488967942,
+ -57.04941617052744,
+ -57.048942044471616,
+ -57.04847246744326,
+ -57.04800739579648,
+ -57.04754678630416,
+ -57.04709059615392,
+ -57.04663878294415,
+ -57.046191304680065,
+ -57.0457481197698,
+ -57.045309187020536,
+ -57.0448744656347,
+ -57.04444391520614,
+ -57.04401749571638,
+ -57.043595167530924,
+ -57.04317689139553,
+ -57.04276262843259,
+ -57.04235234013751,
+ -57.041945988375126,
+ -57.04154353537617,
+ -57.04114494373375,
+ -57.040750176399875,
+ -57.04035919668202,
+ -57.0399719682397,
+ -57.0395884550811,
+ -57.039208621559744,
+ -57.03883243237115,
+ -57.03845985254958,
+ -57.038090847464765,
+ -57.03772538281871,
+ -57.037363424642486,
+ -57.037004939293084,
+ -57.03664989345028,
+ -57.036298254113554,
+ -57.035949988599,
+ -57.035605064536306,
+ -57.03526344986573,
+ -57.03492511283514,
+ -57.03459002199704,
+ -57.03425814620567,
+ -57.033929454614096,
+ -57.03360391667134,
+ -57.03328150211956,
+ -57.032962180991206,
+ -57.03264592360627,
+ -57.0323327005695,
+ -57.03202248276769,
+ -57.031715241366946,
+ -57.03141094781004,
+ -57.031109573813715,
+ -57.030811091366104,
+ -57.03051547272409,
+ -57.03022269041074,
+ -57.02993271721274,
+ -57.02964552617789,
+ -57.029361090612575,
+ -57.02907938407931,
+ -57.02880038039424,
+ -57.02852405362475,
+ -57.02825037808703,
+ -57.0279793283437,
+ -57.027710879201436,
+ -57.027445005708636,
+ -57.02718168315309,
+ -57.026920887059696,
+ -57.026662593188185,
+ -57.02640677753085,
+ -57.02615341631034,
+ -57.02590248597744,
+ -57.02565396320885,
+ -57.02540782490509,
+ -57.025164048188266,
+ -57.02492261040002,
+ -57.02468348909937,
+ -57.024446662060654,
+ -57.02421210727146,
+ -57.02397980293057,
+ -57.02374972744594,
+ -57.023521859432684,
+ -57.02329617771111,
+ -57.023072661304724,
+ -57.02285128943829,
+ -57.022632041535914,
+ -57.02241489721911,
+ -57.02219983630491,
+ -57.02198683880399,
+ -57.02177588491884,
+ -57.02156695504187,
+ -57.02136002975363,
+ -57.02115508982099,
+ -57.020952116195346,
+ -57.02075109001087,
+ -57.020551992582725,
+ -57.02035480540536,
+ -57.020159510150776,
+ -57.01996608866682,
+ -57.019774522975496,
+ -57.01958479527131,
+ -57.019396887919584,
+ -57.01921078345487,
+ -57.019026464579255,
+ -57.018843914160826,
+ -57.018663115232016,
+ -57.01848405098807,
+ -57.01830670478546,
+ -57.01813106014035,
+ -57.01795710072705,
+ -57.01778481037653,
+ -57.01761417307487,
+ -57.0174451729618,
+ -57.01727779432924,
+ -57.017112021619795,
+ -57.01694783942536,
+ -57.01678523248566,
+ -57.016624185686815,
+ -57.01646468405998,
+ -57.01630671277993,
+ -57.01615025716366,
+ -57.015995302669054,
+ -57.01584183489352,
+ -57.01568983957266,
+ -57.01553930257892,
+ -57.01539020992032,
+ -57.0152425477391,
+ -57.01509630231047,
+ -57.01495146004132,
+ -57.014808007468964,
+ -57.014665931259884,
+ -57.01452521820849,
+ -57.01438585523589,
+ -57.014247829388694,
+ -57.014111127837765,
+ -57.01397573787708,
+ -57.01384164692252,
+ -57.0137088425107,
+ -57.01357731229782,
+ -57.0134470440585,
+ -57.01331802568468,
+ -57.01319024518446,
+ -57.01306369068099,
+ -57.012938350411375,
+ -57.012814212725594,
+ -57.01269126608539,
+ -57.01256949906322,
+ -57.01244890034116,
+ -57.01232945870991,
+ -57.01221116306769,
+ -57.01209400241925,
+ -57.01197796587484,
+ -57.011863042649175,
+ -57.011749222060466,
+ -57.0116364935294,
+ -57.011524846578176,
+ -57.01141427082951,
+ -57.01130475600571,
+ -57.01119629192766,
+ -57.01108886851393,
+ -57.01098247577981,
+ -57.0108771038364,
+ -57.01077274288966,
+ -57.010669383239524,
+ -57.01056701527901,
+ -57.01046562949329,
+ -57.010365216458844,
+ -57.01026576684256,
+ -57.01016727140086,
+ -57.010069720978876,
+ -57.00997310650956,
+ -57.009877419012874,
+ -57.009782649594925,
+ -57.009688789447154,
+ -57.00959582984552,
+ -57.0095037621497,
+ -57.00941257780224,
+ -57.009322268327814,
+ -57.009232825332404,
+ -57.009144240502536,
+ -57.00905650560449,
+ -57.008969612483554,
+ -57.00888355306326,
+ -57.008798319344606,
+ -57.008713903405365,
+ -57.00863029739931,
+ -57.00854749355549,
+ -57.00846548417752,
+ -57.00838426164285,
+ -57.008303818402084,
+ -57.00822414697823,
+ -57.008145239966055,
+ -57.008067090031375,
+ -57.00798968991037,
+ -57.00791303240891,
+ -57.00783711040189,
+ -57.00776191683257,
+ -57.00768744471193,
+ -57.007613687117974,
+ -57.00754063719515,
+ -57.00746828815366,
+ -57.00739663326887,
+ -57.00732566588065,
+ -57.00725537939278,
+ -57.00718576727233,
+ -57.007116823049046,
+ -57.00704854031475,
+ -57.006980912722746,
+ -57.00691393398724,
+ -57.006847597882754,
+ -57.00678189824352,
+ -57.00671682896294,
+ -57.00665238399301,
+ -57.00658855734374,
+ -57.00652534308263,
+ -57.00646273533408,
+ -57.006400728278884,
+ -57.00633931615364,
+ -57.00627849325028,
+ -57.00621825391547,
+ -57.00615859255014,
+ -57.00609950360893,
+ -57.00604098159968,
+ -57.00598302108294,
+ -57.00592561667143,
+ -57.00586876302958,
+ -57.005812454873,
+ -57.005756686968,
+ -57.005701454131106,
+ -57.00564675122858,
+ -57.00559257317594,
+ -57.00553891493748,
+ -57.00548577152583,
+ -57.005433138001436,
+ -57.005381009472174,
+ -57.005329381092835,
+ -57.005278248064705,
+ -57.00522760563511,
+ -57.00517744909698,
+ -57.00512777378841,
+ -57.005078575092206,
+ -57.005029848435484,
+ -57.004981589289244,
+ -57.00493379316793,
+ -57.00488645562902,
+ -57.00483957227263,
+ -57.00479313874108,
+ -57.004747150718494,
+ -57.00470160393042,
+ -57.004656494143404,
+ -57.00461181716462,
+ -57.00456756884147,
+ -57.00452374506119,
+ -57.00448034175049,
+ -57.00443735487514,
+ -57.004394780439625,
+ -57.004352614486784,
+ -57.0043108530974,
+ -57.004269492389874,
+ -57.00422852851984,
+ -57.00418795767982,
+ -57.00414777609886,
+ -57.0041079800422,
+ -57.004068565810904,
+ -57.00402952974153,
+ -57.00399086820578,
+ -57.003952577610185,
+ -57.00391465439573,
+ -57.00387709503755,
+ -57.00383989604462,
+ -57.00380305395939,
+ -57.00376656535749,
+ -57.003730426847405,
+ -57.00369463507016,
+ -57.00365918669902,
+ -57.00362407843914,
+ -57.00358930702731,
+ -57.00355486923163,
+ -57.00352076185119,
+ -57.00348698171582,
+ -57.003453525685735,
+ -57.0034203906513,
+ -57.0033875735327,
+ -57.00335507127968,
+ -57.00332288087124,
+ -57.00329099931537,
+ -57.00325942364877,
+ -57.00322815093657,
+ -57.00319717827206,
+ -57.003166502776416,
+ -57.00313612159843,
+ -57.003106031914264,
+ -57.00307623092716,
+ -57.00304671586719,
+ -57.00301748399103,
+ -57.00298853258165,
+ -57.00295985894809,
+ -57.002931460425216,
+ -57.00290333437347,
+ -57.002875478178616,
+ -57.00284788925149,
+ -57.00282056502778,
+ -57.00279350296778,
+ -57.002766700556144,
+ -57.00274015530166,
+ -57.00271386473702,
+ -57.00268782641859,
+ -57.00266203792618,
+ -57.00263649686282,
+ -57.00261120085454,
+ -57.00258614755015,
+ -57.00256133462101,
+ -57.00253675976082,
+ -57.002512420685434,
+ -57.00248831513259,
+ -57.00246444086174,
+ -57.00244079565385,
+ -57.00241737731115,
+ -57.00239418365697,
+ -57.00237121253553,
+ -57.00234846181173,
+ -57.00232592937095,
+ -57.002303613118855,
+ -57.00228151098123,
+ -57.00225962090372,
+ -57.00223794085172,
+ -57.002216468810126,
+ -57.00219520278316,
+ -57.00217414079422,
+ -57.002153280885636,
+ -57.00213262111855,
+ -57.00211215957269,
+ -57.00209189434621,
+ -57.00207182355551,
+ -57.002051945335076,
+ -57.00203225783728,
+ -57.002012759232215,
+ -57.00199344770755,
+ -57.001974321468325,
+ -57.00195537873681,
+ -57.001936617752335,
+ -57.001918036771116,
+ -57.0018996340661,
+ -57.00188140792681,
+ -57.00186335665917,
+ -57.00184547858537,
+ -57.0018277720437,
+ -57.00181023538837,
+ -57.00179286698941,
+ -57.00177566523247,
+ -57.001758628518694,
+ -57.00174175526457,
+ -57.00172504390177,
+ -57.00170849287703,
+ -57.001692100651965,
+ -57.00167586570297,
+ -57.001659786521046,
+ -57.00164386161168,
+ -57.0016280894947,
+ -57.00161246870413,
+ -57.001596997788056,
+ -57.00158167530851,
+ -57.001566499841296,
+ -57.0015514699759,
+ -57.001536584315346,
+ -57.00152184147605,
+ -57.0015072400877,
+ -57.001492778793136,
+ -57.00147845624823,
+ -57.00146427112174,
+ -57.001450222095194,
+ -57.001436307862775,
+ -57.00142252713119,
+ -57.001408878619564,
+ -57.0013953610593,
+ -57.001381973193986,
+ -57.00136871377925,
+ -57.001355581582665,
+ -57.00134257538364,
+ -57.001329693973275,
+ -57.00131693615428,
+ -57.001304300740856,
+ -57.00129178655857,
+ -57.00127939244426,
+ -57.00126711724594,
+ -57.00125495982265,
+ -57.00124291904441,
+ -57.00123099379205,
+ -57.00121918295715,
+ -57.00120748544193,
+ -57.00119590015914,
+ -57.001184426031955,
+ -57.00117306199389,
+ -57.001161806988684,
+ -57.00115065997022,
+ -57.00113961990242,
+ -57.00112868575913,
+ -57.00111785652405,
+ -57.001107131190636,
+ -57.001096508762004,
+ -57.00108598825082,
+ -57.00107556867924,
+ -57.00106524907879,
+ -57.00105502849029,
+ -57.00104490596377,
+ -57.00103488055836,
+ -57.00102495134223,
+ -57.00101511739249,
+ -57.0010053777951,
+ -57.00099573164479,
+ -57.00098617804498,
+ -57.00097671610769,
+ -57.00096734495345,
+ -57.00095806371125,
+ -57.00094887151842,
+ -57.00093976752056,
+ -57.0009307508715,
+ -57.00092182073315,
+ -57.00091297627548,
+ -57.000904216676425,
+ -57.00089554112181,
+ -57.00088694880525,
+ -57.00087843892813,
+ -57.00087001069948,
+ -57.00086166333591,
+ -57.000853396061565,
+ -57.00084520810802,
+ -57.00083709871422,
+ -57.00082906712643,
+ -57.00082111259814,
+ -57.00081323438999,
+ -57.00080543176972,
+ -57.0007977040121,
+ -57.00079005039886,
+ -57.00078247021862,
+ -57.00077496276681,
+ -57.00076752734565,
+ -57.00076016326403,
+ -57.000752869837484,
+ -57.0007456463881,
+ -57.00073849224448,
+ -57.00073140674167,
+ -57.00072438922109,
+ -57.00071743903048,
+ -57.000710555523845,
+ -57.000703738061375,
+ -57.00069698600941,
+ -57.00069029874036,
+ -57.000683675632665,
+ -57.00067711607073,
+ -57.00067061944486,
+ -57.00066418515121,
+ -57.000657812591726,
+ -57.000651501174104,
+ -57.00064525031171,
+ -57.00063905942355,
+ -57.000632927934184,
+ -57.00062685527372,
+ -57.00062084087772,
+ -57.00061488418716,
+ -57.00060898464837,
+ -57.00060314171303,
+ -57.000597354838035,
+ -57.00059162348552,
+ -57.000585947122765,
+ -57.000580325222174,
+ -57.000574757261205,
+ -57.000569242722335,
+ -57.000563781093,
+ -57.00055837186555,
+ -57.000553014537225,
+ -57.000547708610064,
+ -57.0005424535909,
+ -57.0005372489913,
+ -57.000532094327504,
+ -57.0005269891204,
+ -57.00052193289548,
+ -57.00051692518277,
+ -57.00051196551683,
+ -57.000507053436664,
+ -57.00050218848571,
+ -57.00049737021178,
+ -57.00049259816704,
+ -57.000487871907936,
+ -57.00048319099517,
+ -57.00047855499367,
+ -57.00047396347253,
+ -57.00046941600498,
+ -57.000464912168354,
+ -57.00046045154402,
+ -57.000456033717384,
+ -57.00045165827782,
+ -57.00044732481864,
+ -57.000443032937056,
+ -57.00043878223416,
+ -57.000434572314866,
+ -57.000430402787856,
+ -57.000426273265596,
+ -57.00042218336426,
+ -57.00041813270369,
+ -57.0004141209074,
+ -57.0004101476025,
+ -57.00040621241968,
+ -57.00040231499319,
+ -57.00039845496076,
+ -57.00039463196361,
+ -57.00039084564641,
+ -57.00038709565723,
+ -57.000383381647524,
+ -57.000379703272074,
+ -57.00037606018899,
+ -57.000372452059665,
+ -57.00036887854873,
+ -57.00036533932403,
+ -57.000361834056605,
+ -57.000358362420656,
+ -57.0003549240935,
+ -57.00035151875556,
+ -57.00034814609031,
+ -57.00034480578427,
+ -57.00034149752698,
+ -57.000338221010935,
+ -57.0003349759316,
+ -57.00033176198735,
+ -57.000328578879454,
+ -57.00032542631206,
+ -57.000322303992135,
+ -57.000319211629474,
+ -57.00031614893665,
+ -57.00031311562899,
+ -57.00031011142457,
+ -57.00030713604414,
+ -57.00030418921116,
+ -57.00030127065172,
+ -57.000298380094556,
+ -57.00029551727099,
+ -57.00029268191494,
+ -57.00028987376287,
+ -57.000287092553755,
+ -57.0002843380291,
+ -57.00028160993287,
+ -57.00027890801151,
+ -57.000276232013874,
+ -57.00027358169124,
+ -57.000270956797266,
+ -57.000268357087975,
+ -57.00026578232173,
+ -57.00026323225922,
+ -57.00026070666342,
+ -57.00025820529958,
+ -57.000255727935205,
+ -57.00025327434003,
+ -57.000250844286015,
+ -57.00024843754728,
+ -57.00024605390012,
+ -57.00024369312299,
+ -57.00024135499646,
+ -57.00023903930321,
+ -57.000236745828005,
+ -57.00023447435766,
+ -57.00023222468106,
+ -57.000229996589105,
+ -57.00022778987469,
+ -57.00022560433272,
+ -57.00022343976004,
+ -57.00022129595547,
+ -57.000219172719746,
+ -57.00021706985552,
+ -57.00021498716734,
+ -57.000212924461614,
+ -57.00021088154663,
+ -57.000208858232504,
+ -57.00020685433117,
+ -57.00020486965637,
+ -57.000202904023645,
+ -57.000200957250286,
+ -57.00019902915534,
+ -57.00019711955961,
+ -57.00019522828559,
+ -57.0001933551575,
+ -57.000191500001236,
+ -57.00018966264437,
+ -57.00018784291612,
+ -57.00018604064735,
+ -57.00018425567054,
+ -57.000182487819785,
+ -57.000180736930766,
+ -57.000179002840746,
+ -57.000177285388546,
+ -57.00017558441453,
+ -57.0001738997606,
+ -57.00017223127017,
+ -57.00017057878816,
+ -57.000168942160975,
+ -57.000167321236496,
+ -57.000165715864064,
+ -57.000164125894464,
+ -57.00016255117991,
+ -57.00016099157404,
+ -57.00015944693189,
+ -57.00015791710989,
+ -57.000156401965846,
+ -57.00015490135893,
+ -57.00015341514967,
+ -57.00015194319992,
+ -57.00015048537287,
+ -57.00014904153302,
+ -57.00014761154617,
+ -57.0001461952794,
+ -57.00014479260108,
+ -57.000143403380825,
+ -57.000142027489524,
+ -57.00014066479928,
+ -57.00013931518344,
+ -57.00013797851656,
+ -57.00013665467441,
+ -57.00013534353392,
+ -57.000134044973244,
+ -57.00013275887167,
+ -57.00013148510967,
+ -57.000130223568846,
+ -57.00012897413194,
+ -57.00012773668283,
+ -57.00012651110649,
+ -57.000125297289,
+ -57.00012409511755,
+ -57.00012290448039,
+ -57.00012172526687,
+ -57.000120557367374,
+ -57.00011940067335,
+ -57.00011825507729,
+ -57.00011712047271,
+ -57.000115996754154,
+ -57.000114883817176,
+ -57.000113781558326,
+ -57.00011268987516,
+ -57.0001116086662,
+ -57.00011053783096,
+ -57.00010947726991,
+ -57.000108426884466,
+ -57.000107386577,
+ -57.00010635625082,
+ -57.000105335810154,
+ -57.000104325160166,
+ -57.00010332420691,
+ -57.00010233285735,
+ -57.00010135101935,
+ -57.00010037860165,
+ -57.00009941551386,
+ -57.00009846166647,
+ -57.00009751697081,
+ -57.000096581339086,
+ -57.00009565468433,
+ -57.00009473692041,
+ -57.000093827962026,
+ -57.000092927724694,
+ -57.000092036124734,
+ -57.000091153079275,
+ -57.00009027850624,
+ -57.00008941232435,
+ -57.000088554453086,
+ -57.000087704812714,
+ -57.00008686332426,
+ -57.00008602990952,
+ -57.000085204491015,
+ -57.00008438699203,
+ -57.00008357733658,
+ -57.000082775449414,
+ -57.000081981255995,
+ -57.00008119468251,
+ -57.000080415655844,
+ -57.00007964410359,
+ -57.00007887995404,
+ -57.000078123136156,
+ -57.0000773735796,
+ -57.00007663121471,
+ -57.00007589597248,
+ -57.000075167784566,
+ -57.00007444658329,
+ -57.00007373230162,
+ -57.00007302487317,
+ -57.00007232423217,
+ -57.000071630313506,
+ -57.000070943052684,
+ -57.00007026238582,
+ -57.00006958824965,
+ -57.00006892058152,
+ -57.00006825931936,
+ -57.00006760440172,
+ -57.00006695576772,
+ -57.000066313357074,
+ -57.00006567711007,
+ -57.00006504696757,
+ -57.000064422871006,
+ -57.00006380476237,
+ -57.00006319258421,
+ -57.000062586279626,
+ -57.000061985792264,
+ -57.00006139106631,
+ -57.000060802046484,
+ -57.00006021867804,
+ -57.000059640906755,
+ -57.00005906867893,
+ -57.000058501941375,
+ -57.00005794064141,
+ -57.00005738472687,
+ -57.00005683414608,
+ -57.000056288847865,
+ -57.00005574878154,
+ -57.000055213896914,
+ -57.00005468414427,
+ -57.00005415947436,
+ -57.00005363983843,
+ -57.00005312518817,
+ -57.000052615475745,
+ -57.00005211065378,
+ -57.000051610675364,
+ -57.00005111549402,
+ -57.000050625063714,
+ -57.00005013933887,
+ -57.000049658274335,
+ -57.0000491818254,
+ -57.000048709947784,
+ -57.00004824259762,
+ -57.000047779731474,
+ -57.00004732130632,
+ -57.00004686727955,
+ -57.000046417608964,
+ -57.000045972252764,
+ -57.00004553116956,
+ -57.00004509431835,
+ -57.000044661658535,
+ -57.00004423314989,
+ -57.0000438087526,
+ -57.000043388427216,
+ -57.00004297213466,
+ -57.000042559836245,
+ -57.00004215149365,
+ -57.00004174706892,
+ -57.00004134652446,
+ -57.00004094982305,
+ -57.000040556927814,
+ -57.00004016780223,
+ -57.000039782410134,
+ -57.0000394007157,
+ -57.00003902268345,
+ -57.000038648278256,
+ -57.00003827746531,
+ -57.000037910210146,
+ -57.00003754647864,
+ -57.000037186236966,
+ -57.00003682945165,
+ -57.000036476089534,
+ -57.00003612611777,
+ -57.000035779503825,
+ -57.00003543621549,
+ -57.00003509622085,
+ -57.00003475948831,
+ -57.00003442598656,
+ -57.00003409568462,
+ -57.00003376855177,
+ -57.00003344455762,
+ -57.00003312367205,
+ -57.000032805865224,
+ -57.00003249110762,
+ -57.000032179369974,
+ -57.00003187062331,
+ -57.000031564838935,
+ -57.00003126198842,
+ -57.000030962043624,
+ -57.00003066497666,
+ -57.00003037075992,
+ -57.00003007936606,
+ -57.000029790768,
+ -57.0000295049389,
+ -57.00002922185221,
+ -57.00002894148161,
+ -57.00002866380104,
+ -57.000028388784685,
+ -57.000028116406995,
+ -57.000027846642645,
+ -57.00002757946656,
+ -57.00002731485392,
+ -57.00002705278011,
+ -57.00002679322078,
+ -57.000026536151815,
+ -57.0000262815493,
+ -57.000026029389595,
+ -57.00002577964924,
+ -57.00002553230504,
+ -57.00002528733399,
+ -57.00002504471333,
+ -57.00002480442051,
+ -57.00002456643319,
+ -57.000024330729254,
+ -57.00002409728679,
+ -57.0000238660841,
+ -57.000023637099694,
+ -57.000023410312295,
+ -57.00002318570082,
+ -57.00002296324439,
+ -57.00002274292233,
+ -57.00002252471416,
+ -57.000022308599604,
+ -57.00002209455857,
+ -57.00002188257116,
+ -57.00002167261768,
+ -57.0000214646786,
+ -57.00002125873461,
+ -57.00002105476656,
+ -57.0000208527555,
+ -57.000020652682636,
+ -57.000020454529384,
+ -57.000020258277324,
+ -57.00002006390822,
+ -57.00001987140399,
+ -57.00001968074676,
+ -57.0000194919188,
+ -57.00001930490256,
+ -57.00001911968065,
+ -57.00001893623587,
+ -57.00001875455116,
+ -57.000018574609626,
+ -57.00001839639455,
+ -57.00001821988938,
+ -57.00001804507769,
+ -57.000017871943236,
+ -57.00001770046993,
+ -57.00001753064184,
+ -57.000017362443174,
+ -57.0000171958583,
+ -57.00001703087173,
+ -57.00001686746813,
+ -57.00001670563232,
+ -57.00001654534925,
+ -57.000016386604024,
+ -57.000016229381885,
+ -57.00001607366822,
+ -57.000015919448565,
+ -57.00001576670858,
+ -57.00001561543406,
+ -57.00001546561095,
+ -57.000015317225326,
+ -57.0000151702634,
+ -57.00001502471151,
+ -57.00001488055612,
+ -57.00001473778384,
+ -57.0000145963814,
+ -57.00001445633565,
+ -57.00001431763357,
+ -57.00001418026228,
+ -57.00001404420901,
+ -57.0000139094611,
+ -57.00001377600604,
+ -57.00001364383142,
+ -57.000013512924966,
+ -57.00001338327449,
+ -57.00001325486796,
+ -57.00001312769343,
+ -57.000013001739084,
+ -57.00001287699321,
+ -57.00001275344422,
+ -57.00001263108062,
+ -57.00001250989105,
+ -57.00001238986424,
+ -57.00001227098903,
+ -57.00001215325438,
+ -57.00001203664934,
+ -57.00001192116307,
+ -57.00001180678484,
+ -57.00001169350402,
+ -57.000011581310076,
+ -57.00001147019258,
+ -57.000011360141215,
+ -57.00001125114574,
+ -57.00001114319603,
+ -57.000011036282054,
+ -57.00001093039386,
+ -57.00001082552162,
+ -57.000010721655585,
+ -57.00001061878609,
+ -57.000010516903586,
+ -57.0000104159986,
+ -57.000010316061754,
+ -57.000010217083755,
+ -57.0000101190554,
+ -57.00001002196759,
+ -57.00000992581129,
+ -57.00000983057757,
+ -57.000009736257574,
+ -57.000009642842535,
+ -57.000009550323774,
+ -57.00000945869269,
+ -57.00000936794076,
+ -57.00000927805956,
+ -57.000009189040725,
+ -57.000009100875985,
+ -57.00000901355715,
+ -57.000008927076095,
+ -57.000008841424794,
+ -57.00000875659528,
+ -57.00000867257966,
+ -57.00000858937014,
+ -57.00000850695898,
+ -57.000008425338514,
+ -57.00000834450116,
+ -57.0000082644394,
+ -57.0000081851458,
+ -57.00000810661299,
+ -57.00000802883366,
+ -57.00000795180059,
+ -57.00000787550662,
+ -57.000007799944655,
+ -57.00000772510767,
+ -57.00000765098872,
+ -57.0000075775809,
+ -57.0000075048774,
+ -57.00000743287146,
+ -57.000007361556385,
+ -57.000007290925545,
+ -57.00000722097238,
+ -57.000007151690376,
+ -57.00000708307311,
+ -57.000007015114186,
+ -57.0000069478073,
+ -57.0000068811462,
+ -57.00000681512468,
+ -57.000006749736606,
+ -57.0000066849759,
+ -57.000006620836544,
+ -57.00000655731258,
+ -57.0000064943981,
+ -57.000006432087254,
+ -57.00000637037425,
+ -57.00000630925336,
+ -57.0000062487189,
+ -57.000006188765234,
+ -57.0000061293868,
+ -57.000006070578074,
+ -57.00000601233359,
+ -57.00000595464794,
+ -57.000005897515756,
+ -57.00000584093173,
+ -57.0000057848906,
+ -57.00000572938716,
+ -57.00000567441626,
+ -57.00000561997277,
+ -57.00000556605164,
+ -57.00000551264787,
+ -57.00000545975647,
+ -57.00000540737255,
+ -57.000005355491226,
+ -57.00000530410768,
+ -57.00000525321714,
+ -57.00000520281487,
+ -57.000005152896186,
+ -57.00000510345645,
+ -57.00000505449107,
+ -57.00000500599549,
+ -57.0000049579652,
+ -57.000004910395745,
+ -57.0000048632827,
+ -57.000004816621676,
+ -57.000004770408346,
+ -57.00000472463841,
+ -57.000004679307615,
+ -57.00000463441175,
+ -57.00000458994664,
+ -57.000004545908155,
+ -57.0000045022922,
+ -57.00000445909472,
+ -57.0000044163117,
+ -57.00000437393916,
+ -57.00000433197317,
+ -57.00000429040983,
+ -57.000004249245265,
+ -57.00000420847566,
+ -57.00000416809722,
+ -57.00000412810619,
+ -57.000004088498855,
+ -57.00000404927154,
+ -57.00000401042059,
+ -57.0000039719424,
+ -57.00000393383339,
+ -57.00000389609002,
+ -57.00000385870878,
+ -57.00000382168619,
+ -57.00000378501882,
+ -57.00000374870326,
+ -57.000003712736124,
+ -57.00000367711408,
+ -57.000003641833814,
+ -57.00000360689205,
+ -57.000003572285536,
+ -57.00000353801105,
+ -57.00000350406542,
+ -57.00000347044548,
+ -57.0000034371481,
+ -57.0000034041702,
+ -57.00000337150871,
+ -57.00000333916059,
+ -57.00000330712284,
+ -57.00000327539247,
+ -57.000003243966546,
+ -57.00000321284214,
+ -57.00000318201636,
+ -57.00000315148633,
+ -57.00000312124923,
+ -57.00000309130224,
+ -57.00000306164258,
+ -57.000003032267486,
+ -57.000003003174236,
+ -57.00000297436012,
+ -57.000002945822466,
+ -57.00000291755862,
+ -57.00000288956595,
+ -57.00000286184186,
+ -57.000002834383764,
+ -57.00000280718912,
+ -57.00000278025539,
+ -57.000002753580084,
+ -57.00000272716071,
+ -57.00000270099483,
+ -57.00000267507999,
+ -57.000002649413794,
+ -57.00000262399385,
+ -57.0000025988178,
+ -57.00000257388331,
+ -57.000002549188046,
+ -57.00000252472973,
+ -57.00000250050608,
+ -57.00000247651484,
+ -57.00000245275378,
+ -57.00000242922071,
+ -57.00000240591342,
+ -57.000002382829756,
+ -57.00000235996757,
+ -57.00000233732474,
+ -57.00000231489915,
+ -57.00000229268873,
+ -57.000002270691404,
+ -57.00000224890513,
+ -57.0000022273279,
+ -57.000002205957685,
+ -57.00000218479251,
+ -57.0000021638304,
+ -57.000002143069416,
+ -57.000002122507624,
+ -57.000002102143114,
+ -57.00000208197399,
+ -57.00000206199838,
+ -57.000002042214426,
+ -57.00000202262029,
+ -57.000002003214156,
+ -57.00000198399421,
+ -57.00000196495867,
+ -57.00000194610577,
+ -57.00000192743376,
+ -57.000001908940895,
+ -57.00000189062546,
+ -57.000001872485754,
+ -57.00000185452009,
+ -57.0000018367268,
+ -57.00000181910423,
+ -57.00000180165073,
+ -57.0000017843647,
+ -57.00000176724452,
+ -57.0000017502886,
+ -57.00000173349536,
+ -57.000001716863245,
+ -57.00000170039071,
+ -57.000001684076224,
+ -57.00000166791827,
+ -57.00000165191534,
+ -57.00000163606595,
+ -57.00000162036863,
+ -57.00000160482192,
+ -57.00000158942437,
+ -57.000001574174554,
+ -57.00000155907105,
+ -57.000001544112465,
+ -57.00000152929739,
+ -57.000001514624465,
+ -57.000001500092324,
+ -57.000001485699606,
+ -57.00000147144498,
+ -57.00000145732712,
+ -57.00000144334472,
+ -57.00000142949647,
+ -57.00000141578109,
+ -57.000001402197306,
+ -57.00000138874385,
+ -57.00000137541947,
+ -57.00000136222294,
+ -57.00000134915302,
+ -57.0000013362085,
+ -57.000001323388176,
+ -57.000001310690855,
+ -57.000001298115365,
+ -57.00000128566053,
+ -57.000001273325196,
+ -57.00000126110821,
+ -57.00000124900844,
+ -57.00000123702476,
+ -57.00000122515606,
+ -57.00000121340124,
+ -57.0000012017592,
+ -57.00000119022886,
+ -57.00000117880914,
+ -57.00000116749899,
+ -57.000001156297365,
+ -57.00000114520321,
+ -57.000001134215495,
+ -57.000001123333206,
+ -57.000001112555324,
+ -57.000001101880855,
+ -57.0000010913088,
+ -57.00000108083818,
+ -57.000001070468024,
+ -57.00000106019736,
+ -57.00000105002524,
+ -57.00000103995072,
+ -57.00000102997286,
+ -57.00000102009073,
+ -57.000001010303414,
+ -57.000001000610006,
+ -57.0000009910096,
+ -57.00000098150131,
+ -57.000000972084244,
+ -57.00000096275753,
+ -57.000000953520306,
+ -57.000000944371706,
+ -57.00000093531088,
+ -57.00000092633699,
+ -57.0000009174492,
+ -57.00000090864668,
+ -57.00000089992862,
+ -57.000000891294206,
+ -57.00000088274264,
+ -57.00000087427312,
+ -57.00000086588486,
+ -57.00000085757708,
+ -57.00000084934901,
+ -57.000000841199885,
+ -57.00000083312895,
+ -57.00000082513545,
+ -57.00000081721865,
+ -57.0000008093778,
+ -57.00000080161218,
+ -57.00000079392107,
+ -57.00000078630375,
+ -57.00000077875952,
+ -57.000000771287674,
+ -57.00000076388751,
+ -57.00000075655836,
+ -57.00000074929952,
+ -57.00000074211032,
+ -57.00000073499011,
+ -57.00000072793821,
+ -57.00000072095396,
+ -57.00000071403673,
+ -57.00000070718587,
+ -57.00000070040074,
+ -57.00000069368071,
+ -57.00000068702516,
+ -57.00000068043346,
+ -57.00000067390501,
+ -57.00000066743919,
+ -57.00000066103541,
+ -57.00000065469307,
+ -57.00000064841158,
+ -57.00000064219036,
+ -57.00000063602883,
+ -57.00000062992642,
+ -57.000000623882556,
+ -57.00000061789668,
+ -57.00000061196824,
+ -57.00000060609668,
+ -57.00000060028145,
+ -57.00000059452202,
+ -57.00000058881785,
+ -57.0000005831684,
+ -57.00000057757316,
+ -57.0000005720316,
+ -57.000000566543214,
+ -57.000000561107484,
+ -57.00000055572391,
+ -57.00000055039199,
+ -57.00000054511122,
+ -57.00000053988112,
+ -57.0000005347012,
+ -57.00000052957098,
+ -57.000000524489984,
+ -57.000000519457735,
+ -57.00000051447377,
+ -57.00000050953762,
+ -57.00000050464884,
+ -57.00000049980696,
+ -57.000000495011534,
+ -57.00000049026212,
+ -57.000000485558274,
+ -57.00000048089956,
+ -57.00000047628554,
+ -57.00000047171579,
+ -57.00000046718989,
+ -57.00000046270741,
+ -57.00000045826794,
+ -57.00000045387107,
+ -57.00000044951638,
+ -57.00000044520347,
+ -57.00000044093194,
+ -57.0000004367014,
+ -57.00000043251144,
+ -57.00000042836169,
+ -57.00000042425175,
+ -57.000000420181244,
+ -57.000000416149796,
+ -57.00000041215702,
+ -57.00000040820256,
+ -57.00000040428604,
+ -57.000000400407096,
+ -57.00000039656537,
+ -57.000000392760505,
+ -57.00000038899214,
+ -57.00000038525994,
+ -57.00000038156354,
+ -57.00000037790261,
+ -57.0000003742768,
+ -57.00000037068578,
+ -57.00000036712922,
+ -57.00000036360678,
+ -57.000000360118136,
+ -57.000000356662966,
+ -57.00000035324094,
+ -57.00000034985175,
+ -57.000000346495085,
+ -57.00000034317062,
+ -57.00000033987805,
+ -57.00000033661707,
+ -57.00000033338738,
+ -57.00000033018868,
+ -57.00000032702067,
+ -57.00000032388306,
+ -57.00000032077554,
+ -57.00000031769785,
+ -57.000000314649675,
+ -57.00000031163075,
+ -57.00000030864079,
+ -57.00000030567952,
+ -57.00000030274666,
+ -57.00000029984194,
+ -57.00000029696509,
+ -57.00000029411584,
+ -57.00000029129393,
+ -57.000000288499095,
+ -57.000000285731076,
+ -57.00000028298962,
+ -57.000000280274456,
+ -57.00000027758535,
+ -57.000000274922044,
+ -57.00000027228429,
+ -57.000000269671844,
+ -57.00000026708447,
+ -57.00000026452191,
+ -57.00000026198394,
+ -57.000000259470326,
+ -57.000000256980826,
+ -57.00000025451521,
+ -57.00000025207325,
+ -57.00000024965472,
+ -57.00000024725939,
+ -57.00000024488705,
+ -57.00000024253747,
+ -57.000000240210426,
+ -57.00000023790572,
+ -57.00000023562312,
+ -57.00000023336242,
+ -57.000000231123416,
+ -57.00000022890589,
+ -57.00000022670964,
+ -57.00000022453446,
+ -57.00000022238015,
+ -57.00000022024651,
+ -57.000000218133344,
+ -57.000000216040455,
+ -57.000000213967645,
+ -57.000000211914724,
+ -57.0000002098815,
+ -57.00000020786778,
+ -57.00000020587338,
+ -57.00000020389811,
+ -57.0000002019418,
+ -57.00000020000426,
+ -57.00000019808531,
+ -57.00000019618477,
+ -57.000000194302466,
+ -57.00000019243822,
+ -57.00000019059186,
+ -57.00000018876322,
+ -57.00000018695212,
+ -57.0000001851584,
+ -57.000000183381886,
+ -57.00000018162242,
+ -57.000000179879834,
+ -57.00000017815397,
+ -57.00000017644466,
+ -57.00000017475175,
+ -57.00000017307508,
+ -57.0000001714145,
+ -57.000000169769855,
+ -57.00000016814099,
+ -57.000000166527755,
+ -57.00000016492999,
+ -57.000000163347565,
+ -57.00000016178032,
+ -57.00000016022811,
+ -57.000000158690796,
+ -57.00000015716823,
+ -57.000000155660274,
+ -57.000000154166784,
+ -57.000000152687626,
+ -57.00000015122266,
+ -57.00000014977174,
+ -57.00000014833475,
+ -57.000000146911546,
+ -57.00000014550199,
+ -57.00000014410597,
+ -57.00000014272334,
+ -57.00000014135397,
+ -57.000000139997745,
+ -57.00000013865453,
+ -57.0000001373242,
+ -57.00000013600663,
+ -57.00000013470171,
+ -57.0000001334093,
+ -57.0000001321293,
+ -57.00000013086158,
+ -57.00000012960602,
+ -57.00000012836251,
+ -57.000000127130924,
+ -57.00000012591116,
+ -57.00000012470309,
+ -57.000000123506624,
+ -57.00000012232163,
+ -57.000000121148005,
+ -57.00000011998564,
+ -57.000000118834436,
+ -57.00000011769427,
+ -57.00000011656505,
+ -57.00000011544666,
+ -57.000000114339,
+ -57.000000113241974,
+ -57.00000011215547,
+ -57.00000011107939,
+ -57.00000011001363,
+ -57.0000001089581,
+ -57.00000010791269,
+ -57.000000106877316,
+ -57.000000105851875,
+ -57.000000104836275,
+ -57.000000103830416,
+ -57.00000010283421,
+ -57.00000010184756,
+ -57.00000010087038,
+ -57.00000009990257,
+ -57.00000009894405,
+ -57.00000009799473,
+ -57.00000009705451,
+ -57.000000096123316,
+ -57.00000009520105,
+ -57.00000009428764,
+ -57.000000093382994,
+ -57.00000009248703,
+ -57.00000009159966,
+ -57.0000000907208,
+ -57.000000089850374,
+ -57.0000000889883,
+ -57.0000000881345,
+ -57.00000008728889,
+ -57.000000086451394,
+ -57.000000085621934,
+ -57.00000008480043,
+ -57.00000008398681,
+ -57.00000008318099,
+ -57.00000008238291,
+ -57.00000008159248,
+ -57.00000008080964,
+ -57.00000008003431,
+ -57.00000007926642,
+ -57.0000000785059,
+ -57.00000007775267,
+ -57.00000007700667,
+ -57.000000076267824,
+ -57.00000007553607,
+ -57.00000007481134,
+ -57.000000074093556,
+ -57.00000007338266,
+ -57.00000007267858,
+ -57.00000007198126,
+ -57.000000071290636,
+ -57.00000007060663,
+ -57.00000006992919,
+ -57.000000069258256,
+ -57.00000006859376,
+ -57.00000006793563,
+ -57.00000006728382,
+ -57.000000066638265,
+ -57.0000000659989,
+ -57.00000006536567,
+ -57.000000064738515,
+ -57.00000006411738,
+ -57.0000000635022,
+ -57.00000006289292,
+ -57.000000062289494,
+ -57.00000006169186,
+ -57.00000006109995,
+ -57.00000006051373,
+ -57.00000005993313,
+ -57.0000000593581,
+ -57.000000058788586,
+ -57.000000058224536,
+ -57.0000000576659,
+ -57.00000005711262,
+ -57.00000005656465,
+ -57.00000005602194,
+ -57.000000055484435,
+ -57.00000005495209,
+ -57.000000054424845,
+ -57.00000005390266,
+ -57.00000005338549,
+ -57.00000005287328,
+ -57.00000005236599,
+ -57.000000051863566,
+ -57.00000005136596,
+ -57.000000050873126,
+ -57.00000005038502,
+ -57.000000049901594,
+ -57.00000004942281,
+ -57.00000004894862,
+ -57.00000004847898,
+ -57.000000048013845,
+ -57.00000004755317,
+ -57.00000004709692,
+ -57.00000004664504,
+ -57.000000046197506,
+ -57.00000004575426,
+ -57.00000004531527,
+ -57.00000004488049,
+ -57.00000004444988,
+ -57.0000000440234,
+ -57.00000004360102,
+ -57.00000004318269,
+ -57.00000004276837,
+ -57.000000042358025,
+ -57.000000041951616,
+ -57.00000004154911,
+ -57.000000041150464,
+ -57.000000040755644,
+ -57.00000004036461,
+ -57.00000003997733,
+ -57.000000039593765,
+ -57.00000003921388,
+ -57.00000003883764,
+ -57.00000003846501,
+ -57.000000038095955,
+ -57.000000037730445,
+ -57.00000003736844,
+ -57.000000037009904,
+ -57.00000003665481,
+ -57.00000003630313,
+ -57.00000003595481,
+ -57.000000035609844,
+ -57.00000003526819,
+ -57.000000034929805,
+ -57.00000003459467,
+ -57.00000003426275,
+ -57.000000033934015,
+ -57.00000003360843,
+ -57.00000003328597,
+ -57.00000003296661,
+ -57.00000003265031,
+ -57.00000003233705,
+ -57.00000003202679,
+ -57.00000003171951,
+ -57.000000031415176,
+ -57.000000031113764,
+ -57.000000030815244,
+ -57.00000003051959,
+ -57.000000030226765,
+ -57.00000002993675,
+ -57.00000002964952,
+ -57.00000002936505,
+ -57.0000000290833,
+ -57.00000002880426,
+ -57.00000002852789,
+ -57.00000002825418,
+ -57.00000002798309,
+ -57.000000027714606,
+ -57.0000000274487,
+ -57.000000027185344,
+ -57.00000002692451,
+ -57.00000002666618,
+ -57.000000026410326,
+ -57.00000002615693,
+ -57.00000002590597,
+ -57.000000025657414,
+ -57.00000002541124,
+ -57.00000002516743,
+ -57.00000002492596,
+ -57.000000024686805,
+ -57.000000024449946,
+ -57.00000002421536,
+ -57.00000002398303,
+ -57.00000002375292,
+ -57.00000002352502,
+ -57.00000002329931,
+ -57.00000002307576,
+ -57.00000002285436,
+ -57.00000002263508,
+ -57.00000002241791,
+ -57.00000002220282,
+ -57.00000002198979,
+ -57.00000002177881,
+ -57.00000002156985,
+ -57.0000000213629,
+ -57.00000002115793,
+ -57.00000002095493,
+ -57.00000002075387,
+ -57.00000002055475,
+ -57.00000002035754,
+ -57.00000002016222,
+ -57.00000001996877,
+ -57.00000001977718,
+ -57.00000001958743,
+ -57.0000000193995,
+ -57.000000019213374,
+ -57.00000001902903,
+ -57.00000001884646,
+ -57.00000001866563,
+ -57.000000018486546,
+ -57.00000001830917,
+ -57.000000018133505,
+ -57.00000001795952,
+ -57.00000001778721,
+ -57.00000001761655,
+ -57.000000017447526,
+ -57.00000001728012,
+ -57.000000017114324,
+ -57.00000001695012,
+ -57.00000001678749,
+ -57.00000001662642,
+ -57.0000000164669,
+ -57.00000001630891,
+ -57.000000016152434,
+ -57.00000001599746,
+ -57.000000015843966,
+ -57.00000001569195,
+ -57.000000015541396,
+ -57.00000001539228,
+ -57.0000000152446,
+ -57.00000001509834,
+ -57.00000001495348,
+ -57.000000014810006,
+ -57.00000001466791,
+ -57.00000001452718,
+ -57.0000000143878,
+ -57.00000001424976,
+ -57.000000014113034,
+ -57.000000013977626,
+ -57.00000001384352,
+ -57.0000000137107,
+ -57.00000001357915,
+ -57.00000001344886,
+ -57.00000001331983,
+ -57.00000001319203,
+ -57.00000001306546,
+ -57.000000012940106,
+ -57.00000001281595,
+ -57.000000012692986,
+ -57.0000000125712,
+ -57.000000012450585,
+ -57.00000001233113,
+ -57.000000012212816,
+ -57.00000001209564,
+ -57.00000001197959,
+ -57.00000001186465,
+ -57.000000011750814,
+ -57.00000001163807,
+ -57.00000001152641,
+ -57.00000001141582,
+ -57.00000001130629,
+ -57.00000001119781,
+ -57.00000001109037,
+ -57.00000001098397,
+ -57.00000001087858,
+ -57.00000001077421,
+ -57.00000001067083,
+ -57.00000001056845,
+ -57.00000001046705,
+ -57.00000001036662,
+ -57.00000001026716,
+ -57.00000001016865,
+ -57.00000001007108,
+ -57.00000000997446,
+ -57.000000009878754,
+ -57.000000009783975,
+ -57.000000009690105,
+ -57.00000000959713,
+ -57.00000000950505,
+ -57.00000000941385,
+ -57.00000000932353,
+ -57.00000000923407,
+ -57.000000009145474,
+ -57.00000000905773,
+ -57.00000000897082,
+ -57.000000008884754,
+ -57.00000000879951,
+ -57.000000008715084,
+ -57.00000000863147,
+ -57.00000000854865,
+ -57.000000008466635,
+ -57.0000000083854,
+ -57.000000008304944,
+ -57.000000008225264,
+ -57.000000008146344,
+ -57.000000008068184,
+ -57.00000000799077,
+ -57.0000000079141,
+ -57.00000000783817,
+ -57.000000007762964,
+ -57.000000007688485,
+ -57.000000007614716,
+ -57.00000000754166,
+ -57.000000007469296,
+ -57.00000000739763,
+ -57.000000007326655,
+ -57.00000000725636,
+ -57.00000000718674,
+ -57.00000000711779,
+ -57.0000000070495,
+ -57.000000006981864,
+ -57.000000006914874,
+ -57.00000000684853,
+ -57.00000000678282,
+ -57.00000000671774,
+ -57.00000000665329,
+ -57.00000000658945,
+ -57.00000000652623,
+ -57.000000006463615,
+ -57.0000000064016,
+ -57.00000000634018,
+ -57.00000000627935,
+ -57.0000000062191,
+ -57.00000000615943,
+ -57.000000006100336,
+ -57.00000000604181,
+ -57.00000000598384,
+ -57.00000000592643,
+ -57.000000005869566,
+ -57.00000000581325,
+ -57.00000000575747,
+ -57.00000000570223,
+ -57.00000000564752,
+ -57.000000005593336,
+ -57.00000000553967,
+ -57.00000000548652,
+ -57.000000005433876,
+ -57.00000000538174,
+ -57.00000000533011,
+ -57.00000000527897,
+ -57.00000000522832,
+ -57.00000000517816,
+ -57.00000000512848,
+ -57.00000000507927,
+ -57.000000005030536,
+ -57.00000000498227,
+ -57.00000000493446,
+ -57.00000000488712,
+ -57.00000000484023,
+ -57.00000000479379,
+ -57.0000000047478,
+ -57.000000004702244,
+ -57.000000004657124,
+ -57.00000000461244,
+ -57.000000004568186,
+ -57.00000000452436,
+ -57.00000000448095,
+ -57.00000000443796,
+ -57.000000004395375,
+ -57.000000004353204,
+ -57.00000000431144,
+ -57.00000000427007,
+ -57.0000000042291,
+ -57.00000000418852,
+ -57.00000000414833,
+ -57.00000000410853,
+ -57.00000000406911,
+ -57.00000000403006,
+ -57.000000003991396,
+ -57.0000000039531,
+ -57.00000000391517,
+ -57.0000000038776,
+ -57.0000000038404,
+ -57.00000000380355,
+ -57.000000003767056,
+ -57.00000000373091,
+ -57.00000000369511,
+ -57.00000000365966,
+ -57.00000000362454,
+ -57.00000000358977,
+ -57.00000000355533,
+ -57.000000003521215,
+ -57.00000000348743,
+ -57.00000000345397,
+ -57.00000000342083,
+ -57.00000000338801,
+ -57.0000000033555,
+ -57.00000000332331,
+ -57.00000000329142,
+ -57.00000000325984,
+ -57.000000003228564,
+ -57.000000003197584,
+ -57.0000000031669,
+ -57.00000000313652,
+ -57.00000000310643,
+ -57.00000000307662,
+ -57.000000003047106,
+ -57.00000000301787,
+ -57.00000000298891,
+ -57.000000002960235,
+ -57.000000002931834,
+ -57.000000002903704,
+ -57.000000002875844,
+ -57.00000000284825,
+ -57.000000002820926,
+ -57.00000000279386,
+ -57.00000000276705,
+ -57.00000000274051,
+ -57.00000000271421,
+ -57.00000000268817,
+ -57.000000002662375,
+ -57.00000000263683,
+ -57.00000000261153,
+ -57.000000002586475,
+ -57.000000002561656,
+ -57.00000000253708,
+ -57.000000002512735,
+ -57.000000002488626,
+ -57.00000000246475,
+ -57.000000002441105,
+ -57.000000002417686,
+ -57.000000002394486,
+ -57.000000002371515,
+ -57.00000000234876,
+ -57.000000002326225,
+ -57.000000002303906,
+ -57.0000000022818,
+ -57.00000000225991,
+ -57.000000002238224,
+ -57.00000000221675,
+ -57.000000002195485,
+ -57.00000000217442,
+ -57.000000002153556,
+ -57.00000000213289,
+ -57.00000000211243,
+ -57.000000002092165,
+ -57.00000000207209,
+ -57.00000000205221,
+ -57.00000000203252,
+ -57.00000000201302,
+ -57.000000001993705,
+ -57.00000000197458,
+ -57.000000001955634,
+ -57.00000000193687,
+ -57.00000000191829,
+ -57.000000001899885,
+ -57.00000000188166,
+ -57.000000001863604,
+ -57.00000000184573,
+ -57.00000000182802,
+ -57.000000001810484,
+ -57.00000000179311,
+ -57.00000000177591,
+ -57.00000000175887,
+ -57.000000001741995,
+ -57.00000000172528,
+ -57.00000000170873,
+ -57.000000001692335,
+ -57.0000000016761,
+ -57.00000000166002,
+ -57.00000000164409,
+ -57.000000001628315,
+ -57.00000000161269,
+ -57.000000001597215,
+ -57.00000000158189,
+ -57.00000000156671,
+ -57.000000001551676,
+ -57.00000000153679,
+ -57.00000000152205,
+ -57.000000001507445,
+ -57.00000000149298,
+ -57.000000001478654,
+ -57.000000001464464,
+ -57.00000000145042,
+ -57.0000000014365,
+ -57.00000000142271,
+ -57.00000000140906,
+ -57.00000000139554,
+ -57.000000001382155,
+ -57.000000001368896,
+ -57.000000001355765,
+ -57.000000001342755,
+ -57.00000000132987,
+ -57.00000000131711,
+ -57.00000000130447,
+ -57.00000000129196,
+ -57.00000000127956,
+ -57.00000000126728,
+ -57.000000001255124,
+ -57.00000000124308,
+ -57.00000000123115,
+ -57.00000000121934,
+ -57.000000001207646,
+ -57.00000000119606,
+ -57.00000000118458,
+ -57.00000000117321,
+ -57.00000000116196,
+ -57.00000000115081,
+ -57.00000000113977,
+ -57.00000000112883,
+ -57.000000001118,
+ -57.000000001107274,
+ -57.00000000109665,
+ -57.00000000108613,
+ -57.000000001075705,
+ -57.00000000106538,
+ -57.000000001055156,
+ -57.00000000104503,
+ -57.000000001035005,
+ -57.00000000102507,
+ -57.00000000101524,
+ -57.000000001005496,
+ -57.00000000099585,
+ -57.00000000098629,
+ -57.000000000976826,
+ -57.000000000967454,
+ -57.000000000958174,
+ -57.00000000094898,
+ -57.00000000093988,
+ -57.00000000093086,
+ -57.00000000092193,
+ -57.00000000091308,
+ -57.00000000090432,
+ -57.000000000895646,
+ -57.000000000887056,
+ -57.00000000087854,
+ -57.000000000870116,
+ -57.00000000086177,
+ -57.0000000008535,
+ -57.00000000084531,
+ -57.000000000837204,
+ -57.000000000829175,
+ -57.00000000082122,
+ -57.00000000081334,
+ -57.000000000805535,
+ -57.000000000797804,
+ -57.00000000079015,
+ -57.00000000078257,
+ -57.00000000077506,
+ -57.00000000076762,
+ -57.00000000076025,
+ -57.000000000752955,
+ -57.00000000074573,
+ -57.000000000738574,
+ -57.00000000073149,
+ -57.00000000072447,
+ -57.00000000071752,
+ -57.000000000710635,
+ -57.000000000703814,
+ -57.000000000697064,
+ -57.00000000069038,
+ -57.000000000683755,
+ -57.0000000006772,
+ -57.0000000006707,
+ -57.000000000664265,
+ -57.00000000065789,
+ -57.00000000065158,
+ -57.00000000064533,
+ -57.00000000063914,
+ -57.00000000063301,
+ -57.00000000062693,
+ -57.000000000620915,
+ -57.00000000061496,
+ -57.00000000060906,
+ -57.00000000060322,
+ -57.00000000059743,
+ -57.0000000005917,
+ -57.00000000058602,
+ -57.0000000005804,
+ -57.00000000057483,
+ -57.000000000569315,
+ -57.00000000056385,
+ -57.000000000558444,
+ -57.00000000055309,
+ -57.00000000054778,
+ -57.00000000054252,
+ -57.00000000053731,
+ -57.000000000532154,
+ -57.000000000527045,
+ -57.000000000521986,
+ -57.00000000051698,
+ -57.00000000051202,
+ -57.00000000050711,
+ -57.00000000050224,
+ -57.00000000049742,
+ -57.00000000049265,
+ -57.00000000048792,
+ -57.00000000048324,
+ -57.0000000004786,
+ -57.00000000047401,
+ -57.00000000046946,
+ -57.00000000046496,
+ -57.000000000460496,
+ -57.000000000456076,
+ -57.0000000004517,
+ -57.000000000447365,
+ -57.00000000044307,
+ -57.000000000438824,
+ -57.00000000043461,
+ -57.00000000043044,
+ -57.00000000042631,
+ -57.00000000042222,
+ -57.00000000041817,
+ -57.000000000414154,
+ -57.00000000041018,
+ -57.000000000406246,
+ -57.000000000402345,
+ -57.00000000039849,
+ -57.000000000394664,
+ -57.00000000039088,
+ -57.000000000387125,
+ -57.00000000038341,
+ -57.00000000037973,
+ -57.00000000037608,
+ -57.000000000372474,
+ -57.0000000003689,
+ -57.00000000036536,
+ -57.00000000036186,
+ -57.00000000035838,
+ -57.000000000354945,
+ -57.00000000035154,
+ -57.000000000348166,
+ -57.000000000344826,
+ -57.000000000341515,
+ -57.00000000033824,
+ -57.00000000033499,
+ -57.00000000033178,
+ -57.0000000003286,
+ -57.00000000032544,
+ -57.00000000032232,
+ -57.00000000031923,
+ -57.00000000031617,
+ -57.000000000313136,
+ -57.00000000031013,
+ -57.00000000030715,
+ -57.000000000304205,
+ -57.000000000301284,
+ -57.00000000029839,
+ -57.00000000029553,
+ -57.000000000292694,
+ -57.00000000028989,
+ -57.00000000028711,
+ -57.00000000028435,
+ -57.000000000281624,
+ -57.00000000027892,
+ -57.000000000276245,
+ -57.000000000273594,
+ -57.00000000027097,
+ -57.00000000026837,
+ -57.0000000002658,
+ -57.00000000026325,
+ -57.00000000026073,
+ -57.000000000258225,
+ -57.000000000255746,
+ -57.000000000253294,
+ -57.000000000250864,
+ -57.000000000248455,
+ -57.000000000246075,
+ -57.000000000243716,
+ -57.00000000024138,
+ -57.00000000023906,
+ -57.00000000023677,
+ -57.00000000023449,
+ -57.00000000023224,
+ -57.00000000023001,
+ -57.0000000002278,
+ -57.00000000022561,
+ -57.000000000223444,
+ -57.0000000002213,
+ -57.000000000219174,
+ -57.00000000021707,
+ -57.00000000021499,
+ -57.00000000021293,
+ -57.00000000021088,
+ -57.00000000020886,
+ -57.00000000020685,
+ -57.00000000020487,
+ -57.0000000002029,
+ -57.000000000200956,
+ -57.00000000019903,
+ -57.00000000019712,
+ -57.00000000019523,
+ -57.00000000019335,
+ -57.0000000001915,
+ -57.00000000018966,
+ -57.00000000018784,
+ -57.000000000186034,
+ -57.00000000018425,
+ -57.00000000018248,
+ -57.000000000180734,
+ -57.000000000179,
+ -57.00000000017728,
+ -57.00000000017558,
+ -57.0000000001739,
+ -57.00000000017223,
+ -57.00000000017057,
+ -57.00000000016894,
+ -57.00000000016732,
+ -57.00000000016571,
+ -57.00000000016412,
+ -57.000000000162544,
+ -57.00000000016099,
+ -57.000000000159446,
+ -57.00000000015792,
+ -57.000000000156405,
+ -57.000000000154905,
+ -57.00000000015342,
+ -57.00000000015195,
+ -57.00000000015049,
+ -57.00000000014905,
+ -57.00000000014762,
+ -57.00000000014621,
+ -57.00000000014481,
+ -57.000000000143416,
+ -57.00000000014204,
+ -57.00000000014067,
+ -57.00000000013932,
+ -57.00000000013799,
+ -57.000000000136666,
+ -57.00000000013535,
+ -57.00000000013405,
+ -57.000000000132765,
+ -57.00000000013149,
+ -57.00000000013023,
+ -57.00000000012898,
+ -57.00000000012774,
+ -57.00000000012652,
+ -57.000000000125304,
+ -57.0000000001241,
+ -57.00000000012291,
+ -57.00000000012173,
+ -57.000000000120565,
+ -57.00000000011941,
+ -57.00000000011826,
+ -57.000000000117126,
+ -57.000000000116,
+ -57.00000000011489,
+ -57.000000000113786,
+ -57.00000000011269,
+ -57.00000000011161,
+ -57.00000000011054,
+ -57.00000000010948,
+ -57.00000000010843,
+ -57.00000000010739,
+ -57.00000000010636,
+ -57.00000000010534,
+ -57.00000000010433,
+ -57.00000000010333,
+ -57.00000000010233,
+ -57.00000000010135,
+ -57.00000000010038,
+ -57.00000000009941,
+ -57.00000000009846,
+ -57.000000000097515,
+ -57.00000000009658,
+ -57.00000000009565,
+ -57.00000000009474,
+ -57.00000000009383,
+ -57.000000000092925,
+ -57.00000000009204,
+ -57.000000000091156,
+ -57.00000000009028,
+ -57.000000000089415,
+ -57.000000000088555,
+ -57.0000000000877,
+ -57.000000000086864,
+ -57.00000000008603,
+ -57.00000000008521,
+ -57.00000000008439,
+ -57.00000000008358,
+ -57.00000000008278,
+ -57.00000000008198,
+ -57.000000000081194,
+ -57.00000000008041,
+ -57.00000000007964,
+ -57.00000000007887,
+ -57.00000000007812,
+ -57.00000000007737,
+ -57.00000000007663,
+ -57.0000000000759,
+ -57.000000000075175,
+ -57.00000000007445,
+ -57.00000000007373,
+ -57.00000000007302,
+ -57.00000000007232,
+ -57.00000000007162,
+ -57.00000000007093,
+ -57.00000000007025,
+ -57.000000000069576,
+ -57.00000000006891,
+ -57.00000000006825,
+ -57.000000000067594,
+ -57.00000000006695,
+ -57.00000000006631,
+ -57.00000000006567,
+ -57.000000000065036,
+ -57.00000000006441,
+ -57.00000000006379,
+ -57.00000000006318,
+ -57.00000000006258,
+ -57.00000000006198,
+ -57.000000000061384,
+ -57.000000000060794,
+ -57.00000000006021,
+ -57.000000000059636,
+ -57.00000000005906,
+ -57.00000000005849,
+ -57.00000000005793,
+ -57.000000000057376,
+ -57.00000000005683,
+ -57.00000000005628,
+ -57.00000000005574,
+ -57.00000000005521,
+ -57.000000000054676,
+ -57.00000000005415,
+ -57.00000000005363,
+ -57.00000000005312,
+ -57.00000000005261,
+ -57.000000000052104,
+ -57.00000000005161,
+ -57.00000000005111,
+ -57.00000000005062,
+ -57.000000000050136,
+ -57.00000000004965,
+ -57.00000000004918,
+ -57.00000000004871,
+ -57.00000000004824,
+ -57.00000000004778,
+ -57.000000000047315,
+ -57.00000000004686,
+ -57.00000000004641,
+ -57.000000000045965,
+ -57.000000000045524,
+ -57.00000000004509,
+ -57.00000000004466,
+ -57.00000000004423,
+ -57.000000000043805,
+ -57.000000000043386,
+ -57.00000000004297,
+ -57.000000000042554,
+ -57.00000000004215,
+ -57.000000000041744,
+ -57.00000000004135,
+ -57.00000000004095,
+ -57.00000000004056,
+ -57.00000000004017,
+ -57.00000000003978,
+ -57.0000000000394,
+ -57.00000000003902,
+ -57.000000000038646,
+ -57.00000000003828,
+ -57.00000000003791,
+ -57.000000000037545,
+ -57.00000000003718,
+ -57.00000000003683,
+ -57.00000000003647,
+ -57.000000000036124,
+ -57.000000000035776,
+ -57.000000000035435,
+ -57.000000000035094,
+ -57.00000000003476,
+ -57.000000000034426,
+ -57.0000000000341,
+ -57.00000000003377,
+ -57.000000000033445,
+ -57.000000000033126,
+ -57.000000000032806,
+ -57.00000000003249,
+ -57.00000000003218,
+ -57.000000000031875,
+ -57.00000000003157,
+ -57.000000000031264,
+ -57.000000000030965,
+ -57.00000000003067,
+ -57.000000000030376,
+ -57.000000000030084,
+ -57.00000000002979,
+ -57.00000000002951,
+ -57.000000000029225,
+ -57.00000000002895,
+ -57.00000000002867,
+ -57.00000000002839,
+ -57.00000000002812,
+ -57.00000000002785,
+ -57.00000000002758,
+ -57.00000000002732,
+ -57.00000000002706,
+ -57.000000000026795,
+ -57.00000000002654,
+ -57.00000000002628,
+ -57.000000000026034,
+ -57.000000000025786,
+ -57.00000000002554,
+ -57.000000000025295,
+ -57.000000000025054,
+ -57.00000000002481,
+ -57.00000000002457,
+ -57.000000000024336,
+ -57.0000000000241,
+ -57.00000000002387,
+ -57.00000000002364,
+ -57.00000000002341,
+ -57.000000000023185,
+ -57.000000000022965,
+ -57.000000000022744,
+ -57.000000000022524,
+ -57.00000000002231,
+ -57.0000000000221,
+ -57.000000000021885,
+ -57.00000000002167,
+ -57.000000000021465,
+ -57.00000000002126,
+ -57.00000000002105,
+ -57.000000000020854,
+ -57.000000000020655,
+ -57.00000000002046,
+ -57.00000000002026,
+ -57.000000000020066,
+ -57.000000000019874,
+ -57.00000000001968,
+ -57.00000000001949,
+ -57.000000000019305,
+ -57.00000000001912,
+ -57.000000000018936,
+ -57.00000000001875,
+ -57.000000000018574,
+ -57.000000000018396,
+ -57.00000000001822,
+ -57.00000000001804,
+ -57.00000000001787,
+ -57.0000000000177,
+ -57.00000000001753,
+ -57.00000000001736,
+ -57.000000000017195,
+ -57.00000000001703,
+ -57.00000000001687,
+ -57.000000000016705,
+ -57.00000000001654,
+ -57.000000000016385,
+ -57.00000000001623,
+ -57.00000000001607,
+ -57.000000000015916,
+ -57.00000000001577,
+ -57.00000000001562,
+ -57.00000000001547,
+ -57.00000000001532,
+ -57.00000000001517,
+ -57.00000000001503,
+ -57.000000000014886,
+ -57.000000000014744,
+ -57.0000000000146,
+ -57.00000000001446,
+ -57.00000000001432,
+ -57.00000000001418,
+ -57.00000000001405,
+ -57.00000000001391,
+ -57.00000000001378,
+ -57.00000000001364,
+ -57.000000000013515,
+ -57.00000000001339,
+ -57.00000000001326,
+ -57.00000000001313,
+ -57.000000000013,
+ -57.000000000012875,
+ -57.000000000012754,
+ -57.00000000001263,
+ -57.00000000001251,
+ -57.00000000001239,
+ -57.00000000001227,
+ -57.00000000001215,
+ -57.00000000001204,
+ -57.00000000001192,
+ -57.00000000001181,
+ -57.000000000011696,
+ -57.00000000001158,
+ -57.00000000001147,
+ -57.00000000001136,
+ -57.000000000011255,
+ -57.00000000001115,
+ -57.00000000001104,
+ -57.000000000010935,
+ -57.00000000001083,
+ -57.00000000001072,
+ -57.00000000001062,
+ -57.00000000001052,
+ -57.000000000010424,
+ -57.000000000010324,
+ -57.000000000010225,
+ -57.000000000010125,
+ -57.000000000010026,
+ -57.000000000009926,
+ -57.000000000009834,
+ -57.00000000000974,
+ -57.00000000000965,
+ -57.00000000000956,
+ -57.000000000009464,
+ -57.00000000000937,
+ -57.00000000000928,
+ -57.00000000000919,
+ -57.0000000000091,
+ -57.00000000000902,
+ -57.00000000000893,
+ -57.000000000008846,
+ -57.00000000000876,
+ -57.000000000008676,
+ -57.00000000000859,
+ -57.000000000008505,
+ -57.00000000000843,
+ -57.00000000000835,
+ -57.00000000000827,
+ -57.00000000000819,
+ -57.000000000008114,
+ -57.000000000008036,
+ -57.00000000000796,
+ -57.00000000000788,
+ -57.0000000000078,
+ -57.000000000007724,
+ -57.00000000000765,
+ -57.00000000000758,
+ -57.00000000000751,
+ -57.00000000000744,
+ -57.00000000000737,
+ -57.0000000000073,
+ -57.000000000007226,
+ -57.000000000007155,
+ -57.000000000007084,
+ -57.00000000000701,
+ -57.00000000000695,
+ -57.000000000006885,
+ -57.00000000000682,
+ -57.00000000000676,
+ -57.00000000000669,
+ -57.00000000000663,
+ -57.000000000006565,
+ -57.0000000000065,
+ -57.00000000000644,
+ -57.000000000006374,
+ -57.00000000000631,
+ -57.000000000006246,
+ -57.00000000000619,
+ -57.00000000000613,
+ -57.000000000006075,
+ -57.00000000000602,
+ -57.00000000000596,
+ -57.000000000005905,
+ -57.00000000000585,
+ -57.00000000000579,
+ -57.000000000005734,
+ -57.00000000000568,
+ -57.00000000000562,
+ -57.00000000000556,
+ -57.00000000000551,
+ -57.00000000000546,
+ -57.00000000000541,
+ -57.00000000000536,
+ -57.00000000000531,
+ -57.00000000000526,
+ -57.00000000000521,
+ -57.00000000000516,
+ -57.00000000000511,
+ -57.00000000000506,
+ -57.00000000000501,
+ -57.00000000000496,
+ -57.00000000000491,
+ -57.00000000000486,
+ -57.00000000000481,
+ -57.00000000000477,
+ -57.000000000004725,
+ -57.00000000000468,
+ -57.00000000000464,
+ -57.0000000000046,
+ -57.000000000004555,
+ -57.00000000000451,
+ -57.00000000000447,
+ -57.00000000000443,
+ -57.000000000004384,
+ -57.00000000000434,
+ -57.0000000000043,
+ -57.000000000004256,
+ -57.00000000000421,
+ -57.00000000000417,
+ -57.00000000000413,
+ -57.000000000004086,
+ -57.00000000000404,
+ -57.00000000000401,
+ -57.00000000000397,
+ -57.000000000003936,
+ -57.0000000000039,
+ -57.000000000003865,
+ -57.00000000000383,
+ -57.000000000003794,
+ -57.00000000000376,
+ -57.00000000000372,
+ -57.00000000000369,
+ -57.00000000000365,
+ -57.00000000000362,
+ -57.00000000000358,
+ -57.000000000003546,
+ -57.00000000000351,
+ -57.000000000003475,
+ -57.00000000000344,
+ -57.0000000000034,
+ -57.00000000000337,
+ -57.00000000000333,
+ -57.000000000003304,
+ -57.000000000003276,
+ -57.00000000000325,
+ -57.00000000000322,
+ -57.00000000000319,
+ -57.00000000000316,
+ -57.00000000000313,
+ -57.000000000003105,
+ -57.00000000000308,
+ -57.00000000000305,
+ -57.00000000000302,
+ -57.00000000000299,
+ -57.00000000000296,
+ -57.000000000002935,
+ -57.000000000002906,
+ -57.00000000000288,
+ -57.00000000000285,
+ -57.00000000000282,
+ -57.00000000000279,
+ -57.000000000002764,
+ -57.000000000002736,
+ -57.00000000000271,
+ -57.00000000000268,
+ -57.00000000000265,
+ -57.00000000000262,
+ -57.00000000000259,
+ -57.000000000002565,
+ -57.000000000002544,
+ -57.00000000000252,
+ -57.0000000000025,
+ -57.00000000000248,
+ -57.00000000000246,
+ -57.00000000000244,
+ -57.000000000002416,
+ -57.000000000002395,
+ -57.00000000000237,
+ -57.00000000000235,
+ -57.00000000000233,
+ -57.00000000000231,
+ -57.00000000000229,
+ -57.00000000000227,
+ -57.000000000002245,
+ -57.000000000002224,
+ -57.0000000000022,
+ -57.00000000000218,
+ -57.00000000000216,
+ -57.00000000000214,
+ -57.00000000000212,
+ -57.000000000002096,
+ -57.000000000002075,
+ -57.00000000000205,
+ -57.00000000000203,
+ -57.00000000000201,
+ -57.00000000000199,
+ -57.00000000000197,
+ -57.00000000000195,
+ -57.000000000001926,
+ -57.000000000001904,
+ -57.00000000000188,
+ -57.00000000000186,
+ -57.00000000000184,
+ -57.000000000001826,
+ -57.00000000000181,
+ -57.0000000000018,
+ -57.00000000000178,
+ -57.00000000000177,
+ -57.000000000001755,
+ -57.00000000000174,
+ -57.00000000000173,
+ -57.00000000000171,
+ -57.0000000000017,
+ -57.000000000001684,
+ -57.00000000000167,
+ -57.000000000001656,
+ -57.00000000000164,
+ -57.00000000000163,
+ -57.00000000000161,
+ -57.0000000000016,
+ -57.000000000001585,
+ -57.00000000000157,
+ -57.000000000001556,
+ -57.00000000000154,
+ -57.00000000000153,
+ -57.00000000000151,
+ -57.0000000000015,
+ -57.000000000001485,
+ -57.00000000000147,
+ -57.00000000000146,
+ -57.00000000000144,
+ -57.00000000000143,
+ -57.000000000001414,
+ -57.0000000000014,
+ -57.000000000001386,
+ -57.00000000000137,
+ -57.00000000000136,
+ -57.00000000000134,
+ -57.00000000000133,
+ -57.000000000001315,
+ -57.0000000000013,
+ -57.000000000001286,
+ -57.00000000000127,
+ -57.00000000000126,
+ -57.00000000000124,
+ -57.00000000000123,
+ -57.000000000001215,
+ -57.0000000000012,
+ -57.00000000000119,
+ -57.00000000000117,
+ -57.00000000000116,
+ -57.000000000001144,
+ -57.00000000000113,
+ -57.000000000001116,
+ -57.0000000000011,
+ -57.000000000001094,
+ -57.00000000000109,
+ -57.00000000000108,
+ -57.00000000000107,
+ -57.000000000001066,
+ -57.00000000000106,
+ -57.00000000000105,
+ -57.000000000001044,
+ -57.00000000000104,
+ -57.00000000000103,
+ -57.00000000000102,
+ -57.000000000001016,
+ -57.00000000000101,
+ -57.000000000001,
+ -57.000000000000995,
+ -57.00000000000099,
+ -57.00000000000098,
+ -57.00000000000097,
+ -57.000000000000966,
+ -57.00000000000096,
+ -57.00000000000095,
+ -57.000000000000945,
+ -57.00000000000094,
+ -57.00000000000093,
+ -57.000000000000924,
+ -57.00000000000092,
+ -57.00000000000091,
+ -57.0000000000009,
+ -57.000000000000895,
+ -57.00000000000089,
+ -57.00000000000088,
+ -57.000000000000874,
+ -57.00000000000087,
+ -57.00000000000086,
+ -57.00000000000085,
+ -57.000000000000846,
+ -57.00000000000084,
+ -57.00000000000083,
+ -57.000000000000824,
+ -57.00000000000082,
+ -57.00000000000081,
+ -57.0000000000008,
+ -57.000000000000796,
+ -57.00000000000079,
+ -57.00000000000078,
+ -57.000000000000774,
+ -57.00000000000077,
+ -57.00000000000076,
+ -57.00000000000075,
+ -57.000000000000746,
+ -57.00000000000074,
+ -57.00000000000073,
+ -57.000000000000725,
+ -57.00000000000072,
+ -57.00000000000071,
+ -57.0000000000007,
+ -57.000000000000696,
+ -57.00000000000069,
+ -57.00000000000068,
+ -57.000000000000675,
+ -57.00000000000067,
+ -57.00000000000066,
+ -57.000000000000654,
+ -57.00000000000065,
+ -57.00000000000064,
+ -57.00000000000063,
+ -57.000000000000625,
+ -57.00000000000062,
+ -57.00000000000061,
+ -57.000000000000604,
+ -57.0000000000006,
+ -57.00000000000059,
+ -57.00000000000058,
+ -57.000000000000576,
+ -57.00000000000057,
+ -57.00000000000056,
+ -57.000000000000554,
+ -57.00000000000055,
+ -57.00000000000054,
+ -57.00000000000053,
+ -57.000000000000526,
+ -57.00000000000052,
+ -57.00000000000051,
+ -57.000000000000504,
+ -57.0000000000005,
+ -57.00000000000049,
+ -57.00000000000048,
+ -57.000000000000476,
+ -57.00000000000047,
+ -57.00000000000046,
+ -57.000000000000455,
+ -57.00000000000045,
+ -57.00000000000044,
+ -57.00000000000043,
+ -57.000000000000426,
+ -57.00000000000042,
+ -57.00000000000041,
+ -57.000000000000405,
+ -57.0000000000004,
+ -57.00000000000039,
+ -57.000000000000384,
+ -57.00000000000038,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037,
+ -57.00000000000037
+ ]
+ },
+ "spkid": [],
+ "spkt": [],
+ "stims": {
+ "cell_0": {},
+ "cell_1": {}
+ },
+ "t": [
+ 0.0,
+ 0.05,
+ 0.1,
+ 0.15000000000000002,
+ 0.2,
+ 0.25,
+ 0.3,
+ 0.35,
+ 0.39999999999999997,
+ 0.44999999999999996,
+ 0.49999999999999994,
+ 0.5499999999999999,
+ 0.6,
+ 0.65,
+ 0.7000000000000001,
+ 0.7500000000000001,
+ 0.8000000000000002,
+ 0.8500000000000002,
+ 0.9000000000000002,
+ 0.9500000000000003,
+ 1.0000000000000002,
+ 1.0500000000000003,
+ 1.1000000000000003,
+ 1.1500000000000004,
+ 1.2000000000000004,
+ 1.2500000000000004,
+ 1.3000000000000005,
+ 1.3500000000000005,
+ 1.4000000000000006,
+ 1.4500000000000006,
+ 1.5000000000000007,
+ 1.5500000000000007,
+ 1.6000000000000008,
+ 1.6500000000000008,
+ 1.7000000000000008,
+ 1.7500000000000009,
+ 1.800000000000001,
+ 1.850000000000001,
+ 1.900000000000001,
+ 1.950000000000001,
+ 2.000000000000001,
+ 2.0500000000000007,
+ 2.1000000000000005,
+ 2.1500000000000004,
+ 2.2,
+ 2.25,
+ 2.3,
+ 2.3499999999999996,
+ 2.3999999999999995,
+ 2.4499999999999993,
+ 2.499999999999999,
+ 2.549999999999999,
+ 2.5999999999999988,
+ 2.6499999999999986,
+ 2.6999999999999984,
+ 2.7499999999999982,
+ 2.799999999999998,
+ 2.849999999999998,
+ 2.8999999999999977,
+ 2.9499999999999975,
+ 2.9999999999999973,
+ 3.049999999999997,
+ 3.099999999999997,
+ 3.149999999999997,
+ 3.1999999999999966,
+ 3.2499999999999964,
+ 3.2999999999999963,
+ 3.349999999999996,
+ 3.399999999999996,
+ 3.4499999999999957,
+ 3.4999999999999956,
+ 3.5499999999999954,
+ 3.599999999999995,
+ 3.649999999999995,
+ 3.699999999999995,
+ 3.7499999999999947,
+ 3.7999999999999945,
+ 3.8499999999999943,
+ 3.899999999999994,
+ 3.949999999999994,
+ 3.999999999999994,
+ 4.049999999999994,
+ 4.099999999999993,
+ 4.149999999999993,
+ 4.199999999999993,
+ 4.249999999999993,
+ 4.299999999999993,
+ 4.3499999999999925,
+ 4.399999999999992,
+ 4.449999999999992,
+ 4.499999999999992,
+ 4.549999999999992,
+ 4.599999999999992,
+ 4.6499999999999915,
+ 4.699999999999991,
+ 4.749999999999991,
+ 4.799999999999991,
+ 4.849999999999991,
+ 4.899999999999991,
+ 4.94999999999999,
+ 4.99999999999999,
+ 5.04999999999999,
+ 5.09999999999999,
+ 5.14999999999999,
+ 5.1999999999999895,
+ 5.249999999999989,
+ 5.299999999999989,
+ 5.349999999999989,
+ 5.399999999999989,
+ 5.449999999999989,
+ 5.4999999999999885,
+ 5.549999999999988,
+ 5.599999999999988,
+ 5.649999999999988,
+ 5.699999999999988,
+ 5.749999999999988,
+ 5.799999999999987,
+ 5.849999999999987,
+ 5.899999999999987,
+ 5.949999999999987,
+ 5.999999999999987,
+ 6.0499999999999865,
+ 6.099999999999986,
+ 6.149999999999986,
+ 6.199999999999986,
+ 6.249999999999986,
+ 6.299999999999986,
+ 6.349999999999985,
+ 6.399999999999985,
+ 6.449999999999985,
+ 6.499999999999985,
+ 6.549999999999985,
+ 6.5999999999999845,
+ 6.649999999999984,
+ 6.699999999999984,
+ 6.749999999999984,
+ 6.799999999999984,
+ 6.849999999999984,
+ 6.8999999999999835,
+ 6.949999999999983,
+ 6.999999999999983,
+ 7.049999999999983,
+ 7.099999999999983,
+ 7.149999999999983,
+ 7.199999999999982,
+ 7.249999999999982,
+ 7.299999999999982,
+ 7.349999999999982,
+ 7.399999999999982,
+ 7.4499999999999815,
+ 7.499999999999981,
+ 7.549999999999981,
+ 7.599999999999981,
+ 7.649999999999981,
+ 7.699999999999981,
+ 7.7499999999999805,
+ 7.79999999999998,
+ 7.84999999999998,
+ 7.89999999999998,
+ 7.94999999999998,
+ 7.99999999999998,
+ 8.04999999999998,
+ 8.09999999999998,
+ 8.14999999999998,
+ 8.199999999999982,
+ 8.249999999999982,
+ 8.299999999999983,
+ 8.349999999999984,
+ 8.399999999999984,
+ 8.449999999999985,
+ 8.499999999999986,
+ 8.549999999999986,
+ 8.599999999999987,
+ 8.649999999999988,
+ 8.699999999999989,
+ 8.74999999999999,
+ 8.79999999999999,
+ 8.84999999999999,
+ 8.899999999999991,
+ 8.949999999999992,
+ 8.999999999999993,
+ 9.049999999999994,
+ 9.099999999999994,
+ 9.149999999999995,
+ 9.199999999999996,
+ 9.249999999999996,
+ 9.299999999999997,
+ 9.349999999999998,
+ 9.399999999999999,
+ 9.45,
+ 9.5,
+ 9.55,
+ 9.600000000000001,
+ 9.650000000000002,
+ 9.700000000000003,
+ 9.750000000000004,
+ 9.800000000000004,
+ 9.850000000000005,
+ 9.900000000000006,
+ 9.950000000000006,
+ 10.000000000000007,
+ 10.050000000000008,
+ 10.100000000000009,
+ 10.15000000000001,
+ 10.20000000000001,
+ 10.25000000000001,
+ 10.300000000000011,
+ 10.350000000000012,
+ 10.400000000000013,
+ 10.450000000000014,
+ 10.500000000000014,
+ 10.550000000000015,
+ 10.600000000000016,
+ 10.650000000000016,
+ 10.700000000000017,
+ 10.750000000000018,
+ 10.800000000000018,
+ 10.85000000000002,
+ 10.90000000000002,
+ 10.95000000000002,
+ 11.000000000000021,
+ 11.050000000000022,
+ 11.100000000000023,
+ 11.150000000000023,
+ 11.200000000000024,
+ 11.250000000000025,
+ 11.300000000000026,
+ 11.350000000000026,
+ 11.400000000000027,
+ 11.450000000000028,
+ 11.500000000000028,
+ 11.55000000000003,
+ 11.60000000000003,
+ 11.65000000000003,
+ 11.700000000000031,
+ 11.750000000000032,
+ 11.800000000000033,
+ 11.850000000000033,
+ 11.900000000000034,
+ 11.950000000000035,
+ 12.000000000000036,
+ 12.050000000000036,
+ 12.100000000000037,
+ 12.150000000000038,
+ 12.200000000000038,
+ 12.250000000000039,
+ 12.30000000000004,
+ 12.35000000000004,
+ 12.400000000000041,
+ 12.450000000000042,
+ 12.500000000000043,
+ 12.550000000000043,
+ 12.600000000000044,
+ 12.650000000000045,
+ 12.700000000000045,
+ 12.750000000000046,
+ 12.800000000000047,
+ 12.850000000000048,
+ 12.900000000000048,
+ 12.950000000000049,
+ 13.00000000000005,
+ 13.05000000000005,
+ 13.100000000000051,
+ 13.150000000000052,
+ 13.200000000000053,
+ 13.250000000000053,
+ 13.300000000000054,
+ 13.350000000000055,
+ 13.400000000000055,
+ 13.450000000000056,
+ 13.500000000000057,
+ 13.550000000000058,
+ 13.600000000000058,
+ 13.650000000000059,
+ 13.70000000000006,
+ 13.75000000000006,
+ 13.800000000000061,
+ 13.850000000000062,
+ 13.900000000000063,
+ 13.950000000000063,
+ 14.000000000000064,
+ 14.050000000000065,
+ 14.100000000000065,
+ 14.150000000000066,
+ 14.200000000000067,
+ 14.250000000000068,
+ 14.300000000000068,
+ 14.350000000000069,
+ 14.40000000000007,
+ 14.45000000000007,
+ 14.500000000000071,
+ 14.550000000000072,
+ 14.600000000000072,
+ 14.650000000000073,
+ 14.700000000000074,
+ 14.750000000000075,
+ 14.800000000000075,
+ 14.850000000000076,
+ 14.900000000000077,
+ 14.950000000000077,
+ 15.000000000000078,
+ 15.050000000000079,
+ 15.10000000000008,
+ 15.15000000000008,
+ 15.200000000000081,
+ 15.250000000000082,
+ 15.300000000000082,
+ 15.350000000000083,
+ 15.400000000000084,
+ 15.450000000000085,
+ 15.500000000000085,
+ 15.550000000000086,
+ 15.600000000000087,
+ 15.650000000000087,
+ 15.700000000000088,
+ 15.750000000000089,
+ 15.80000000000009,
+ 15.85000000000009,
+ 15.900000000000091,
+ 15.950000000000092,
+ 16.000000000000092,
+ 16.050000000000093,
+ 16.100000000000094,
+ 16.150000000000095,
+ 16.200000000000095,
+ 16.250000000000096,
+ 16.300000000000097,
+ 16.350000000000097,
+ 16.400000000000098,
+ 16.4500000000001,
+ 16.5000000000001,
+ 16.5500000000001,
+ 16.6000000000001,
+ 16.6500000000001,
+ 16.700000000000102,
+ 16.750000000000103,
+ 16.800000000000104,
+ 16.850000000000104,
+ 16.900000000000105,
+ 16.950000000000106,
+ 17.000000000000107,
+ 17.050000000000107,
+ 17.100000000000108,
+ 17.15000000000011,
+ 17.20000000000011,
+ 17.25000000000011,
+ 17.30000000000011,
+ 17.35000000000011,
+ 17.400000000000112,
+ 17.450000000000113,
+ 17.500000000000114,
+ 17.550000000000114,
+ 17.600000000000115,
+ 17.650000000000116,
+ 17.700000000000117,
+ 17.750000000000117,
+ 17.800000000000118,
+ 17.85000000000012,
+ 17.90000000000012,
+ 17.95000000000012,
+ 18.00000000000012,
+ 18.05000000000012,
+ 18.100000000000122,
+ 18.150000000000123,
+ 18.200000000000124,
+ 18.250000000000124,
+ 18.300000000000125,
+ 18.350000000000126,
+ 18.400000000000126,
+ 18.450000000000127,
+ 18.500000000000128,
+ 18.55000000000013,
+ 18.60000000000013,
+ 18.65000000000013,
+ 18.70000000000013,
+ 18.75000000000013,
+ 18.800000000000132,
+ 18.850000000000133,
+ 18.900000000000134,
+ 18.950000000000134,
+ 19.000000000000135,
+ 19.050000000000136,
+ 19.100000000000136,
+ 19.150000000000137,
+ 19.200000000000138,
+ 19.25000000000014,
+ 19.30000000000014,
+ 19.35000000000014,
+ 19.40000000000014,
+ 19.45000000000014,
+ 19.500000000000142,
+ 19.550000000000143,
+ 19.600000000000144,
+ 19.650000000000144,
+ 19.700000000000145,
+ 19.750000000000146,
+ 19.800000000000146,
+ 19.850000000000147,
+ 19.900000000000148,
+ 19.95000000000015,
+ 20.00000000000015,
+ 20.05000000000015,
+ 20.10000000000015,
+ 20.15000000000015,
+ 20.200000000000152,
+ 20.250000000000153,
+ 20.300000000000153,
+ 20.350000000000154,
+ 20.400000000000155,
+ 20.450000000000156,
+ 20.500000000000156,
+ 20.550000000000157,
+ 20.600000000000158,
+ 20.65000000000016,
+ 20.70000000000016,
+ 20.75000000000016,
+ 20.80000000000016,
+ 20.85000000000016,
+ 20.900000000000162,
+ 20.950000000000163,
+ 21.000000000000163,
+ 21.050000000000164,
+ 21.100000000000165,
+ 21.150000000000166,
+ 21.200000000000166,
+ 21.250000000000167,
+ 21.300000000000168,
+ 21.35000000000017,
+ 21.40000000000017,
+ 21.45000000000017,
+ 21.50000000000017,
+ 21.55000000000017,
+ 21.600000000000172,
+ 21.650000000000173,
+ 21.700000000000173,
+ 21.750000000000174,
+ 21.800000000000175,
+ 21.850000000000176,
+ 21.900000000000176,
+ 21.950000000000177,
+ 22.000000000000178,
+ 22.05000000000018,
+ 22.10000000000018,
+ 22.15000000000018,
+ 22.20000000000018,
+ 22.25000000000018,
+ 22.300000000000182,
+ 22.350000000000183,
+ 22.400000000000183,
+ 22.450000000000184,
+ 22.500000000000185,
+ 22.550000000000185,
+ 22.600000000000186,
+ 22.650000000000187,
+ 22.700000000000188,
+ 22.75000000000019,
+ 22.80000000000019,
+ 22.85000000000019,
+ 22.90000000000019,
+ 22.95000000000019,
+ 23.000000000000192,
+ 23.050000000000193,
+ 23.100000000000193,
+ 23.150000000000194,
+ 23.200000000000195,
+ 23.250000000000195,
+ 23.300000000000196,
+ 23.350000000000197,
+ 23.400000000000198,
+ 23.4500000000002,
+ 23.5000000000002,
+ 23.5500000000002,
+ 23.6000000000002,
+ 23.6500000000002,
+ 23.700000000000202,
+ 23.750000000000203,
+ 23.800000000000203,
+ 23.850000000000204,
+ 23.900000000000205,
+ 23.950000000000205,
+ 24.000000000000206,
+ 24.050000000000207,
+ 24.100000000000207,
+ 24.150000000000208,
+ 24.20000000000021,
+ 24.25000000000021,
+ 24.30000000000021,
+ 24.35000000000021,
+ 24.40000000000021,
+ 24.450000000000212,
+ 24.500000000000213,
+ 24.550000000000214,
+ 24.600000000000215,
+ 24.650000000000215,
+ 24.700000000000216,
+ 24.750000000000217,
+ 24.800000000000217,
+ 24.850000000000218,
+ 24.90000000000022,
+ 24.95000000000022,
+ 25.00000000000022,
+ 25.05000000000022,
+ 25.10000000000022,
+ 25.150000000000222,
+ 25.200000000000223,
+ 25.250000000000224,
+ 25.300000000000225,
+ 25.350000000000225,
+ 25.400000000000226,
+ 25.450000000000227,
+ 25.500000000000227,
+ 25.550000000000228,
+ 25.60000000000023,
+ 25.65000000000023,
+ 25.70000000000023,
+ 25.75000000000023,
+ 25.80000000000023,
+ 25.850000000000232,
+ 25.900000000000233,
+ 25.950000000000234,
+ 26.000000000000234,
+ 26.050000000000235,
+ 26.100000000000236,
+ 26.150000000000237,
+ 26.200000000000237,
+ 26.250000000000238,
+ 26.30000000000024,
+ 26.35000000000024,
+ 26.40000000000024,
+ 26.45000000000024,
+ 26.50000000000024,
+ 26.550000000000242,
+ 26.600000000000243,
+ 26.650000000000244,
+ 26.700000000000244,
+ 26.750000000000245,
+ 26.800000000000246,
+ 26.850000000000247,
+ 26.900000000000247,
+ 26.950000000000248,
+ 27.00000000000025,
+ 27.05000000000025,
+ 27.10000000000025,
+ 27.15000000000025,
+ 27.20000000000025,
+ 27.250000000000252,
+ 27.300000000000253,
+ 27.350000000000254,
+ 27.400000000000254,
+ 27.450000000000255,
+ 27.500000000000256,
+ 27.550000000000257,
+ 27.600000000000257,
+ 27.650000000000258,
+ 27.70000000000026,
+ 27.75000000000026,
+ 27.80000000000026,
+ 27.85000000000026,
+ 27.90000000000026,
+ 27.950000000000262,
+ 28.000000000000263,
+ 28.050000000000264,
+ 28.100000000000264,
+ 28.150000000000265,
+ 28.200000000000266,
+ 28.250000000000266,
+ 28.300000000000267,
+ 28.350000000000268,
+ 28.40000000000027,
+ 28.45000000000027,
+ 28.50000000000027,
+ 28.55000000000027,
+ 28.60000000000027,
+ 28.650000000000272,
+ 28.700000000000273,
+ 28.750000000000274,
+ 28.800000000000274,
+ 28.850000000000275,
+ 28.900000000000276,
+ 28.950000000000276,
+ 29.000000000000277,
+ 29.050000000000278,
+ 29.10000000000028,
+ 29.15000000000028,
+ 29.20000000000028,
+ 29.25000000000028,
+ 29.30000000000028,
+ 29.350000000000282,
+ 29.400000000000283,
+ 29.450000000000284,
+ 29.500000000000284,
+ 29.550000000000285,
+ 29.600000000000286,
+ 29.650000000000286,
+ 29.700000000000287,
+ 29.750000000000288,
+ 29.80000000000029,
+ 29.85000000000029,
+ 29.90000000000029,
+ 29.95000000000029,
+ 30.00000000000029,
+ 30.050000000000292,
+ 30.100000000000293,
+ 30.150000000000293,
+ 30.200000000000294,
+ 30.250000000000295,
+ 30.300000000000296,
+ 30.350000000000296,
+ 30.400000000000297,
+ 30.450000000000298,
+ 30.5000000000003,
+ 30.5500000000003,
+ 30.6000000000003,
+ 30.6500000000003,
+ 30.7000000000003,
+ 30.750000000000302,
+ 30.800000000000303,
+ 30.850000000000303,
+ 30.900000000000304,
+ 30.950000000000305,
+ 31.000000000000306,
+ 31.050000000000306,
+ 31.100000000000307,
+ 31.150000000000308,
+ 31.20000000000031,
+ 31.25000000000031,
+ 31.30000000000031,
+ 31.35000000000031,
+ 31.40000000000031,
+ 31.450000000000312,
+ 31.500000000000313,
+ 31.550000000000313,
+ 31.600000000000314,
+ 31.650000000000315,
+ 31.700000000000315,
+ 31.750000000000316,
+ 31.800000000000317,
+ 31.850000000000318,
+ 31.90000000000032,
+ 31.95000000000032,
+ 32.00000000000032,
+ 32.05000000000032,
+ 32.100000000000314,
+ 32.15000000000031,
+ 32.20000000000031,
+ 32.250000000000306,
+ 32.3000000000003,
+ 32.3500000000003,
+ 32.4000000000003,
+ 32.450000000000294,
+ 32.50000000000029,
+ 32.55000000000029,
+ 32.600000000000286,
+ 32.65000000000028,
+ 32.70000000000028,
+ 32.75000000000028,
+ 32.800000000000274,
+ 32.85000000000027,
+ 32.90000000000027,
+ 32.950000000000266,
+ 33.00000000000026,
+ 33.05000000000026,
+ 33.10000000000026,
+ 33.150000000000254,
+ 33.20000000000025,
+ 33.25000000000025,
+ 33.300000000000246,
+ 33.35000000000024,
+ 33.40000000000024,
+ 33.45000000000024,
+ 33.500000000000234,
+ 33.55000000000023,
+ 33.60000000000023,
+ 33.650000000000226,
+ 33.70000000000022,
+ 33.75000000000022,
+ 33.80000000000022,
+ 33.850000000000215,
+ 33.90000000000021,
+ 33.95000000000021,
+ 34.000000000000206,
+ 34.0500000000002,
+ 34.1000000000002,
+ 34.1500000000002,
+ 34.200000000000195,
+ 34.25000000000019,
+ 34.30000000000019,
+ 34.350000000000186,
+ 34.40000000000018,
+ 34.45000000000018,
+ 34.50000000000018,
+ 34.550000000000175,
+ 34.60000000000017,
+ 34.65000000000017,
+ 34.700000000000166,
+ 34.75000000000016,
+ 34.80000000000016,
+ 34.85000000000016,
+ 34.900000000000155,
+ 34.95000000000015,
+ 35.00000000000015,
+ 35.050000000000146,
+ 35.10000000000014,
+ 35.15000000000014,
+ 35.20000000000014,
+ 35.250000000000135,
+ 35.30000000000013,
+ 35.35000000000013,
+ 35.40000000000013,
+ 35.450000000000124,
+ 35.50000000000012,
+ 35.55000000000012,
+ 35.600000000000115,
+ 35.65000000000011,
+ 35.70000000000011,
+ 35.75000000000011,
+ 35.800000000000104,
+ 35.8500000000001,
+ 35.9000000000001,
+ 35.950000000000095,
+ 36.00000000000009,
+ 36.05000000000009,
+ 36.10000000000009,
+ 36.150000000000084,
+ 36.20000000000008,
+ 36.25000000000008,
+ 36.300000000000075,
+ 36.35000000000007,
+ 36.40000000000007,
+ 36.45000000000007,
+ 36.500000000000064,
+ 36.55000000000006,
+ 36.60000000000006,
+ 36.650000000000055,
+ 36.70000000000005,
+ 36.75000000000005,
+ 36.80000000000005,
+ 36.850000000000044,
+ 36.90000000000004,
+ 36.95000000000004,
+ 37.000000000000036,
+ 37.05000000000003,
+ 37.10000000000003,
+ 37.15000000000003,
+ 37.200000000000024,
+ 37.25000000000002,
+ 37.30000000000002,
+ 37.350000000000016,
+ 37.40000000000001,
+ 37.45000000000001,
+ 37.50000000000001,
+ 37.550000000000004,
+ 37.6,
+ 37.65,
+ 37.699999999999996,
+ 37.74999999999999,
+ 37.79999999999999,
+ 37.84999999999999,
+ 37.899999999999984,
+ 37.94999999999998,
+ 37.99999999999998,
+ 38.049999999999976,
+ 38.09999999999997,
+ 38.14999999999997,
+ 38.19999999999997,
+ 38.249999999999964,
+ 38.29999999999996,
+ 38.34999999999996,
+ 38.399999999999956,
+ 38.44999999999995,
+ 38.49999999999995,
+ 38.54999999999995,
+ 38.599999999999945,
+ 38.64999999999994,
+ 38.69999999999994,
+ 38.749999999999936,
+ 38.79999999999993,
+ 38.84999999999993,
+ 38.89999999999993,
+ 38.949999999999925,
+ 38.99999999999992,
+ 39.04999999999992,
+ 39.099999999999916,
+ 39.14999999999991,
+ 39.19999999999991,
+ 39.24999999999991,
+ 39.299999999999905,
+ 39.3499999999999,
+ 39.3999999999999,
+ 39.449999999999896,
+ 39.49999999999989,
+ 39.54999999999989,
+ 39.59999999999989,
+ 39.649999999999885,
+ 39.69999999999988,
+ 39.74999999999988,
+ 39.799999999999876,
+ 39.84999999999987,
+ 39.89999999999987,
+ 39.94999999999987,
+ 39.999999999999865,
+ 40.04999999999986,
+ 40.09999999999986,
+ 40.14999999999986,
+ 40.199999999999854,
+ 40.24999999999985,
+ 40.29999999999985,
+ 40.349999999999845,
+ 40.39999999999984,
+ 40.44999999999984,
+ 40.49999999999984,
+ 40.549999999999834,
+ 40.59999999999983,
+ 40.64999999999983,
+ 40.699999999999825,
+ 40.74999999999982,
+ 40.79999999999982,
+ 40.84999999999982,
+ 40.899999999999814,
+ 40.94999999999981,
+ 40.99999999999981,
+ 41.049999999999805,
+ 41.0999999999998,
+ 41.1499999999998,
+ 41.1999999999998,
+ 41.249999999999794,
+ 41.29999999999979,
+ 41.34999999999979,
+ 41.399999999999785,
+ 41.44999999999978,
+ 41.49999999999978,
+ 41.54999999999978,
+ 41.599999999999774,
+ 41.64999999999977,
+ 41.69999999999977,
+ 41.749999999999766,
+ 41.79999999999976,
+ 41.84999999999976,
+ 41.89999999999976,
+ 41.949999999999754,
+ 41.99999999999975,
+ 42.04999999999975,
+ 42.099999999999746,
+ 42.14999999999974,
+ 42.19999999999974,
+ 42.24999999999974,
+ 42.299999999999734,
+ 42.34999999999973,
+ 42.39999999999973,
+ 42.449999999999726,
+ 42.49999999999972,
+ 42.54999999999972,
+ 42.59999999999972,
+ 42.649999999999714,
+ 42.69999999999971,
+ 42.74999999999971,
+ 42.799999999999706,
+ 42.8499999999997,
+ 42.8999999999997,
+ 42.9499999999997,
+ 42.999999999999694,
+ 43.04999999999969,
+ 43.09999999999969,
+ 43.149999999999686,
+ 43.19999999999968,
+ 43.24999999999968,
+ 43.29999999999968,
+ 43.349999999999675,
+ 43.39999999999967,
+ 43.44999999999967,
+ 43.499999999999666,
+ 43.54999999999966,
+ 43.59999999999966,
+ 43.64999999999966,
+ 43.699999999999655,
+ 43.74999999999965,
+ 43.79999999999965,
+ 43.849999999999646,
+ 43.89999999999964,
+ 43.94999999999964,
+ 43.99999999999964,
+ 44.049999999999635,
+ 44.09999999999963,
+ 44.14999999999963,
+ 44.199999999999626,
+ 44.24999999999962,
+ 44.29999999999962,
+ 44.34999999999962,
+ 44.399999999999615,
+ 44.44999999999961,
+ 44.49999999999961,
+ 44.549999999999606,
+ 44.5999999999996,
+ 44.6499999999996,
+ 44.6999999999996,
+ 44.749999999999595,
+ 44.79999999999959,
+ 44.84999999999959,
+ 44.89999999999959,
+ 44.949999999999584,
+ 44.99999999999958,
+ 45.04999999999958,
+ 45.099999999999575,
+ 45.14999999999957,
+ 45.19999999999957,
+ 45.24999999999957,
+ 45.299999999999564,
+ 45.34999999999956,
+ 45.39999999999956,
+ 45.449999999999555,
+ 45.49999999999955,
+ 45.54999999999955,
+ 45.59999999999955,
+ 45.649999999999544,
+ 45.69999999999954,
+ 45.74999999999954,
+ 45.799999999999535,
+ 45.84999999999953,
+ 45.89999999999953,
+ 45.94999999999953,
+ 45.999999999999524,
+ 46.04999999999952,
+ 46.09999999999952,
+ 46.149999999999515,
+ 46.19999999999951,
+ 46.24999999999951,
+ 46.29999999999951,
+ 46.349999999999504,
+ 46.3999999999995,
+ 46.4499999999995,
+ 46.499999999999496,
+ 46.54999999999949,
+ 46.59999999999949,
+ 46.64999999999949,
+ 46.699999999999484,
+ 46.74999999999948,
+ 46.79999999999948,
+ 46.849999999999476,
+ 46.89999999999947,
+ 46.94999999999947,
+ 46.99999999999947,
+ 47.049999999999464,
+ 47.09999999999946,
+ 47.14999999999946,
+ 47.199999999999456,
+ 47.24999999999945,
+ 47.29999999999945,
+ 47.34999999999945,
+ 47.399999999999444,
+ 47.44999999999944,
+ 47.49999999999944,
+ 47.549999999999436,
+ 47.59999999999943,
+ 47.64999999999943,
+ 47.69999999999943,
+ 47.749999999999424,
+ 47.79999999999942,
+ 47.84999999999942,
+ 47.899999999999416,
+ 47.94999999999941,
+ 47.99999999999941,
+ 48.04999999999941,
+ 48.099999999999405,
+ 48.1499999999994,
+ 48.1999999999994,
+ 48.249999999999396,
+ 48.29999999999939,
+ 48.34999999999939,
+ 48.39999999999939,
+ 48.449999999999385,
+ 48.49999999999938,
+ 48.54999999999938,
+ 48.599999999999376,
+ 48.64999999999937,
+ 48.69999999999937,
+ 48.74999999999937,
+ 48.799999999999365,
+ 48.84999999999936,
+ 48.89999999999936,
+ 48.949999999999356,
+ 48.99999999999935,
+ 49.04999999999935,
+ 49.09999999999935,
+ 49.149999999999345,
+ 49.19999999999934,
+ 49.24999999999934,
+ 49.299999999999336,
+ 49.34999999999933,
+ 49.39999999999933,
+ 49.44999999999933,
+ 49.499999999999325,
+ 49.54999999999932,
+ 49.59999999999932,
+ 49.64999999999932,
+ 49.699999999999314,
+ 49.74999999999931,
+ 49.79999999999931,
+ 49.849999999999305,
+ 49.8999999999993,
+ 49.9499999999993,
+ 49.9999999999993,
+ 50.049999999999294,
+ 50.09999999999929,
+ 50.14999999999929,
+ 50.199999999999285,
+ 50.24999999999928,
+ 50.29999999999928,
+ 50.34999999999928,
+ 50.399999999999274,
+ 50.44999999999927,
+ 50.49999999999927,
+ 50.549999999999265,
+ 50.59999999999926,
+ 50.64999999999926,
+ 50.69999999999926,
+ 50.749999999999254,
+ 50.79999999999925,
+ 50.84999999999925,
+ 50.899999999999245,
+ 50.94999999999924,
+ 50.99999999999924,
+ 51.04999999999924,
+ 51.099999999999234,
+ 51.14999999999923,
+ 51.19999999999923,
+ 51.249999999999226,
+ 51.29999999999922,
+ 51.34999999999922,
+ 51.39999999999922,
+ 51.449999999999214,
+ 51.49999999999921,
+ 51.54999999999921,
+ 51.599999999999206,
+ 51.6499999999992,
+ 51.6999999999992,
+ 51.7499999999992,
+ 51.799999999999194,
+ 51.84999999999919,
+ 51.89999999999919,
+ 51.949999999999186,
+ 51.99999999999918,
+ 52.04999999999918,
+ 52.09999999999918,
+ 52.149999999999174,
+ 52.19999999999917,
+ 52.24999999999917,
+ 52.299999999999166,
+ 52.34999999999916,
+ 52.39999999999916,
+ 52.44999999999916,
+ 52.499999999999154,
+ 52.54999999999915,
+ 52.59999999999915,
+ 52.649999999999146,
+ 52.69999999999914,
+ 52.74999999999914,
+ 52.79999999999914,
+ 52.849999999999135,
+ 52.89999999999913,
+ 52.94999999999913,
+ 52.999999999999126,
+ 53.04999999999912,
+ 53.09999999999912,
+ 53.14999999999912,
+ 53.199999999999115,
+ 53.24999999999911,
+ 53.29999999999911,
+ 53.349999999999106,
+ 53.3999999999991,
+ 53.4499999999991,
+ 53.4999999999991,
+ 53.549999999999095,
+ 53.59999999999909,
+ 53.64999999999909,
+ 53.699999999999086,
+ 53.74999999999908,
+ 53.79999999999908,
+ 53.84999999999908,
+ 53.899999999999075,
+ 53.94999999999907,
+ 53.99999999999907,
+ 54.049999999999066,
+ 54.09999999999906,
+ 54.14999999999906,
+ 54.19999999999906,
+ 54.249999999999055,
+ 54.29999999999905,
+ 54.34999999999905,
+ 54.39999999999905,
+ 54.449999999999044,
+ 54.49999999999904,
+ 54.54999999999904,
+ 54.599999999999035,
+ 54.64999999999903,
+ 54.69999999999903,
+ 54.74999999999903,
+ 54.799999999999024,
+ 54.84999999999902,
+ 54.89999999999902,
+ 54.949999999999015,
+ 54.99999999999901,
+ 55.04999999999901,
+ 55.09999999999901,
+ 55.149999999999004,
+ 55.199999999999,
+ 55.249999999999,
+ 55.299999999998995,
+ 55.34999999999899,
+ 55.39999999999899,
+ 55.44999999999899,
+ 55.499999999998984,
+ 55.54999999999898,
+ 55.59999999999898,
+ 55.649999999998975,
+ 55.69999999999897,
+ 55.74999999999897,
+ 55.79999999999897,
+ 55.849999999998964,
+ 55.89999999999896,
+ 55.94999999999896,
+ 55.999999999998956,
+ 56.04999999999895,
+ 56.09999999999895,
+ 56.14999999999895,
+ 56.199999999998944,
+ 56.24999999999894,
+ 56.29999999999894,
+ 56.349999999998936,
+ 56.39999999999893,
+ 56.44999999999893,
+ 56.49999999999893,
+ 56.549999999998924,
+ 56.59999999999892,
+ 56.64999999999892,
+ 56.699999999998916,
+ 56.74999999999891,
+ 56.79999999999891,
+ 56.84999999999891,
+ 56.899999999998904,
+ 56.9499999999989,
+ 56.9999999999989,
+ 57.049999999998896,
+ 57.09999999999889,
+ 57.14999999999889,
+ 57.19999999999889,
+ 57.249999999998884,
+ 57.29999999999888,
+ 57.34999999999888,
+ 57.399999999998876,
+ 57.44999999999887,
+ 57.49999999999887,
+ 57.54999999999887,
+ 57.599999999998865,
+ 57.64999999999886,
+ 57.69999999999886,
+ 57.749999999998856,
+ 57.79999999999885,
+ 57.84999999999885,
+ 57.89999999999885,
+ 57.949999999998845,
+ 57.99999999999884,
+ 58.04999999999884,
+ 58.099999999998836,
+ 58.14999999999883,
+ 58.19999999999883,
+ 58.24999999999883,
+ 58.299999999998825,
+ 58.34999999999882,
+ 58.39999999999882,
+ 58.449999999998816,
+ 58.49999999999881,
+ 58.54999999999881,
+ 58.59999999999881,
+ 58.649999999998805,
+ 58.6999999999988,
+ 58.7499999999988,
+ 58.799999999998796,
+ 58.84999999999879,
+ 58.89999999999879,
+ 58.94999999999879,
+ 58.999999999998785,
+ 59.04999999999878,
+ 59.09999999999878,
+ 59.149999999998776,
+ 59.199999999998774,
+ 59.24999999999877,
+ 59.29999999999877,
+ 59.349999999998765,
+ 59.39999999999876,
+ 59.44999999999876,
+ 59.49999999999876,
+ 59.549999999998754,
+ 59.59999999999875,
+ 59.64999999999875,
+ 59.699999999998745,
+ 59.74999999999874,
+ 59.79999999999874,
+ 59.84999999999874,
+ 59.899999999998734,
+ 59.94999999999873,
+ 59.99999999999873,
+ 60.049999999998725,
+ 60.09999999999872,
+ 60.14999999999872,
+ 60.19999999999872,
+ 60.249999999998714,
+ 60.29999999999871,
+ 60.34999999999871,
+ 60.399999999998705,
+ 60.4499999999987,
+ 60.4999999999987,
+ 60.5499999999987,
+ 60.599999999998694,
+ 60.64999999999869,
+ 60.69999999999869,
+ 60.749999999998685,
+ 60.79999999999868,
+ 60.84999999999868,
+ 60.89999999999868,
+ 60.949999999998674,
+ 60.99999999999867,
+ 61.04999999999867,
+ 61.099999999998666,
+ 61.14999999999866,
+ 61.19999999999866,
+ 61.24999999999866,
+ 61.299999999998654,
+ 61.34999999999865,
+ 61.39999999999865,
+ 61.449999999998646,
+ 61.49999999999864,
+ 61.54999999999864,
+ 61.59999999999864,
+ 61.649999999998634,
+ 61.69999999999863,
+ 61.74999999999863,
+ 61.799999999998626,
+ 61.84999999999862,
+ 61.89999999999862,
+ 61.94999999999862,
+ 61.999999999998614,
+ 62.04999999999861,
+ 62.09999999999861,
+ 62.149999999998606,
+ 62.1999999999986,
+ 62.2499999999986,
+ 62.2999999999986,
+ 62.349999999998595,
+ 62.39999999999859,
+ 62.44999999999859,
+ 62.499999999998586,
+ 62.54999999999858,
+ 62.59999999999858,
+ 62.64999999999858,
+ 62.699999999998575,
+ 62.74999999999857,
+ 62.79999999999857,
+ 62.849999999998566,
+ 62.89999999999856,
+ 62.94999999999856,
+ 62.99999999999856,
+ 63.049999999998555,
+ 63.09999999999855,
+ 63.14999999999855,
+ 63.199999999998546,
+ 63.24999999999854,
+ 63.29999999999854,
+ 63.34999999999854,
+ 63.399999999998535,
+ 63.44999999999853,
+ 63.49999999999853,
+ 63.549999999998526,
+ 63.59999999999852,
+ 63.64999999999852,
+ 63.69999999999852,
+ 63.749999999998515,
+ 63.79999999999851,
+ 63.84999999999851,
+ 63.899999999998506,
+ 63.949999999998504,
+ 63.9999999999985,
+ 64.0499999999985,
+ 64.0999999999985,
+ 64.1499999999985,
+ 64.1999999999985,
+ 64.2499999999985,
+ 64.29999999999849,
+ 64.34999999999849,
+ 64.39999999999849,
+ 64.44999999999848,
+ 64.49999999999848,
+ 64.54999999999848,
+ 64.59999999999847,
+ 64.64999999999847,
+ 64.69999999999847,
+ 64.74999999999847,
+ 64.79999999999846,
+ 64.84999999999846,
+ 64.89999999999846,
+ 64.94999999999845,
+ 64.99999999999845,
+ 65.04999999999845,
+ 65.09999999999845,
+ 65.14999999999844,
+ 65.19999999999844,
+ 65.24999999999844,
+ 65.29999999999843,
+ 65.34999999999843,
+ 65.39999999999843,
+ 65.44999999999843,
+ 65.49999999999842,
+ 65.54999999999842,
+ 65.59999999999842,
+ 65.64999999999841,
+ 65.69999999999841,
+ 65.74999999999841,
+ 65.7999999999984,
+ 65.8499999999984,
+ 65.8999999999984,
+ 65.9499999999984,
+ 65.9999999999984,
+ 66.04999999999839,
+ 66.09999999999839,
+ 66.14999999999839,
+ 66.19999999999838,
+ 66.24999999999838,
+ 66.29999999999838,
+ 66.34999999999837,
+ 66.39999999999837,
+ 66.44999999999837,
+ 66.49999999999837,
+ 66.54999999999836,
+ 66.59999999999836,
+ 66.64999999999836,
+ 66.69999999999835,
+ 66.74999999999835,
+ 66.79999999999835,
+ 66.84999999999835,
+ 66.89999999999834,
+ 66.94999999999834,
+ 66.99999999999834,
+ 67.04999999999833,
+ 67.09999999999833,
+ 67.14999999999833,
+ 67.19999999999833,
+ 67.24999999999832,
+ 67.29999999999832,
+ 67.34999999999832,
+ 67.39999999999831,
+ 67.44999999999831,
+ 67.49999999999831,
+ 67.5499999999983,
+ 67.5999999999983,
+ 67.6499999999983,
+ 67.6999999999983,
+ 67.7499999999983,
+ 67.79999999999829,
+ 67.84999999999829,
+ 67.89999999999829,
+ 67.94999999999828,
+ 67.99999999999828,
+ 68.04999999999828,
+ 68.09999999999827,
+ 68.14999999999827,
+ 68.19999999999827,
+ 68.24999999999827,
+ 68.29999999999826,
+ 68.34999999999826,
+ 68.39999999999826,
+ 68.44999999999825,
+ 68.49999999999825,
+ 68.54999999999825,
+ 68.59999999999825,
+ 68.64999999999824,
+ 68.69999999999824,
+ 68.74999999999824,
+ 68.79999999999824,
+ 68.84999999999823,
+ 68.89999999999823,
+ 68.94999999999823,
+ 68.99999999999822,
+ 69.04999999999822,
+ 69.09999999999822,
+ 69.14999999999822,
+ 69.19999999999821,
+ 69.24999999999821,
+ 69.2999999999982,
+ 69.3499999999982,
+ 69.3999999999982,
+ 69.4499999999982,
+ 69.4999999999982,
+ 69.54999999999819,
+ 69.59999999999819,
+ 69.64999999999819,
+ 69.69999999999818,
+ 69.74999999999818,
+ 69.79999999999818,
+ 69.84999999999818,
+ 69.89999999999817,
+ 69.94999999999817,
+ 69.99999999999817,
+ 70.04999999999816,
+ 70.09999999999816,
+ 70.14999999999816,
+ 70.19999999999816,
+ 70.24999999999815,
+ 70.29999999999815,
+ 70.34999999999815,
+ 70.39999999999814,
+ 70.44999999999814,
+ 70.49999999999814,
+ 70.54999999999814,
+ 70.59999999999813,
+ 70.64999999999813,
+ 70.69999999999813,
+ 70.74999999999812,
+ 70.79999999999812,
+ 70.84999999999812,
+ 70.89999999999812,
+ 70.94999999999811,
+ 70.99999999999811,
+ 71.04999999999811,
+ 71.0999999999981,
+ 71.1499999999981,
+ 71.1999999999981,
+ 71.2499999999981,
+ 71.2999999999981,
+ 71.34999999999809,
+ 71.39999999999809,
+ 71.44999999999808,
+ 71.49999999999808,
+ 71.54999999999808,
+ 71.59999999999808,
+ 71.64999999999807,
+ 71.69999999999807,
+ 71.74999999999807,
+ 71.79999999999806,
+ 71.84999999999806,
+ 71.89999999999806,
+ 71.94999999999806,
+ 71.99999999999805,
+ 72.04999999999805,
+ 72.09999999999805,
+ 72.14999999999804,
+ 72.19999999999804,
+ 72.24999999999804,
+ 72.29999999999804,
+ 72.34999999999803,
+ 72.39999999999803,
+ 72.44999999999803,
+ 72.49999999999802,
+ 72.54999999999802,
+ 72.59999999999802,
+ 72.64999999999802,
+ 72.69999999999801,
+ 72.74999999999801,
+ 72.79999999999801,
+ 72.849999999998,
+ 72.899999999998,
+ 72.949999999998,
+ 72.999999999998,
+ 73.049999999998,
+ 73.09999999999799,
+ 73.14999999999799,
+ 73.19999999999798,
+ 73.24999999999798,
+ 73.29999999999798,
+ 73.34999999999798,
+ 73.39999999999797,
+ 73.44999999999797,
+ 73.49999999999797,
+ 73.54999999999797,
+ 73.59999999999796,
+ 73.64999999999796,
+ 73.69999999999796,
+ 73.74999999999795,
+ 73.79999999999795,
+ 73.84999999999795,
+ 73.89999999999795,
+ 73.94999999999794,
+ 73.99999999999794,
+ 74.04999999999794,
+ 74.09999999999793,
+ 74.14999999999793,
+ 74.19999999999793,
+ 74.24999999999793,
+ 74.29999999999792,
+ 74.34999999999792,
+ 74.39999999999792,
+ 74.44999999999791,
+ 74.49999999999791,
+ 74.54999999999791,
+ 74.5999999999979,
+ 74.6499999999979,
+ 74.6999999999979,
+ 74.7499999999979,
+ 74.7999999999979,
+ 74.84999999999789,
+ 74.89999999999789,
+ 74.94999999999789,
+ 74.99999999999788,
+ 75.04999999999788,
+ 75.09999999999788,
+ 75.14999999999787,
+ 75.19999999999787,
+ 75.24999999999787,
+ 75.29999999999787,
+ 75.34999999999786,
+ 75.39999999999786,
+ 75.44999999999786,
+ 75.49999999999785,
+ 75.54999999999785,
+ 75.59999999999785,
+ 75.64999999999785,
+ 75.69999999999784,
+ 75.74999999999784,
+ 75.79999999999784,
+ 75.84999999999783,
+ 75.89999999999783,
+ 75.94999999999783,
+ 75.99999999999783,
+ 76.04999999999782,
+ 76.09999999999782,
+ 76.14999999999782,
+ 76.19999999999781,
+ 76.24999999999781,
+ 76.29999999999781,
+ 76.3499999999978,
+ 76.3999999999978,
+ 76.4499999999978,
+ 76.4999999999978,
+ 76.5499999999978,
+ 76.59999999999779,
+ 76.64999999999779,
+ 76.69999999999779,
+ 76.74999999999778,
+ 76.79999999999778,
+ 76.84999999999778,
+ 76.89999999999777,
+ 76.94999999999777,
+ 76.99999999999777,
+ 77.04999999999777,
+ 77.09999999999776,
+ 77.14999999999776,
+ 77.19999999999776,
+ 77.24999999999775,
+ 77.29999999999775,
+ 77.34999999999775,
+ 77.39999999999775,
+ 77.44999999999774,
+ 77.49999999999774,
+ 77.54999999999774,
+ 77.59999999999773,
+ 77.64999999999773,
+ 77.69999999999773,
+ 77.74999999999773,
+ 77.79999999999772,
+ 77.84999999999772,
+ 77.89999999999772,
+ 77.94999999999771,
+ 77.99999999999771,
+ 78.04999999999771,
+ 78.0999999999977,
+ 78.1499999999977,
+ 78.1999999999977,
+ 78.2499999999977,
+ 78.2999999999977,
+ 78.34999999999769,
+ 78.39999999999769,
+ 78.44999999999769,
+ 78.49999999999768,
+ 78.54999999999768,
+ 78.59999999999768,
+ 78.64999999999768,
+ 78.69999999999767,
+ 78.74999999999767,
+ 78.79999999999767,
+ 78.84999999999766,
+ 78.89999999999766,
+ 78.94999999999766,
+ 78.99999999999766,
+ 79.04999999999765,
+ 79.09999999999765,
+ 79.14999999999765,
+ 79.19999999999764,
+ 79.24999999999764,
+ 79.29999999999764,
+ 79.34999999999764,
+ 79.39999999999763,
+ 79.44999999999763,
+ 79.49999999999763,
+ 79.54999999999762,
+ 79.59999999999762,
+ 79.64999999999762,
+ 79.69999999999762,
+ 79.74999999999761,
+ 79.79999999999761,
+ 79.8499999999976,
+ 79.8999999999976,
+ 79.9499999999976,
+ 79.9999999999976,
+ 80.0499999999976,
+ 80.09999999999759,
+ 80.14999999999759,
+ 80.19999999999759,
+ 80.24999999999758,
+ 80.29999999999758,
+ 80.34999999999758,
+ 80.39999999999758,
+ 80.44999999999757,
+ 80.49999999999757,
+ 80.54999999999757,
+ 80.59999999999756,
+ 80.64999999999756,
+ 80.69999999999756,
+ 80.74999999999756,
+ 80.79999999999755,
+ 80.84999999999755,
+ 80.89999999999755,
+ 80.94999999999754,
+ 80.99999999999754,
+ 81.04999999999754,
+ 81.09999999999754,
+ 81.14999999999753,
+ 81.19999999999753,
+ 81.24999999999753,
+ 81.29999999999752,
+ 81.34999999999752,
+ 81.39999999999752,
+ 81.44999999999752,
+ 81.49999999999751,
+ 81.54999999999751,
+ 81.59999999999751,
+ 81.6499999999975,
+ 81.6999999999975,
+ 81.7499999999975,
+ 81.7999999999975,
+ 81.8499999999975,
+ 81.89999999999749,
+ 81.94999999999749,
+ 81.99999999999748,
+ 82.04999999999748,
+ 82.09999999999748,
+ 82.14999999999748,
+ 82.19999999999747,
+ 82.24999999999747,
+ 82.29999999999747,
+ 82.34999999999746,
+ 82.39999999999746,
+ 82.44999999999746,
+ 82.49999999999746,
+ 82.54999999999745,
+ 82.59999999999745,
+ 82.64999999999745,
+ 82.69999999999744,
+ 82.74999999999744,
+ 82.79999999999744,
+ 82.84999999999744,
+ 82.89999999999743,
+ 82.94999999999743,
+ 82.99999999999743,
+ 83.04999999999742,
+ 83.09999999999742,
+ 83.14999999999742,
+ 83.19999999999742,
+ 83.24999999999741,
+ 83.29999999999741,
+ 83.34999999999741,
+ 83.3999999999974,
+ 83.4499999999974,
+ 83.4999999999974,
+ 83.5499999999974,
+ 83.5999999999974,
+ 83.64999999999739,
+ 83.69999999999739,
+ 83.74999999999739,
+ 83.79999999999738,
+ 83.84999999999738,
+ 83.89999999999738,
+ 83.94999999999737,
+ 83.99999999999737,
+ 84.04999999999737,
+ 84.09999999999737,
+ 84.14999999999736,
+ 84.19999999999736,
+ 84.24999999999736,
+ 84.29999999999735,
+ 84.34999999999735,
+ 84.39999999999735,
+ 84.44999999999735,
+ 84.49999999999734,
+ 84.54999999999734,
+ 84.59999999999734,
+ 84.64999999999733,
+ 84.69999999999733,
+ 84.74999999999733,
+ 84.79999999999733,
+ 84.84999999999732,
+ 84.89999999999732,
+ 84.94999999999732,
+ 84.99999999999731,
+ 85.04999999999731,
+ 85.09999999999731,
+ 85.1499999999973,
+ 85.1999999999973,
+ 85.2499999999973,
+ 85.2999999999973,
+ 85.3499999999973,
+ 85.39999999999729,
+ 85.44999999999729,
+ 85.49999999999729,
+ 85.54999999999728,
+ 85.59999999999728,
+ 85.64999999999728,
+ 85.69999999999727,
+ 85.74999999999727,
+ 85.79999999999727,
+ 85.84999999999727,
+ 85.89999999999726,
+ 85.94999999999726,
+ 85.99999999999726,
+ 86.04999999999725,
+ 86.09999999999725,
+ 86.14999999999725,
+ 86.19999999999725,
+ 86.24999999999724,
+ 86.29999999999724,
+ 86.34999999999724,
+ 86.39999999999723,
+ 86.44999999999723,
+ 86.49999999999723,
+ 86.54999999999723,
+ 86.59999999999722,
+ 86.64999999999722,
+ 86.69999999999722,
+ 86.74999999999721,
+ 86.79999999999721,
+ 86.84999999999721,
+ 86.8999999999972,
+ 86.9499999999972,
+ 86.9999999999972,
+ 87.0499999999972,
+ 87.0999999999972,
+ 87.14999999999719,
+ 87.19999999999719,
+ 87.24999999999719,
+ 87.29999999999718,
+ 87.34999999999718,
+ 87.39999999999718,
+ 87.44999999999717,
+ 87.49999999999717,
+ 87.54999999999717,
+ 87.59999999999717,
+ 87.64999999999716,
+ 87.69999999999716,
+ 87.74999999999716,
+ 87.79999999999715,
+ 87.84999999999715,
+ 87.89999999999715,
+ 87.94999999999715,
+ 87.99999999999714,
+ 88.04999999999714,
+ 88.09999999999714,
+ 88.14999999999714,
+ 88.19999999999713,
+ 88.24999999999713,
+ 88.29999999999713,
+ 88.34999999999712,
+ 88.39999999999712,
+ 88.44999999999712,
+ 88.49999999999712,
+ 88.54999999999711,
+ 88.59999999999711,
+ 88.6499999999971,
+ 88.6999999999971,
+ 88.7499999999971,
+ 88.7999999999971,
+ 88.8499999999971,
+ 88.89999999999709,
+ 88.94999999999709,
+ 88.99999999999709,
+ 89.04999999999708,
+ 89.09999999999708,
+ 89.14999999999708,
+ 89.19999999999708,
+ 89.24999999999707,
+ 89.29999999999707,
+ 89.34999999999707,
+ 89.39999999999706,
+ 89.44999999999706,
+ 89.49999999999706,
+ 89.54999999999706,
+ 89.59999999999705,
+ 89.64999999999705,
+ 89.69999999999705,
+ 89.74999999999704,
+ 89.79999999999704,
+ 89.84999999999704,
+ 89.89999999999704,
+ 89.94999999999703,
+ 89.99999999999703,
+ 90.04999999999703,
+ 90.09999999999702,
+ 90.14999999999702,
+ 90.19999999999702,
+ 90.24999999999702,
+ 90.29999999999701,
+ 90.34999999999701,
+ 90.39999999999701,
+ 90.449999999997,
+ 90.499999999997,
+ 90.549999999997,
+ 90.599999999997,
+ 90.649999999997,
+ 90.69999999999699,
+ 90.74999999999699,
+ 90.79999999999698,
+ 90.84999999999698,
+ 90.89999999999698,
+ 90.94999999999698,
+ 90.99999999999697,
+ 91.04999999999697,
+ 91.09999999999697,
+ 91.14999999999696,
+ 91.19999999999696,
+ 91.24999999999696,
+ 91.29999999999696,
+ 91.34999999999695,
+ 91.39999999999695,
+ 91.44999999999695,
+ 91.49999999999694,
+ 91.54999999999694,
+ 91.59999999999694,
+ 91.64999999999694,
+ 91.69999999999693,
+ 91.74999999999693,
+ 91.79999999999693,
+ 91.84999999999692,
+ 91.89999999999692,
+ 91.94999999999692,
+ 91.99999999999692,
+ 92.04999999999691,
+ 92.09999999999691,
+ 92.14999999999691,
+ 92.1999999999969,
+ 92.2499999999969,
+ 92.2999999999969,
+ 92.3499999999969,
+ 92.3999999999969,
+ 92.44999999999689,
+ 92.49999999999689,
+ 92.54999999999688,
+ 92.59999999999688,
+ 92.64999999999688,
+ 92.69999999999688,
+ 92.74999999999687,
+ 92.79999999999687,
+ 92.84999999999687,
+ 92.89999999999687,
+ 92.94999999999686,
+ 92.99999999999686,
+ 93.04999999999686,
+ 93.09999999999685,
+ 93.14999999999685,
+ 93.19999999999685,
+ 93.24999999999685,
+ 93.29999999999684,
+ 93.34999999999684,
+ 93.39999999999684,
+ 93.44999999999683,
+ 93.49999999999683,
+ 93.54999999999683,
+ 93.59999999999683,
+ 93.64999999999682,
+ 93.69999999999682,
+ 93.74999999999682,
+ 93.79999999999681,
+ 93.84999999999681,
+ 93.89999999999681,
+ 93.9499999999968,
+ 93.9999999999968,
+ 94.0499999999968,
+ 94.0999999999968,
+ 94.1499999999968,
+ 94.19999999999679,
+ 94.24999999999679,
+ 94.29999999999679,
+ 94.34999999999678,
+ 94.39999999999678,
+ 94.44999999999678,
+ 94.49999999999677,
+ 94.54999999999677,
+ 94.59999999999677,
+ 94.64999999999677,
+ 94.69999999999676,
+ 94.74999999999676,
+ 94.79999999999676,
+ 94.84999999999675,
+ 94.89999999999675,
+ 94.94999999999675,
+ 94.99999999999675,
+ 95.04999999999674,
+ 95.09999999999674,
+ 95.14999999999674,
+ 95.19999999999673,
+ 95.24999999999673,
+ 95.29999999999673,
+ 95.34999999999673,
+ 95.39999999999672,
+ 95.44999999999672,
+ 95.49999999999672,
+ 95.54999999999671,
+ 95.59999999999671,
+ 95.64999999999671,
+ 95.6999999999967,
+ 95.7499999999967,
+ 95.7999999999967,
+ 95.8499999999967,
+ 95.8999999999967,
+ 95.94999999999669,
+ 95.99999999999669,
+ 96.04999999999669,
+ 96.09999999999668,
+ 96.14999999999668,
+ 96.19999999999668,
+ 96.24999999999667,
+ 96.29999999999667,
+ 96.34999999999667,
+ 96.39999999999667,
+ 96.44999999999666,
+ 96.49999999999666,
+ 96.54999999999666,
+ 96.59999999999665,
+ 96.64999999999665,
+ 96.69999999999665,
+ 96.74999999999665,
+ 96.79999999999664,
+ 96.84999999999664,
+ 96.89999999999664,
+ 96.94999999999663,
+ 96.99999999999663,
+ 97.04999999999663,
+ 97.09999999999663,
+ 97.14999999999662,
+ 97.19999999999662,
+ 97.24999999999662,
+ 97.29999999999661,
+ 97.34999999999661,
+ 97.39999999999661,
+ 97.4499999999966,
+ 97.4999999999966,
+ 97.5499999999966,
+ 97.5999999999966,
+ 97.6499999999966,
+ 97.69999999999659,
+ 97.74999999999659,
+ 97.79999999999659,
+ 97.84999999999658,
+ 97.89999999999658,
+ 97.94999999999658,
+ 97.99999999999658,
+ 98.04999999999657,
+ 98.09999999999657,
+ 98.14999999999657,
+ 98.19999999999656,
+ 98.24999999999656,
+ 98.29999999999656,
+ 98.34999999999656,
+ 98.39999999999655,
+ 98.44999999999655,
+ 98.49999999999655,
+ 98.54999999999654,
+ 98.59999999999654,
+ 98.64999999999654,
+ 98.69999999999654,
+ 98.74999999999653,
+ 98.79999999999653,
+ 98.84999999999653,
+ 98.89999999999652,
+ 98.94999999999652,
+ 98.99999999999652,
+ 99.04999999999652,
+ 99.09999999999651,
+ 99.14999999999651,
+ 99.1999999999965,
+ 99.2499999999965,
+ 99.2999999999965,
+ 99.3499999999965,
+ 99.3999999999965,
+ 99.44999999999649,
+ 99.49999999999649,
+ 99.54999999999649,
+ 99.59999999999648,
+ 99.64999999999648,
+ 99.69999999999648,
+ 99.74999999999648,
+ 99.79999999999647,
+ 99.84999999999647,
+ 99.89999999999647,
+ 99.94999999999646,
+ 99.99999999999646,
+ 100.04999999999646,
+ 100.09999999999646,
+ 100.14999999999645,
+ 100.19999999999645,
+ 100.24999999999645,
+ 100.29999999999644,
+ 100.34999999999644,
+ 100.39999999999644,
+ 100.44999999999644,
+ 100.49999999999643,
+ 100.54999999999643,
+ 100.59999999999643,
+ 100.64999999999642,
+ 100.69999999999642,
+ 100.74999999999642,
+ 100.79999999999642,
+ 100.84999999999641,
+ 100.89999999999641,
+ 100.94999999999641,
+ 100.9999999999964,
+ 101.0499999999964,
+ 101.0999999999964,
+ 101.1499999999964,
+ 101.1999999999964,
+ 101.24999999999639,
+ 101.29999999999639,
+ 101.34999999999638,
+ 101.39999999999638,
+ 101.44999999999638,
+ 101.49999999999638,
+ 101.54999999999637,
+ 101.59999999999637,
+ 101.64999999999637,
+ 101.69999999999636,
+ 101.74999999999636,
+ 101.79999999999636,
+ 101.84999999999636,
+ 101.89999999999635,
+ 101.94999999999635,
+ 101.99999999999635,
+ 102.04999999999634,
+ 102.09999999999634,
+ 102.14999999999634,
+ 102.19999999999634,
+ 102.24999999999633,
+ 102.29999999999633,
+ 102.34999999999633,
+ 102.39999999999633,
+ 102.44999999999632,
+ 102.49999999999632,
+ 102.54999999999632,
+ 102.59999999999631,
+ 102.64999999999631,
+ 102.69999999999631,
+ 102.7499999999963,
+ 102.7999999999963,
+ 102.8499999999963,
+ 102.8999999999963,
+ 102.9499999999963,
+ 102.99999999999629,
+ 103.04999999999629,
+ 103.09999999999629,
+ 103.14999999999628,
+ 103.19999999999628,
+ 103.24999999999628,
+ 103.29999999999627,
+ 103.34999999999627,
+ 103.39999999999627,
+ 103.44999999999627,
+ 103.49999999999626,
+ 103.54999999999626,
+ 103.59999999999626,
+ 103.64999999999625,
+ 103.69999999999625,
+ 103.74999999999625,
+ 103.79999999999625,
+ 103.84999999999624,
+ 103.89999999999624,
+ 103.94999999999624,
+ 103.99999999999623,
+ 104.04999999999623,
+ 104.09999999999623,
+ 104.14999999999623,
+ 104.19999999999622,
+ 104.24999999999622,
+ 104.29999999999622,
+ 104.34999999999621,
+ 104.39999999999621,
+ 104.44999999999621,
+ 104.4999999999962,
+ 104.5499999999962,
+ 104.5999999999962,
+ 104.6499999999962,
+ 104.6999999999962,
+ 104.74999999999619,
+ 104.79999999999619,
+ 104.84999999999619,
+ 104.89999999999618,
+ 104.94999999999618,
+ 104.99999999999618,
+ 105.04999999999617,
+ 105.09999999999617,
+ 105.14999999999617,
+ 105.19999999999617,
+ 105.24999999999616,
+ 105.29999999999616,
+ 105.34999999999616,
+ 105.39999999999615,
+ 105.44999999999615,
+ 105.49999999999615,
+ 105.54999999999615,
+ 105.59999999999614,
+ 105.64999999999614,
+ 105.69999999999614,
+ 105.74999999999613,
+ 105.79999999999613,
+ 105.84999999999613,
+ 105.89999999999613,
+ 105.94999999999612,
+ 105.99999999999612,
+ 106.04999999999612,
+ 106.09999999999611,
+ 106.14999999999611,
+ 106.19999999999611,
+ 106.2499999999961,
+ 106.2999999999961,
+ 106.3499999999961,
+ 106.3999999999961,
+ 106.4499999999961,
+ 106.49999999999609,
+ 106.54999999999609,
+ 106.59999999999609,
+ 106.64999999999608,
+ 106.69999999999608,
+ 106.74999999999608,
+ 106.79999999999607,
+ 106.84999999999607,
+ 106.89999999999607,
+ 106.94999999999607,
+ 106.99999999999606,
+ 107.04999999999606,
+ 107.09999999999606,
+ 107.14999999999606,
+ 107.19999999999605,
+ 107.24999999999605,
+ 107.29999999999605,
+ 107.34999999999604,
+ 107.39999999999604,
+ 107.44999999999604,
+ 107.49999999999604,
+ 107.54999999999603,
+ 107.59999999999603,
+ 107.64999999999603,
+ 107.69999999999602,
+ 107.74999999999602,
+ 107.79999999999602,
+ 107.84999999999602,
+ 107.89999999999601,
+ 107.94999999999601,
+ 107.999999999996,
+ 108.049999999996,
+ 108.099999999996,
+ 108.149999999996,
+ 108.199999999996,
+ 108.24999999999599,
+ 108.29999999999599,
+ 108.34999999999599,
+ 108.39999999999598,
+ 108.44999999999598,
+ 108.49999999999598,
+ 108.54999999999598,
+ 108.59999999999597,
+ 108.64999999999597,
+ 108.69999999999597,
+ 108.74999999999596,
+ 108.79999999999596,
+ 108.84999999999596,
+ 108.89999999999596,
+ 108.94999999999595,
+ 108.99999999999595,
+ 109.04999999999595,
+ 109.09999999999594,
+ 109.14999999999594,
+ 109.19999999999594,
+ 109.24999999999594,
+ 109.29999999999593,
+ 109.34999999999593,
+ 109.39999999999593,
+ 109.44999999999592,
+ 109.49999999999592,
+ 109.54999999999592,
+ 109.59999999999592,
+ 109.64999999999591,
+ 109.69999999999591,
+ 109.74999999999591,
+ 109.7999999999959,
+ 109.8499999999959,
+ 109.8999999999959,
+ 109.9499999999959,
+ 109.9999999999959,
+ 110.04999999999589,
+ 110.09999999999589,
+ 110.14999999999588,
+ 110.19999999999588,
+ 110.24999999999588,
+ 110.29999999999588,
+ 110.34999999999587,
+ 110.39999999999587,
+ 110.44999999999587,
+ 110.49999999999586,
+ 110.54999999999586,
+ 110.59999999999586,
+ 110.64999999999586,
+ 110.69999999999585,
+ 110.74999999999585,
+ 110.79999999999585,
+ 110.84999999999584,
+ 110.89999999999584,
+ 110.94999999999584,
+ 110.99999999999584,
+ 111.04999999999583,
+ 111.09999999999583,
+ 111.14999999999583,
+ 111.19999999999582,
+ 111.24999999999582,
+ 111.29999999999582,
+ 111.34999999999582,
+ 111.39999999999581,
+ 111.44999999999581,
+ 111.49999999999581,
+ 111.5499999999958,
+ 111.5999999999958,
+ 111.6499999999958,
+ 111.6999999999958,
+ 111.7499999999958,
+ 111.79999999999579,
+ 111.84999999999579,
+ 111.89999999999579,
+ 111.94999999999578,
+ 111.99999999999578,
+ 112.04999999999578,
+ 112.09999999999577,
+ 112.14999999999577,
+ 112.19999999999577,
+ 112.24999999999577,
+ 112.29999999999576,
+ 112.34999999999576,
+ 112.39999999999576,
+ 112.44999999999575,
+ 112.49999999999575,
+ 112.54999999999575,
+ 112.59999999999575,
+ 112.64999999999574,
+ 112.69999999999574,
+ 112.74999999999574,
+ 112.79999999999573,
+ 112.84999999999573,
+ 112.89999999999573,
+ 112.94999999999573,
+ 112.99999999999572,
+ 113.04999999999572,
+ 113.09999999999572,
+ 113.14999999999571,
+ 113.19999999999571,
+ 113.24999999999571,
+ 113.2999999999957,
+ 113.3499999999957,
+ 113.3999999999957,
+ 113.4499999999957,
+ 113.4999999999957,
+ 113.54999999999569,
+ 113.59999999999569,
+ 113.64999999999569,
+ 113.69999999999568,
+ 113.74999999999568,
+ 113.79999999999568,
+ 113.84999999999567,
+ 113.89999999999567,
+ 113.94999999999567,
+ 113.99999999999567,
+ 114.04999999999566,
+ 114.09999999999566,
+ 114.14999999999566,
+ 114.19999999999565,
+ 114.24999999999565,
+ 114.29999999999565,
+ 114.34999999999565,
+ 114.39999999999564,
+ 114.44999999999564,
+ 114.49999999999564,
+ 114.54999999999563,
+ 114.59999999999563,
+ 114.64999999999563,
+ 114.69999999999563,
+ 114.74999999999562,
+ 114.79999999999562,
+ 114.84999999999562,
+ 114.89999999999561,
+ 114.94999999999561,
+ 114.99999999999561,
+ 115.0499999999956,
+ 115.0999999999956,
+ 115.1499999999956,
+ 115.1999999999956,
+ 115.2499999999956,
+ 115.29999999999559,
+ 115.34999999999559,
+ 115.39999999999559,
+ 115.44999999999558,
+ 115.49999999999558,
+ 115.54999999999558,
+ 115.59999999999557,
+ 115.64999999999557,
+ 115.69999999999557,
+ 115.74999999999557,
+ 115.79999999999556,
+ 115.84999999999556,
+ 115.89999999999556,
+ 115.94999999999555,
+ 115.99999999999555,
+ 116.04999999999555,
+ 116.09999999999555,
+ 116.14999999999554,
+ 116.19999999999554,
+ 116.24999999999554,
+ 116.29999999999553,
+ 116.34999999999553,
+ 116.39999999999553,
+ 116.44999999999553,
+ 116.49999999999552,
+ 116.54999999999552,
+ 116.59999999999552,
+ 116.64999999999552,
+ 116.69999999999551,
+ 116.74999999999551,
+ 116.7999999999955,
+ 116.8499999999955,
+ 116.8999999999955,
+ 116.9499999999955,
+ 116.9999999999955,
+ 117.04999999999549,
+ 117.09999999999549,
+ 117.14999999999549,
+ 117.19999999999548,
+ 117.24999999999548,
+ 117.29999999999548,
+ 117.34999999999548,
+ 117.39999999999547,
+ 117.44999999999547,
+ 117.49999999999547,
+ 117.54999999999546,
+ 117.59999999999546,
+ 117.64999999999546,
+ 117.69999999999546,
+ 117.74999999999545,
+ 117.79999999999545,
+ 117.84999999999545,
+ 117.89999999999544,
+ 117.94999999999544,
+ 117.99999999999544,
+ 118.04999999999544,
+ 118.09999999999543,
+ 118.14999999999543,
+ 118.19999999999543,
+ 118.24999999999542,
+ 118.29999999999542,
+ 118.34999999999542,
+ 118.39999999999542,
+ 118.44999999999541,
+ 118.49999999999541,
+ 118.5499999999954,
+ 118.5999999999954,
+ 118.6499999999954,
+ 118.6999999999954,
+ 118.7499999999954,
+ 118.79999999999539,
+ 118.84999999999539,
+ 118.89999999999539,
+ 118.94999999999538,
+ 118.99999999999538,
+ 119.04999999999538,
+ 119.09999999999538,
+ 119.14999999999537,
+ 119.19999999999537,
+ 119.24999999999537,
+ 119.29999999999536,
+ 119.34999999999536,
+ 119.39999999999536,
+ 119.44999999999536,
+ 119.49999999999535,
+ 119.54999999999535,
+ 119.59999999999535,
+ 119.64999999999534,
+ 119.69999999999534,
+ 119.74999999999534,
+ 119.79999999999534,
+ 119.84999999999533,
+ 119.89999999999533,
+ 119.94999999999533,
+ 119.99999999999532,
+ 120.04999999999532,
+ 120.09999999999532,
+ 120.14999999999532,
+ 120.19999999999531,
+ 120.24999999999531,
+ 120.29999999999531,
+ 120.3499999999953,
+ 120.3999999999953,
+ 120.4499999999953,
+ 120.4999999999953,
+ 120.5499999999953,
+ 120.59999999999529,
+ 120.64999999999529,
+ 120.69999999999528,
+ 120.74999999999528,
+ 120.79999999999528,
+ 120.84999999999528,
+ 120.89999999999527,
+ 120.94999999999527,
+ 120.99999999999527,
+ 121.04999999999526,
+ 121.09999999999526,
+ 121.14999999999526,
+ 121.19999999999526,
+ 121.24999999999525,
+ 121.29999999999525,
+ 121.34999999999525,
+ 121.39999999999525,
+ 121.44999999999524,
+ 121.49999999999524,
+ 121.54999999999524,
+ 121.59999999999523,
+ 121.64999999999523,
+ 121.69999999999523,
+ 121.74999999999523,
+ 121.79999999999522,
+ 121.84999999999522,
+ 121.89999999999522,
+ 121.94999999999521,
+ 121.99999999999521,
+ 122.04999999999521,
+ 122.0999999999952,
+ 122.1499999999952,
+ 122.1999999999952,
+ 122.2499999999952,
+ 122.2999999999952,
+ 122.34999999999519,
+ 122.39999999999519,
+ 122.44999999999519,
+ 122.49999999999518,
+ 122.54999999999518,
+ 122.59999999999518,
+ 122.64999999999517,
+ 122.69999999999517,
+ 122.74999999999517,
+ 122.79999999999517,
+ 122.84999999999516,
+ 122.89999999999516,
+ 122.94999999999516,
+ 122.99999999999515,
+ 123.04999999999515,
+ 123.09999999999515,
+ 123.14999999999515,
+ 123.19999999999514,
+ 123.24999999999514,
+ 123.29999999999514,
+ 123.34999999999513,
+ 123.39999999999513,
+ 123.44999999999513,
+ 123.49999999999513,
+ 123.54999999999512,
+ 123.59999999999512,
+ 123.64999999999512,
+ 123.69999999999511,
+ 123.74999999999511,
+ 123.79999999999511,
+ 123.8499999999951,
+ 123.8999999999951,
+ 123.9499999999951,
+ 123.9999999999951,
+ 124.0499999999951,
+ 124.09999999999509,
+ 124.14999999999509,
+ 124.19999999999509,
+ 124.24999999999508,
+ 124.29999999999508,
+ 124.34999999999508,
+ 124.39999999999507,
+ 124.44999999999507,
+ 124.49999999999507,
+ 124.54999999999507,
+ 124.59999999999506,
+ 124.64999999999506,
+ 124.69999999999506,
+ 124.74999999999505,
+ 124.79999999999505,
+ 124.84999999999505,
+ 124.89999999999505,
+ 124.94999999999504,
+ 124.99999999999504,
+ 125.04999999999504,
+ 125.09999999999503,
+ 125.14999999999503,
+ 125.19999999999503,
+ 125.24999999999503,
+ 125.29999999999502,
+ 125.34999999999502,
+ 125.39999999999502,
+ 125.44999999999501,
+ 125.49999999999501,
+ 125.54999999999501,
+ 125.599999999995,
+ 125.649999999995,
+ 125.699999999995,
+ 125.749999999995,
+ 125.799999999995,
+ 125.84999999999499,
+ 125.89999999999499,
+ 125.94999999999499,
+ 125.99999999999498,
+ 126.04999999999498,
+ 126.09999999999498,
+ 126.14999999999498,
+ 126.19999999999497,
+ 126.24999999999497,
+ 126.29999999999497,
+ 126.34999999999496,
+ 126.39999999999496,
+ 126.44999999999496,
+ 126.49999999999496,
+ 126.54999999999495,
+ 126.59999999999495,
+ 126.64999999999495,
+ 126.69999999999494,
+ 126.74999999999494,
+ 126.79999999999494,
+ 126.84999999999494,
+ 126.89999999999493,
+ 126.94999999999493,
+ 126.99999999999493,
+ 127.04999999999492,
+ 127.09999999999492,
+ 127.14999999999492,
+ 127.19999999999492,
+ 127.24999999999491,
+ 127.29999999999491,
+ 127.3499999999949,
+ 127.3999999999949,
+ 127.4499999999949,
+ 127.4999999999949,
+ 127.5499999999949,
+ 127.59999999999489,
+ 127.64999999999489,
+ 127.69999999999489,
+ 127.74999999999488,
+ 127.79999999999488,
+ 127.84999999999488,
+ 127.89999999999488,
+ 127.94999999999487,
+ 127.99999999999487,
+ 128.04999999999487,
+ 128.09999999999488,
+ 128.1499999999949,
+ 128.1999999999949,
+ 128.2499999999949,
+ 128.29999999999492,
+ 128.34999999999494,
+ 128.39999999999495,
+ 128.44999999999496,
+ 128.49999999999497,
+ 128.54999999999498,
+ 128.599999999995,
+ 128.649999999995,
+ 128.69999999999501,
+ 128.74999999999503,
+ 128.79999999999504,
+ 128.84999999999505,
+ 128.89999999999506,
+ 128.94999999999507,
+ 128.99999999999508,
+ 129.0499999999951,
+ 129.0999999999951,
+ 129.14999999999512,
+ 129.19999999999513,
+ 129.24999999999514,
+ 129.29999999999515,
+ 129.34999999999516,
+ 129.39999999999517,
+ 129.44999999999519,
+ 129.4999999999952,
+ 129.5499999999952,
+ 129.59999999999522,
+ 129.64999999999523,
+ 129.69999999999524,
+ 129.74999999999525,
+ 129.79999999999526,
+ 129.84999999999528,
+ 129.8999999999953,
+ 129.9499999999953,
+ 129.9999999999953,
+ 130.04999999999532,
+ 130.09999999999533,
+ 130.14999999999534,
+ 130.19999999999536,
+ 130.24999999999537,
+ 130.29999999999538,
+ 130.3499999999954,
+ 130.3999999999954,
+ 130.4499999999954,
+ 130.49999999999542,
+ 130.54999999999544,
+ 130.59999999999545,
+ 130.64999999999546,
+ 130.69999999999547,
+ 130.74999999999548,
+ 130.7999999999955,
+ 130.8499999999955,
+ 130.89999999999552,
+ 130.94999999999553,
+ 130.99999999999554,
+ 131.04999999999555,
+ 131.09999999999556,
+ 131.14999999999557,
+ 131.19999999999558,
+ 131.2499999999956,
+ 131.2999999999956,
+ 131.34999999999562,
+ 131.39999999999563,
+ 131.44999999999564,
+ 131.49999999999565,
+ 131.54999999999566,
+ 131.59999999999567,
+ 131.64999999999569,
+ 131.6999999999957,
+ 131.7499999999957,
+ 131.79999999999572,
+ 131.84999999999573,
+ 131.89999999999574,
+ 131.94999999999575,
+ 131.99999999999577,
+ 132.04999999999578,
+ 132.0999999999958,
+ 132.1499999999958,
+ 132.1999999999958,
+ 132.24999999999582,
+ 132.29999999999583,
+ 132.34999999999584,
+ 132.39999999999586,
+ 132.44999999999587,
+ 132.49999999999588,
+ 132.5499999999959,
+ 132.5999999999959,
+ 132.6499999999959,
+ 132.69999999999592,
+ 132.74999999999594,
+ 132.79999999999595,
+ 132.84999999999596,
+ 132.89999999999597,
+ 132.94999999999598,
+ 132.999999999996,
+ 133.049999999996,
+ 133.09999999999602,
+ 133.14999999999603,
+ 133.19999999999604,
+ 133.24999999999605,
+ 133.29999999999606,
+ 133.34999999999607,
+ 133.39999999999608,
+ 133.4499999999961,
+ 133.4999999999961,
+ 133.54999999999612,
+ 133.59999999999613,
+ 133.64999999999614,
+ 133.69999999999615,
+ 133.74999999999616,
+ 133.79999999999617,
+ 133.8499999999962,
+ 133.8999999999962,
+ 133.9499999999962,
+ 133.99999999999622,
+ 134.04999999999623,
+ 134.09999999999624,
+ 134.14999999999625,
+ 134.19999999999627,
+ 134.24999999999628,
+ 134.2999999999963,
+ 134.3499999999963,
+ 134.3999999999963,
+ 134.44999999999632,
+ 134.49999999999633,
+ 134.54999999999634,
+ 134.59999999999636,
+ 134.64999999999637,
+ 134.69999999999638,
+ 134.7499999999964,
+ 134.7999999999964,
+ 134.8499999999964,
+ 134.89999999999642,
+ 134.94999999999644,
+ 134.99999999999645,
+ 135.04999999999646,
+ 135.09999999999647,
+ 135.14999999999648,
+ 135.1999999999965,
+ 135.2499999999965,
+ 135.29999999999652,
+ 135.34999999999653,
+ 135.39999999999654,
+ 135.44999999999655,
+ 135.49999999999656,
+ 135.54999999999657,
+ 135.59999999999658,
+ 135.6499999999966,
+ 135.6999999999966,
+ 135.74999999999662,
+ 135.79999999999663,
+ 135.84999999999664,
+ 135.89999999999665,
+ 135.94999999999666,
+ 135.99999999999667,
+ 136.0499999999967,
+ 136.0999999999967,
+ 136.1499999999967,
+ 136.19999999999672,
+ 136.24999999999673,
+ 136.29999999999674,
+ 136.34999999999675,
+ 136.39999999999677,
+ 136.44999999999678,
+ 136.4999999999968,
+ 136.5499999999968,
+ 136.5999999999968,
+ 136.64999999999682,
+ 136.69999999999683,
+ 136.74999999999685,
+ 136.79999999999686,
+ 136.84999999999687,
+ 136.89999999999688,
+ 136.9499999999969,
+ 136.9999999999969,
+ 137.0499999999969,
+ 137.09999999999692,
+ 137.14999999999694,
+ 137.19999999999695,
+ 137.24999999999696,
+ 137.29999999999697,
+ 137.34999999999698,
+ 137.399999999997,
+ 137.449999999997,
+ 137.49999999999702,
+ 137.54999999999703,
+ 137.59999999999704,
+ 137.64999999999705,
+ 137.69999999999706,
+ 137.74999999999707,
+ 137.79999999999708,
+ 137.8499999999971,
+ 137.8999999999971,
+ 137.94999999999712,
+ 137.99999999999713,
+ 138.04999999999714,
+ 138.09999999999715,
+ 138.14999999999716,
+ 138.19999999999717,
+ 138.2499999999972,
+ 138.2999999999972,
+ 138.3499999999972,
+ 138.39999999999722,
+ 138.44999999999723,
+ 138.49999999999724,
+ 138.54999999999725,
+ 138.59999999999727,
+ 138.64999999999728,
+ 138.6999999999973,
+ 138.7499999999973,
+ 138.7999999999973,
+ 138.84999999999732,
+ 138.89999999999733,
+ 138.94999999999735,
+ 138.99999999999736,
+ 139.04999999999737,
+ 139.09999999999738,
+ 139.1499999999974,
+ 139.1999999999974,
+ 139.2499999999974,
+ 139.29999999999742,
+ 139.34999999999744,
+ 139.39999999999745,
+ 139.44999999999746,
+ 139.49999999999747,
+ 139.54999999999748,
+ 139.5999999999975,
+ 139.6499999999975,
+ 139.69999999999752,
+ 139.74999999999753,
+ 139.79999999999754,
+ 139.84999999999755,
+ 139.89999999999756,
+ 139.94999999999757,
+ 139.99999999999758,
+ 140.0499999999976,
+ 140.0999999999976,
+ 140.14999999999762,
+ 140.19999999999763,
+ 140.24999999999764,
+ 140.29999999999765,
+ 140.34999999999766,
+ 140.39999999999768,
+ 140.4499999999977,
+ 140.4999999999977,
+ 140.5499999999977,
+ 140.59999999999772,
+ 140.64999999999773,
+ 140.69999999999774,
+ 140.74999999999775,
+ 140.79999999999777,
+ 140.84999999999778,
+ 140.8999999999978,
+ 140.9499999999978,
+ 140.9999999999978,
+ 141.04999999999782,
+ 141.09999999999783,
+ 141.14999999999785,
+ 141.19999999999786,
+ 141.24999999999787,
+ 141.29999999999788,
+ 141.3499999999979,
+ 141.3999999999979,
+ 141.4499999999979,
+ 141.49999999999793,
+ 141.54999999999794,
+ 141.59999999999795,
+ 141.64999999999796,
+ 141.69999999999797,
+ 141.74999999999798,
+ 141.799999999998,
+ 141.849999999998,
+ 141.89999999999802,
+ 141.94999999999803,
+ 141.99999999999804,
+ 142.04999999999805,
+ 142.09999999999806,
+ 142.14999999999807,
+ 142.19999999999808,
+ 142.2499999999981,
+ 142.2999999999981,
+ 142.34999999999812,
+ 142.39999999999813,
+ 142.44999999999814,
+ 142.49999999999815,
+ 142.54999999999816,
+ 142.59999999999818,
+ 142.6499999999982,
+ 142.6999999999982,
+ 142.7499999999982,
+ 142.79999999999822,
+ 142.84999999999823,
+ 142.89999999999824,
+ 142.94999999999825,
+ 142.99999999999827,
+ 143.04999999999828,
+ 143.0999999999983,
+ 143.1499999999983,
+ 143.1999999999983,
+ 143.24999999999832,
+ 143.29999999999833,
+ 143.34999999999835,
+ 143.39999999999836,
+ 143.44999999999837,
+ 143.49999999999838,
+ 143.5499999999984,
+ 143.5999999999984,
+ 143.6499999999984,
+ 143.69999999999843,
+ 143.74999999999844,
+ 143.79999999999845,
+ 143.84999999999846,
+ 143.89999999999847,
+ 143.94999999999848,
+ 143.9999999999985,
+ 144.0499999999985,
+ 144.09999999999852,
+ 144.14999999999853,
+ 144.19999999999854,
+ 144.24999999999855,
+ 144.29999999999856,
+ 144.34999999999857,
+ 144.39999999999858,
+ 144.4499999999986,
+ 144.4999999999986,
+ 144.54999999999862,
+ 144.59999999999863,
+ 144.64999999999864,
+ 144.69999999999865,
+ 144.74999999999866,
+ 144.79999999999868,
+ 144.8499999999987,
+ 144.8999999999987,
+ 144.9499999999987,
+ 144.99999999999872,
+ 145.04999999999873,
+ 145.09999999999874,
+ 145.14999999999876,
+ 145.19999999999877,
+ 145.24999999999878,
+ 145.2999999999988,
+ 145.3499999999988,
+ 145.3999999999988,
+ 145.44999999999882,
+ 145.49999999999883,
+ 145.54999999999885,
+ 145.59999999999886,
+ 145.64999999999887,
+ 145.69999999999888,
+ 145.7499999999989,
+ 145.7999999999989,
+ 145.84999999999891,
+ 145.89999999999893,
+ 145.94999999999894,
+ 145.99999999999895,
+ 146.04999999999896,
+ 146.09999999999897,
+ 146.14999999999898,
+ 146.199999999999,
+ 146.249999999999,
+ 146.29999999999902,
+ 146.34999999999903,
+ 146.39999999999904,
+ 146.44999999999905,
+ 146.49999999999906,
+ 146.54999999999907,
+ 146.59999999999908,
+ 146.6499999999991,
+ 146.6999999999991,
+ 146.74999999999912,
+ 146.79999999999913,
+ 146.84999999999914,
+ 146.89999999999915,
+ 146.94999999999916,
+ 146.99999999999918,
+ 147.0499999999992,
+ 147.0999999999992,
+ 147.1499999999992,
+ 147.19999999999922,
+ 147.24999999999923,
+ 147.29999999999924,
+ 147.34999999999926,
+ 147.39999999999927,
+ 147.44999999999928,
+ 147.4999999999993,
+ 147.5499999999993,
+ 147.5999999999993,
+ 147.64999999999932,
+ 147.69999999999933,
+ 147.74999999999935,
+ 147.79999999999936,
+ 147.84999999999937,
+ 147.89999999999938,
+ 147.9499999999994,
+ 147.9999999999994,
+ 148.04999999999941,
+ 148.09999999999943,
+ 148.14999999999944,
+ 148.19999999999945,
+ 148.24999999999946,
+ 148.29999999999947,
+ 148.34999999999948,
+ 148.3999999999995,
+ 148.4499999999995,
+ 148.49999999999952,
+ 148.54999999999953,
+ 148.59999999999954,
+ 148.64999999999955,
+ 148.69999999999956,
+ 148.74999999999957,
+ 148.79999999999959,
+ 148.8499999999996,
+ 148.8999999999996,
+ 148.94999999999962,
+ 148.99999999999963,
+ 149.04999999999964,
+ 149.09999999999965,
+ 149.14999999999966,
+ 149.19999999999968,
+ 149.2499999999997,
+ 149.2999999999997,
+ 149.3499999999997,
+ 149.39999999999972,
+ 149.44999999999973,
+ 149.49999999999974,
+ 149.54999999999976,
+ 149.59999999999977,
+ 149.64999999999978,
+ 149.6999999999998,
+ 149.7499999999998,
+ 149.7999999999998,
+ 149.84999999999982,
+ 149.89999999999984,
+ 149.94999999999985,
+ 149.99999999999986,
+ 150.04999999999987,
+ 150.09999999999988,
+ 150.1499999999999,
+ 150.1999999999999,
+ 150.24999999999991,
+ 150.29999999999993,
+ 150.34999999999994,
+ 150.39999999999995,
+ 150.44999999999996,
+ 150.49999999999997,
+ 150.54999999999998,
+ 150.6,
+ 150.65,
+ 150.70000000000002,
+ 150.75000000000003,
+ 150.80000000000004,
+ 150.85000000000005,
+ 150.90000000000006,
+ 150.95000000000007,
+ 151.00000000000009,
+ 151.0500000000001,
+ 151.1000000000001,
+ 151.15000000000012,
+ 151.20000000000013,
+ 151.25000000000014,
+ 151.30000000000015,
+ 151.35000000000016,
+ 151.40000000000018,
+ 151.4500000000002,
+ 151.5000000000002,
+ 151.5500000000002,
+ 151.60000000000022,
+ 151.65000000000023,
+ 151.70000000000024,
+ 151.75000000000026,
+ 151.80000000000027,
+ 151.85000000000028,
+ 151.9000000000003,
+ 151.9500000000003,
+ 152.0000000000003,
+ 152.05000000000032,
+ 152.10000000000034,
+ 152.15000000000035,
+ 152.20000000000036,
+ 152.25000000000037,
+ 152.30000000000038,
+ 152.3500000000004,
+ 152.4000000000004,
+ 152.45000000000041,
+ 152.50000000000043,
+ 152.55000000000044,
+ 152.60000000000045,
+ 152.65000000000046,
+ 152.70000000000047,
+ 152.75000000000048,
+ 152.8000000000005,
+ 152.8500000000005,
+ 152.90000000000052,
+ 152.95000000000053,
+ 153.00000000000054,
+ 153.05000000000055,
+ 153.10000000000056,
+ 153.15000000000057,
+ 153.20000000000059,
+ 153.2500000000006,
+ 153.3000000000006,
+ 153.35000000000062,
+ 153.40000000000063,
+ 153.45000000000064,
+ 153.50000000000065,
+ 153.55000000000067,
+ 153.60000000000068,
+ 153.6500000000007,
+ 153.7000000000007,
+ 153.7500000000007,
+ 153.80000000000072,
+ 153.85000000000073,
+ 153.90000000000074,
+ 153.95000000000076,
+ 154.00000000000077,
+ 154.05000000000078,
+ 154.1000000000008,
+ 154.1500000000008,
+ 154.2000000000008,
+ 154.25000000000082,
+ 154.30000000000084,
+ 154.35000000000085,
+ 154.40000000000086,
+ 154.45000000000087,
+ 154.50000000000088,
+ 154.5500000000009,
+ 154.6000000000009,
+ 154.65000000000092,
+ 154.70000000000093,
+ 154.75000000000094,
+ 154.80000000000095,
+ 154.85000000000096,
+ 154.90000000000097,
+ 154.95000000000098,
+ 155.000000000001,
+ 155.050000000001,
+ 155.10000000000102,
+ 155.15000000000103,
+ 155.20000000000104,
+ 155.25000000000105,
+ 155.30000000000106,
+ 155.35000000000107,
+ 155.40000000000109,
+ 155.4500000000011,
+ 155.5000000000011,
+ 155.55000000000112,
+ 155.60000000000113,
+ 155.65000000000114,
+ 155.70000000000115,
+ 155.75000000000117,
+ 155.80000000000118,
+ 155.8500000000012,
+ 155.9000000000012,
+ 155.9500000000012,
+ 156.00000000000122,
+ 156.05000000000123,
+ 156.10000000000124,
+ 156.15000000000126,
+ 156.20000000000127,
+ 156.25000000000128,
+ 156.3000000000013,
+ 156.3500000000013,
+ 156.4000000000013,
+ 156.45000000000132,
+ 156.50000000000134,
+ 156.55000000000135,
+ 156.60000000000136,
+ 156.65000000000137,
+ 156.70000000000138,
+ 156.7500000000014,
+ 156.8000000000014,
+ 156.85000000000142,
+ 156.90000000000143,
+ 156.95000000000144,
+ 157.00000000000145,
+ 157.05000000000146,
+ 157.10000000000147,
+ 157.15000000000148,
+ 157.2000000000015,
+ 157.2500000000015,
+ 157.30000000000152,
+ 157.35000000000153,
+ 157.40000000000154,
+ 157.45000000000155,
+ 157.50000000000156,
+ 157.55000000000157,
+ 157.6000000000016,
+ 157.6500000000016,
+ 157.7000000000016,
+ 157.75000000000162,
+ 157.80000000000163,
+ 157.85000000000164,
+ 157.90000000000165,
+ 157.95000000000167,
+ 158.00000000000168,
+ 158.0500000000017,
+ 158.1000000000017,
+ 158.1500000000017,
+ 158.20000000000172,
+ 158.25000000000173,
+ 158.30000000000175,
+ 158.35000000000176,
+ 158.40000000000177,
+ 158.45000000000178,
+ 158.5000000000018,
+ 158.5500000000018,
+ 158.6000000000018,
+ 158.65000000000182,
+ 158.70000000000184,
+ 158.75000000000185,
+ 158.80000000000186,
+ 158.85000000000187,
+ 158.90000000000188,
+ 158.9500000000019,
+ 159.0000000000019,
+ 159.05000000000192,
+ 159.10000000000193,
+ 159.15000000000194,
+ 159.20000000000195,
+ 159.25000000000196,
+ 159.30000000000197,
+ 159.35000000000198,
+ 159.400000000002,
+ 159.450000000002,
+ 159.50000000000202,
+ 159.55000000000203,
+ 159.60000000000204,
+ 159.65000000000205,
+ 159.70000000000206,
+ 159.75000000000207,
+ 159.8000000000021,
+ 159.8500000000021,
+ 159.9000000000021,
+ 159.95000000000212,
+ 160.00000000000213,
+ 160.05000000000214,
+ 160.10000000000215,
+ 160.15000000000217,
+ 160.20000000000218,
+ 160.2500000000022,
+ 160.3000000000022,
+ 160.3500000000022,
+ 160.40000000000222,
+ 160.45000000000223,
+ 160.50000000000225,
+ 160.55000000000226,
+ 160.60000000000227,
+ 160.65000000000228,
+ 160.7000000000023,
+ 160.7500000000023,
+ 160.8000000000023,
+ 160.85000000000232,
+ 160.90000000000234,
+ 160.95000000000235,
+ 161.00000000000236,
+ 161.05000000000237,
+ 161.10000000000238,
+ 161.1500000000024,
+ 161.2000000000024,
+ 161.25000000000242,
+ 161.30000000000243,
+ 161.35000000000244,
+ 161.40000000000245,
+ 161.45000000000246,
+ 161.50000000000247,
+ 161.55000000000248,
+ 161.6000000000025,
+ 161.6500000000025,
+ 161.70000000000252,
+ 161.75000000000253,
+ 161.80000000000254,
+ 161.85000000000255,
+ 161.90000000000256,
+ 161.95000000000258,
+ 162.0000000000026,
+ 162.0500000000026,
+ 162.1000000000026,
+ 162.15000000000262,
+ 162.20000000000263,
+ 162.25000000000264,
+ 162.30000000000265,
+ 162.35000000000267,
+ 162.40000000000268,
+ 162.4500000000027,
+ 162.5000000000027,
+ 162.5500000000027,
+ 162.60000000000272,
+ 162.65000000000273,
+ 162.70000000000275,
+ 162.75000000000276,
+ 162.80000000000277,
+ 162.85000000000278,
+ 162.9000000000028,
+ 162.9500000000028,
+ 163.0000000000028,
+ 163.05000000000283,
+ 163.10000000000284,
+ 163.15000000000285,
+ 163.20000000000286,
+ 163.25000000000287,
+ 163.30000000000288,
+ 163.3500000000029,
+ 163.4000000000029,
+ 163.45000000000292,
+ 163.50000000000293,
+ 163.55000000000294,
+ 163.60000000000295,
+ 163.65000000000296,
+ 163.70000000000297,
+ 163.75000000000298,
+ 163.800000000003,
+ 163.850000000003,
+ 163.90000000000302,
+ 163.95000000000303,
+ 164.00000000000304,
+ 164.05000000000305,
+ 164.10000000000306,
+ 164.15000000000308,
+ 164.2000000000031,
+ 164.2500000000031,
+ 164.3000000000031,
+ 164.35000000000312,
+ 164.40000000000313,
+ 164.45000000000314,
+ 164.50000000000315,
+ 164.55000000000317,
+ 164.60000000000318,
+ 164.6500000000032,
+ 164.7000000000032,
+ 164.7500000000032,
+ 164.80000000000322,
+ 164.85000000000323,
+ 164.90000000000325,
+ 164.95000000000326,
+ 165.00000000000327,
+ 165.05000000000328,
+ 165.1000000000033,
+ 165.1500000000033,
+ 165.2000000000033,
+ 165.25000000000333,
+ 165.30000000000334,
+ 165.35000000000335,
+ 165.40000000000336,
+ 165.45000000000337,
+ 165.50000000000338,
+ 165.5500000000034,
+ 165.6000000000034,
+ 165.65000000000342,
+ 165.70000000000343,
+ 165.75000000000344,
+ 165.80000000000345,
+ 165.85000000000346,
+ 165.90000000000347,
+ 165.95000000000348,
+ 166.0000000000035,
+ 166.0500000000035,
+ 166.10000000000352,
+ 166.15000000000353,
+ 166.20000000000354,
+ 166.25000000000355,
+ 166.30000000000356,
+ 166.35000000000358,
+ 166.4000000000036,
+ 166.4500000000036,
+ 166.5000000000036,
+ 166.55000000000362,
+ 166.60000000000363,
+ 166.65000000000364,
+ 166.70000000000366,
+ 166.75000000000367,
+ 166.80000000000368,
+ 166.8500000000037,
+ 166.9000000000037,
+ 166.9500000000037,
+ 167.00000000000372,
+ 167.05000000000373,
+ 167.10000000000375,
+ 167.15000000000376,
+ 167.20000000000377,
+ 167.25000000000378,
+ 167.3000000000038,
+ 167.3500000000038,
+ 167.4000000000038,
+ 167.45000000000383,
+ 167.50000000000384,
+ 167.55000000000385,
+ 167.60000000000386,
+ 167.65000000000387,
+ 167.70000000000388,
+ 167.7500000000039,
+ 167.8000000000039,
+ 167.85000000000392,
+ 167.90000000000393,
+ 167.95000000000394,
+ 168.00000000000395,
+ 168.05000000000396,
+ 168.10000000000397,
+ 168.15000000000398,
+ 168.200000000004,
+ 168.250000000004,
+ 168.30000000000402,
+ 168.35000000000403,
+ 168.40000000000404,
+ 168.45000000000405,
+ 168.50000000000406,
+ 168.55000000000408,
+ 168.6000000000041,
+ 168.6500000000041,
+ 168.7000000000041,
+ 168.75000000000412,
+ 168.80000000000413,
+ 168.85000000000414,
+ 168.90000000000416,
+ 168.95000000000417,
+ 169.00000000000418,
+ 169.0500000000042,
+ 169.1000000000042,
+ 169.1500000000042,
+ 169.20000000000422,
+ 169.25000000000423,
+ 169.30000000000425,
+ 169.35000000000426,
+ 169.40000000000427,
+ 169.45000000000428,
+ 169.5000000000043,
+ 169.5500000000043,
+ 169.60000000000431,
+ 169.65000000000433,
+ 169.70000000000434,
+ 169.75000000000435,
+ 169.80000000000436,
+ 169.85000000000437,
+ 169.90000000000438,
+ 169.9500000000044,
+ 170.0000000000044,
+ 170.05000000000442,
+ 170.10000000000443,
+ 170.15000000000444,
+ 170.20000000000445,
+ 170.25000000000446,
+ 170.30000000000447,
+ 170.35000000000448,
+ 170.4000000000045,
+ 170.4500000000045,
+ 170.50000000000452,
+ 170.55000000000453,
+ 170.60000000000454,
+ 170.65000000000455,
+ 170.70000000000456,
+ 170.75000000000458,
+ 170.8000000000046,
+ 170.8500000000046,
+ 170.9000000000046,
+ 170.95000000000462,
+ 171.00000000000463,
+ 171.05000000000464,
+ 171.10000000000466,
+ 171.15000000000467,
+ 171.20000000000468,
+ 171.2500000000047,
+ 171.3000000000047,
+ 171.3500000000047,
+ 171.40000000000472,
+ 171.45000000000474,
+ 171.50000000000475,
+ 171.55000000000476,
+ 171.60000000000477,
+ 171.65000000000478,
+ 171.7000000000048,
+ 171.7500000000048,
+ 171.80000000000481,
+ 171.85000000000483,
+ 171.90000000000484,
+ 171.95000000000485,
+ 172.00000000000486,
+ 172.05000000000487,
+ 172.10000000000488,
+ 172.1500000000049,
+ 172.2000000000049,
+ 172.25000000000492,
+ 172.30000000000493,
+ 172.35000000000494,
+ 172.40000000000495,
+ 172.45000000000496,
+ 172.50000000000497,
+ 172.55000000000499,
+ 172.600000000005,
+ 172.650000000005,
+ 172.70000000000502,
+ 172.75000000000503,
+ 172.80000000000504,
+ 172.85000000000505,
+ 172.90000000000506,
+ 172.95000000000508,
+ 173.0000000000051,
+ 173.0500000000051,
+ 173.1000000000051,
+ 173.15000000000512,
+ 173.20000000000513,
+ 173.25000000000514,
+ 173.30000000000516,
+ 173.35000000000517,
+ 173.40000000000518,
+ 173.4500000000052,
+ 173.5000000000052,
+ 173.5500000000052,
+ 173.60000000000522,
+ 173.65000000000524,
+ 173.70000000000525,
+ 173.75000000000526,
+ 173.80000000000527,
+ 173.85000000000528,
+ 173.9000000000053,
+ 173.9500000000053,
+ 174.00000000000531,
+ 174.05000000000533,
+ 174.10000000000534,
+ 174.15000000000535,
+ 174.20000000000536,
+ 174.25000000000537,
+ 174.30000000000538,
+ 174.3500000000054,
+ 174.4000000000054,
+ 174.45000000000542,
+ 174.50000000000543,
+ 174.55000000000544,
+ 174.60000000000545,
+ 174.65000000000546,
+ 174.70000000000547,
+ 174.75000000000549,
+ 174.8000000000055,
+ 174.8500000000055,
+ 174.90000000000552,
+ 174.95000000000553,
+ 175.00000000000554,
+ 175.05000000000555,
+ 175.10000000000556,
+ 175.15000000000558,
+ 175.2000000000056,
+ 175.2500000000056,
+ 175.3000000000056,
+ 175.35000000000562,
+ 175.40000000000563,
+ 175.45000000000564,
+ 175.50000000000566,
+ 175.55000000000567,
+ 175.60000000000568,
+ 175.6500000000057,
+ 175.7000000000057,
+ 175.7500000000057,
+ 175.80000000000572,
+ 175.85000000000574,
+ 175.90000000000575,
+ 175.95000000000576,
+ 176.00000000000577,
+ 176.05000000000578,
+ 176.1000000000058,
+ 176.1500000000058,
+ 176.20000000000582,
+ 176.25000000000583,
+ 176.30000000000584,
+ 176.35000000000585,
+ 176.40000000000586,
+ 176.45000000000587,
+ 176.50000000000588,
+ 176.5500000000059,
+ 176.6000000000059,
+ 176.65000000000592,
+ 176.70000000000593,
+ 176.75000000000594,
+ 176.80000000000595,
+ 176.85000000000596,
+ 176.90000000000597,
+ 176.95000000000599,
+ 177.000000000006,
+ 177.050000000006,
+ 177.10000000000602,
+ 177.15000000000603,
+ 177.20000000000604,
+ 177.25000000000605,
+ 177.30000000000607,
+ 177.35000000000608,
+ 177.4000000000061,
+ 177.4500000000061,
+ 177.5000000000061,
+ 177.55000000000612,
+ 177.60000000000613,
+ 177.65000000000614,
+ 177.70000000000616,
+ 177.75000000000617,
+ 177.80000000000618,
+ 177.8500000000062,
+ 177.9000000000062,
+ 177.9500000000062,
+ 178.00000000000622,
+ 178.05000000000624,
+ 178.10000000000625,
+ 178.15000000000626,
+ 178.20000000000627,
+ 178.25000000000628,
+ 178.3000000000063,
+ 178.3500000000063,
+ 178.40000000000632,
+ 178.45000000000633,
+ 178.50000000000634,
+ 178.55000000000635,
+ 178.60000000000636,
+ 178.65000000000637,
+ 178.70000000000638,
+ 178.7500000000064,
+ 178.8000000000064,
+ 178.85000000000642,
+ 178.90000000000643,
+ 178.95000000000644,
+ 179.00000000000645,
+ 179.05000000000646,
+ 179.10000000000647,
+ 179.1500000000065,
+ 179.2000000000065,
+ 179.2500000000065,
+ 179.30000000000652,
+ 179.35000000000653,
+ 179.40000000000654,
+ 179.45000000000655,
+ 179.50000000000657,
+ 179.55000000000658,
+ 179.6000000000066,
+ 179.6500000000066,
+ 179.7000000000066,
+ 179.75000000000662,
+ 179.80000000000663,
+ 179.85000000000664,
+ 179.90000000000666,
+ 179.95000000000667,
+ 180.00000000000668,
+ 180.0500000000067,
+ 180.1000000000067,
+ 180.1500000000067,
+ 180.20000000000672,
+ 180.25000000000674,
+ 180.30000000000675,
+ 180.35000000000676,
+ 180.40000000000677,
+ 180.45000000000678,
+ 180.5000000000068,
+ 180.5500000000068,
+ 180.60000000000682,
+ 180.65000000000683,
+ 180.70000000000684,
+ 180.75000000000685,
+ 180.80000000000686,
+ 180.85000000000687,
+ 180.90000000000688,
+ 180.9500000000069,
+ 181.0000000000069,
+ 181.05000000000692,
+ 181.10000000000693,
+ 181.15000000000694,
+ 181.20000000000695,
+ 181.25000000000696,
+ 181.30000000000697,
+ 181.350000000007,
+ 181.400000000007,
+ 181.450000000007,
+ 181.50000000000702,
+ 181.55000000000703,
+ 181.60000000000704,
+ 181.65000000000705,
+ 181.70000000000707,
+ 181.75000000000708,
+ 181.8000000000071,
+ 181.8500000000071,
+ 181.9000000000071,
+ 181.95000000000712,
+ 182.00000000000713,
+ 182.05000000000715,
+ 182.10000000000716,
+ 182.15000000000717,
+ 182.20000000000718,
+ 182.2500000000072,
+ 182.3000000000072,
+ 182.3500000000072,
+ 182.40000000000722,
+ 182.45000000000724,
+ 182.50000000000725,
+ 182.55000000000726,
+ 182.60000000000727,
+ 182.65000000000728,
+ 182.7000000000073,
+ 182.7500000000073,
+ 182.80000000000732,
+ 182.85000000000733,
+ 182.90000000000734,
+ 182.95000000000735,
+ 183.00000000000736,
+ 183.05000000000737,
+ 183.10000000000738,
+ 183.1500000000074,
+ 183.2000000000074,
+ 183.25000000000742,
+ 183.30000000000743,
+ 183.35000000000744,
+ 183.40000000000745,
+ 183.45000000000746,
+ 183.50000000000747,
+ 183.5500000000075,
+ 183.6000000000075,
+ 183.6500000000075,
+ 183.70000000000752,
+ 183.75000000000753,
+ 183.80000000000754,
+ 183.85000000000755,
+ 183.90000000000757,
+ 183.95000000000758,
+ 184.0000000000076,
+ 184.0500000000076,
+ 184.1000000000076,
+ 184.15000000000762,
+ 184.20000000000763,
+ 184.25000000000765,
+ 184.30000000000766,
+ 184.35000000000767,
+ 184.40000000000768,
+ 184.4500000000077,
+ 184.5000000000077,
+ 184.5500000000077,
+ 184.60000000000773,
+ 184.65000000000774,
+ 184.70000000000775,
+ 184.75000000000776,
+ 184.80000000000777,
+ 184.85000000000778,
+ 184.9000000000078,
+ 184.9500000000078,
+ 185.00000000000782,
+ 185.05000000000783,
+ 185.10000000000784,
+ 185.15000000000785,
+ 185.20000000000786,
+ 185.25000000000787,
+ 185.30000000000788,
+ 185.3500000000079,
+ 185.4000000000079,
+ 185.45000000000792,
+ 185.50000000000793,
+ 185.55000000000794,
+ 185.60000000000795,
+ 185.65000000000796,
+ 185.70000000000798,
+ 185.750000000008,
+ 185.800000000008,
+ 185.850000000008,
+ 185.90000000000802,
+ 185.95000000000803,
+ 186.00000000000804,
+ 186.05000000000805,
+ 186.10000000000807,
+ 186.15000000000808,
+ 186.2000000000081,
+ 186.2500000000081,
+ 186.3000000000081,
+ 186.35000000000812,
+ 186.40000000000813,
+ 186.45000000000815,
+ 186.50000000000816,
+ 186.55000000000817,
+ 186.60000000000818,
+ 186.6500000000082,
+ 186.7000000000082,
+ 186.7500000000082,
+ 186.80000000000823,
+ 186.85000000000824,
+ 186.90000000000825,
+ 186.95000000000826,
+ 187.00000000000827,
+ 187.05000000000828,
+ 187.1000000000083,
+ 187.1500000000083,
+ 187.20000000000832,
+ 187.25000000000833,
+ 187.30000000000834,
+ 187.35000000000835,
+ 187.40000000000836,
+ 187.45000000000837,
+ 187.50000000000838,
+ 187.5500000000084,
+ 187.6000000000084,
+ 187.65000000000842,
+ 187.70000000000843,
+ 187.75000000000844,
+ 187.80000000000845,
+ 187.85000000000846,
+ 187.90000000000848,
+ 187.9500000000085,
+ 188.0000000000085,
+ 188.0500000000085,
+ 188.10000000000852,
+ 188.15000000000853,
+ 188.20000000000854,
+ 188.25000000000855,
+ 188.30000000000857,
+ 188.35000000000858,
+ 188.4000000000086,
+ 188.4500000000086,
+ 188.5000000000086,
+ 188.55000000000862,
+ 188.60000000000863,
+ 188.65000000000865,
+ 188.70000000000866,
+ 188.75000000000867,
+ 188.80000000000868,
+ 188.8500000000087,
+ 188.9000000000087,
+ 188.9500000000087,
+ 189.00000000000873,
+ 189.05000000000874,
+ 189.10000000000875,
+ 189.15000000000876,
+ 189.20000000000877,
+ 189.25000000000878,
+ 189.3000000000088,
+ 189.3500000000088,
+ 189.40000000000882,
+ 189.45000000000883,
+ 189.50000000000884,
+ 189.55000000000885,
+ 189.60000000000886,
+ 189.65000000000887,
+ 189.70000000000888,
+ 189.7500000000089,
+ 189.8000000000089,
+ 189.85000000000892,
+ 189.90000000000893,
+ 189.95000000000894,
+ 190.00000000000895,
+ 190.05000000000896,
+ 190.10000000000898,
+ 190.150000000009,
+ 190.200000000009,
+ 190.250000000009,
+ 190.30000000000902,
+ 190.35000000000903,
+ 190.40000000000904,
+ 190.45000000000906,
+ 190.50000000000907,
+ 190.55000000000908,
+ 190.6000000000091,
+ 190.6500000000091,
+ 190.7000000000091,
+ 190.75000000000912,
+ 190.80000000000913,
+ 190.85000000000915,
+ 190.90000000000916,
+ 190.95000000000917,
+ 191.00000000000918,
+ 191.0500000000092,
+ 191.1000000000092,
+ 191.15000000000921,
+ 191.20000000000923,
+ 191.25000000000924,
+ 191.30000000000925,
+ 191.35000000000926,
+ 191.40000000000927,
+ 191.45000000000928,
+ 191.5000000000093,
+ 191.5500000000093,
+ 191.60000000000932,
+ 191.65000000000933,
+ 191.70000000000934,
+ 191.75000000000935,
+ 191.80000000000936,
+ 191.85000000000937,
+ 191.90000000000938,
+ 191.9500000000094,
+ 192.0000000000094,
+ 192.05000000000942,
+ 192.10000000000943,
+ 192.15000000000944,
+ 192.20000000000945,
+ 192.25000000000946,
+ 192.30000000000948,
+ 192.3500000000095,
+ 192.4000000000095,
+ 192.4500000000095,
+ 192.50000000000952,
+ 192.55000000000953,
+ 192.60000000000954,
+ 192.65000000000956,
+ 192.70000000000957,
+ 192.75000000000958,
+ 192.8000000000096,
+ 192.8500000000096,
+ 192.9000000000096,
+ 192.95000000000962,
+ 193.00000000000963,
+ 193.05000000000965,
+ 193.10000000000966,
+ 193.15000000000967,
+ 193.20000000000968,
+ 193.2500000000097,
+ 193.3000000000097,
+ 193.35000000000971,
+ 193.40000000000973,
+ 193.45000000000974,
+ 193.50000000000975,
+ 193.55000000000976,
+ 193.60000000000977,
+ 193.65000000000978,
+ 193.7000000000098,
+ 193.7500000000098,
+ 193.80000000000982,
+ 193.85000000000983,
+ 193.90000000000984,
+ 193.95000000000985,
+ 194.00000000000986,
+ 194.05000000000987,
+ 194.10000000000989,
+ 194.1500000000099,
+ 194.2000000000099,
+ 194.25000000000992,
+ 194.30000000000993,
+ 194.35000000000994,
+ 194.40000000000995,
+ 194.45000000000996,
+ 194.50000000000998,
+ 194.55000000001,
+ 194.60000000001,
+ 194.65000000001,
+ 194.70000000001002,
+ 194.75000000001003,
+ 194.80000000001004,
+ 194.85000000001006,
+ 194.90000000001007,
+ 194.95000000001008,
+ 195.0000000000101,
+ 195.0500000000101,
+ 195.1000000000101,
+ 195.15000000001012,
+ 195.20000000001014,
+ 195.25000000001015,
+ 195.30000000001016,
+ 195.35000000001017,
+ 195.40000000001018,
+ 195.4500000000102,
+ 195.5000000000102,
+ 195.55000000001021,
+ 195.60000000001023,
+ 195.65000000001024,
+ 195.70000000001025,
+ 195.75000000001026,
+ 195.80000000001027,
+ 195.85000000001028,
+ 195.9000000000103,
+ 195.9500000000103,
+ 196.00000000001032,
+ 196.05000000001033,
+ 196.10000000001034,
+ 196.15000000001035,
+ 196.20000000001036,
+ 196.25000000001037,
+ 196.30000000001039,
+ 196.3500000000104,
+ 196.4000000000104,
+ 196.45000000001042,
+ 196.50000000001043,
+ 196.55000000001044,
+ 196.60000000001045,
+ 196.65000000001046,
+ 196.70000000001048,
+ 196.7500000000105,
+ 196.8000000000105,
+ 196.8500000000105,
+ 196.90000000001052,
+ 196.95000000001053,
+ 197.00000000001054,
+ 197.05000000001056,
+ 197.10000000001057,
+ 197.15000000001058,
+ 197.2000000000106,
+ 197.2500000000106,
+ 197.3000000000106,
+ 197.35000000001062,
+ 197.40000000001064,
+ 197.45000000001065,
+ 197.50000000001066,
+ 197.55000000001067,
+ 197.60000000001068,
+ 197.6500000000107,
+ 197.7000000000107,
+ 197.75000000001071,
+ 197.80000000001073,
+ 197.85000000001074,
+ 197.90000000001075,
+ 197.95000000001076,
+ 198.00000000001077,
+ 198.05000000001078,
+ 198.1000000000108,
+ 198.1500000000108,
+ 198.20000000001082,
+ 198.25000000001083,
+ 198.30000000001084,
+ 198.35000000001085,
+ 198.40000000001086,
+ 198.45000000001087,
+ 198.50000000001089,
+ 198.5500000000109,
+ 198.6000000000109,
+ 198.65000000001092,
+ 198.70000000001093,
+ 198.75000000001094,
+ 198.80000000001095,
+ 198.85000000001097,
+ 198.90000000001098,
+ 198.950000000011,
+ 199.000000000011,
+ 199.050000000011,
+ 199.10000000001102,
+ 199.15000000001103,
+ 199.20000000001104,
+ 199.25000000001106,
+ 199.30000000001107,
+ 199.35000000001108,
+ 199.4000000000111,
+ 199.4500000000111,
+ 199.5000000000111,
+ 199.55000000001112,
+ 199.60000000001114,
+ 199.65000000001115,
+ 199.70000000001116,
+ 199.75000000001117,
+ 199.80000000001118,
+ 199.8500000000112,
+ 199.9000000000112,
+ 199.95000000001122,
+ 200.00000000001123,
+ 200.05000000001124,
+ 200.10000000001125,
+ 200.15000000001126,
+ 200.20000000001127,
+ 200.25000000001128,
+ 200.3000000000113,
+ 200.3500000000113,
+ 200.40000000001132,
+ 200.45000000001133,
+ 200.50000000001134,
+ 200.55000000001135,
+ 200.60000000001136,
+ 200.65000000001137,
+ 200.70000000001139,
+ 200.7500000000114,
+ 200.8000000000114,
+ 200.85000000001142,
+ 200.90000000001143,
+ 200.95000000001144,
+ 201.00000000001145,
+ 201.05000000001147,
+ 201.10000000001148,
+ 201.1500000000115,
+ 201.2000000000115,
+ 201.2500000000115,
+ 201.30000000001152,
+ 201.35000000001153,
+ 201.40000000001154,
+ 201.45000000001156,
+ 201.50000000001157,
+ 201.55000000001158,
+ 201.6000000000116,
+ 201.6500000000116,
+ 201.7000000000116,
+ 201.75000000001162,
+ 201.80000000001164,
+ 201.85000000001165,
+ 201.90000000001166,
+ 201.95000000001167,
+ 202.00000000001168,
+ 202.0500000000117,
+ 202.1000000000117,
+ 202.15000000001172,
+ 202.20000000001173,
+ 202.25000000001174,
+ 202.30000000001175,
+ 202.35000000001176,
+ 202.40000000001177,
+ 202.45000000001178,
+ 202.5000000000118,
+ 202.5500000000118,
+ 202.60000000001182,
+ 202.65000000001183,
+ 202.70000000001184,
+ 202.75000000001185,
+ 202.80000000001186,
+ 202.85000000001187,
+ 202.9000000000119,
+ 202.9500000000119,
+ 203.0000000000119,
+ 203.05000000001192,
+ 203.10000000001193,
+ 203.15000000001194,
+ 203.20000000001195,
+ 203.25000000001197,
+ 203.30000000001198,
+ 203.350000000012,
+ 203.400000000012,
+ 203.450000000012,
+ 203.50000000001202,
+ 203.55000000001203,
+ 203.60000000001205,
+ 203.65000000001206,
+ 203.70000000001207,
+ 203.75000000001208,
+ 203.8000000000121,
+ 203.8500000000121,
+ 203.9000000000121,
+ 203.95000000001212,
+ 204.00000000001214,
+ 204.05000000001215,
+ 204.10000000001216,
+ 204.15000000001217,
+ 204.20000000001218,
+ 204.2500000000122,
+ 204.3000000000122,
+ 204.35000000001222,
+ 204.40000000001223,
+ 204.45000000001224,
+ 204.50000000001225,
+ 204.55000000001226,
+ 204.60000000001227,
+ 204.65000000001228,
+ 204.7000000000123,
+ 204.7500000000123,
+ 204.80000000001232,
+ 204.85000000001233,
+ 204.90000000001234,
+ 204.95000000001235,
+ 205.00000000001236,
+ 205.05000000001237,
+ 205.1000000000124,
+ 205.1500000000124,
+ 205.2000000000124,
+ 205.25000000001242,
+ 205.30000000001243,
+ 205.35000000001244,
+ 205.40000000001245,
+ 205.45000000001247,
+ 205.50000000001248,
+ 205.5500000000125,
+ 205.6000000000125,
+ 205.6500000000125,
+ 205.70000000001252,
+ 205.75000000001253,
+ 205.80000000001255,
+ 205.85000000001256,
+ 205.90000000001257,
+ 205.95000000001258,
+ 206.0000000000126,
+ 206.0500000000126,
+ 206.1000000000126,
+ 206.15000000001262,
+ 206.20000000001264,
+ 206.25000000001265,
+ 206.30000000001266,
+ 206.35000000001267,
+ 206.40000000001268,
+ 206.4500000000127,
+ 206.5000000000127,
+ 206.55000000001272,
+ 206.60000000001273,
+ 206.65000000001274,
+ 206.70000000001275,
+ 206.75000000001276,
+ 206.80000000001277,
+ 206.85000000001278,
+ 206.9000000000128,
+ 206.9500000000128,
+ 207.00000000001282,
+ 207.05000000001283,
+ 207.10000000001284,
+ 207.15000000001285,
+ 207.20000000001286,
+ 207.25000000001288,
+ 207.3000000000129,
+ 207.3500000000129,
+ 207.4000000000129,
+ 207.45000000001292,
+ 207.50000000001293,
+ 207.55000000001294,
+ 207.60000000001295,
+ 207.65000000001297,
+ 207.70000000001298,
+ 207.750000000013,
+ 207.800000000013,
+ 207.850000000013,
+ 207.90000000001302,
+ 207.95000000001303,
+ 208.00000000001305,
+ 208.05000000001306,
+ 208.10000000001307,
+ 208.15000000001308,
+ 208.2000000000131,
+ 208.2500000000131,
+ 208.3000000000131,
+ 208.35000000001313,
+ 208.40000000001314,
+ 208.45000000001315,
+ 208.50000000001316,
+ 208.55000000001317,
+ 208.60000000001318,
+ 208.6500000000132,
+ 208.7000000000132,
+ 208.75000000001322,
+ 208.80000000001323,
+ 208.85000000001324,
+ 208.90000000001325,
+ 208.95000000001326,
+ 209.00000000001327,
+ 209.05000000001328,
+ 209.1000000000133,
+ 209.1500000000133,
+ 209.20000000001332,
+ 209.25000000001333,
+ 209.30000000001334,
+ 209.35000000001335,
+ 209.40000000001336,
+ 209.45000000001338,
+ 209.5000000000134,
+ 209.5500000000134,
+ 209.6000000000134,
+ 209.65000000001342,
+ 209.70000000001343,
+ 209.75000000001344,
+ 209.80000000001345,
+ 209.85000000001347,
+ 209.90000000001348,
+ 209.9500000000135,
+ 210.0000000000135,
+ 210.0500000000135,
+ 210.10000000001352,
+ 210.15000000001353,
+ 210.20000000001355,
+ 210.25000000001356,
+ 210.30000000001357,
+ 210.35000000001358,
+ 210.4000000000136,
+ 210.4500000000136,
+ 210.5000000000136,
+ 210.55000000001363,
+ 210.60000000001364,
+ 210.65000000001365,
+ 210.70000000001366,
+ 210.75000000001367,
+ 210.80000000001368,
+ 210.8500000000137,
+ 210.9000000000137,
+ 210.95000000001372,
+ 211.00000000001373,
+ 211.05000000001374,
+ 211.10000000001375,
+ 211.15000000001376,
+ 211.20000000001377,
+ 211.25000000001378,
+ 211.3000000000138,
+ 211.3500000000138,
+ 211.40000000001382,
+ 211.45000000001383,
+ 211.50000000001384,
+ 211.55000000001385,
+ 211.60000000001386,
+ 211.65000000001388,
+ 211.7000000000139,
+ 211.7500000000139,
+ 211.8000000000139,
+ 211.85000000001392,
+ 211.90000000001393,
+ 211.95000000001394,
+ 212.00000000001396,
+ 212.05000000001397,
+ 212.10000000001398,
+ 212.150000000014,
+ 212.200000000014,
+ 212.250000000014,
+ 212.30000000001402,
+ 212.35000000001403,
+ 212.40000000001405,
+ 212.45000000001406,
+ 212.50000000001407,
+ 212.55000000001408,
+ 212.6000000000141,
+ 212.6500000000141,
+ 212.70000000001411,
+ 212.75000000001413,
+ 212.80000000001414,
+ 212.85000000001415,
+ 212.90000000001416,
+ 212.95000000001417,
+ 213.00000000001418,
+ 213.0500000000142,
+ 213.1000000000142,
+ 213.15000000001422,
+ 213.20000000001423,
+ 213.25000000001424,
+ 213.30000000001425,
+ 213.35000000001426,
+ 213.40000000001427,
+ 213.45000000001428,
+ 213.5000000000143,
+ 213.5500000000143,
+ 213.60000000001432,
+ 213.65000000001433,
+ 213.70000000001434,
+ 213.75000000001435,
+ 213.80000000001436,
+ 213.85000000001438,
+ 213.9000000000144,
+ 213.9500000000144,
+ 214.0000000000144,
+ 214.05000000001442,
+ 214.10000000001443,
+ 214.15000000001444,
+ 214.20000000001446,
+ 214.25000000001447,
+ 214.30000000001448,
+ 214.3500000000145,
+ 214.4000000000145,
+ 214.4500000000145,
+ 214.50000000001452,
+ 214.55000000001453,
+ 214.60000000001455,
+ 214.65000000001456,
+ 214.70000000001457,
+ 214.75000000001458,
+ 214.8000000000146,
+ 214.8500000000146,
+ 214.90000000001461,
+ 214.95000000001463,
+ 215.00000000001464,
+ 215.05000000001465,
+ 215.10000000001466,
+ 215.15000000001467,
+ 215.20000000001468,
+ 215.2500000000147,
+ 215.3000000000147,
+ 215.35000000001472,
+ 215.40000000001473,
+ 215.45000000001474,
+ 215.50000000001475,
+ 215.55000000001476,
+ 215.60000000001477,
+ 215.65000000001478,
+ 215.7000000000148,
+ 215.7500000000148,
+ 215.80000000001482,
+ 215.85000000001483,
+ 215.90000000001484,
+ 215.95000000001485,
+ 216.00000000001486,
+ 216.05000000001488,
+ 216.1000000000149,
+ 216.1500000000149,
+ 216.2000000000149,
+ 216.25000000001492,
+ 216.30000000001493,
+ 216.35000000001494,
+ 216.40000000001496,
+ 216.45000000001497,
+ 216.50000000001498,
+ 216.550000000015,
+ 216.600000000015,
+ 216.650000000015,
+ 216.70000000001502,
+ 216.75000000001504,
+ 216.80000000001505,
+ 216.85000000001506,
+ 216.90000000001507,
+ 216.95000000001508,
+ 217.0000000000151,
+ 217.0500000000151,
+ 217.10000000001511,
+ 217.15000000001513,
+ 217.20000000001514,
+ 217.25000000001515,
+ 217.30000000001516,
+ 217.35000000001517,
+ 217.40000000001518,
+ 217.4500000000152,
+ 217.5000000000152,
+ 217.55000000001522,
+ 217.60000000001523,
+ 217.65000000001524,
+ 217.70000000001525,
+ 217.75000000001526,
+ 217.80000000001527,
+ 217.85000000001529,
+ 217.9000000000153,
+ 217.9500000000153,
+ 218.00000000001532,
+ 218.05000000001533,
+ 218.10000000001534,
+ 218.15000000001535,
+ 218.20000000001536,
+ 218.25000000001538,
+ 218.3000000000154,
+ 218.3500000000154,
+ 218.4000000000154,
+ 218.45000000001542,
+ 218.50000000001543,
+ 218.55000000001544,
+ 218.60000000001546,
+ 218.65000000001547,
+ 218.70000000001548,
+ 218.7500000000155,
+ 218.8000000000155,
+ 218.8500000000155,
+ 218.90000000001552,
+ 218.95000000001554,
+ 219.00000000001555,
+ 219.05000000001556,
+ 219.10000000001557,
+ 219.15000000001558,
+ 219.2000000000156,
+ 219.2500000000156,
+ 219.30000000001561,
+ 219.35000000001563,
+ 219.40000000001564,
+ 219.45000000001565,
+ 219.50000000001566,
+ 219.55000000001567,
+ 219.60000000001568,
+ 219.6500000000157,
+ 219.7000000000157,
+ 219.75000000001572,
+ 219.80000000001573,
+ 219.85000000001574,
+ 219.90000000001575,
+ 219.95000000001576,
+ 220.00000000001577,
+ 220.05000000001579,
+ 220.1000000000158,
+ 220.1500000000158,
+ 220.20000000001582,
+ 220.25000000001583,
+ 220.30000000001584,
+ 220.35000000001585,
+ 220.40000000001586,
+ 220.45000000001588,
+ 220.5000000000159,
+ 220.5500000000159,
+ 220.6000000000159,
+ 220.65000000001592,
+ 220.70000000001593,
+ 220.75000000001594,
+ 220.80000000001596,
+ 220.85000000001597,
+ 220.90000000001598,
+ 220.950000000016,
+ 221.000000000016,
+ 221.050000000016,
+ 221.10000000001602,
+ 221.15000000001604,
+ 221.20000000001605,
+ 221.25000000001606,
+ 221.30000000001607,
+ 221.35000000001608,
+ 221.4000000000161,
+ 221.4500000000161,
+ 221.50000000001612,
+ 221.55000000001613,
+ 221.60000000001614,
+ 221.65000000001615,
+ 221.70000000001616,
+ 221.75000000001617,
+ 221.80000000001618,
+ 221.8500000000162,
+ 221.9000000000162,
+ 221.95000000001622,
+ 222.00000000001623,
+ 222.05000000001624,
+ 222.10000000001625,
+ 222.15000000001626,
+ 222.20000000001627,
+ 222.25000000001629,
+ 222.3000000000163,
+ 222.3500000000163,
+ 222.40000000001632,
+ 222.45000000001633,
+ 222.50000000001634,
+ 222.55000000001635,
+ 222.60000000001637,
+ 222.65000000001638,
+ 222.7000000000164,
+ 222.7500000000164,
+ 222.8000000000164,
+ 222.85000000001642,
+ 222.90000000001643,
+ 222.95000000001644,
+ 223.00000000001646,
+ 223.05000000001647,
+ 223.10000000001648,
+ 223.1500000000165,
+ 223.2000000000165,
+ 223.2500000000165,
+ 223.30000000001652,
+ 223.35000000001654,
+ 223.40000000001655,
+ 223.45000000001656,
+ 223.50000000001657,
+ 223.55000000001658,
+ 223.6000000000166,
+ 223.6500000000166,
+ 223.70000000001662,
+ 223.75000000001663,
+ 223.80000000001664,
+ 223.85000000001665,
+ 223.90000000001666,
+ 223.95000000001667,
+ 224.00000000001668,
+ 224.0500000000167,
+ 224.1000000000167,
+ 224.15000000001672,
+ 224.20000000001673,
+ 224.25000000001674,
+ 224.30000000001675,
+ 224.35000000001676,
+ 224.40000000001677,
+ 224.4500000000168,
+ 224.5000000000168,
+ 224.5500000000168,
+ 224.60000000001682,
+ 224.65000000001683,
+ 224.70000000001684,
+ 224.75000000001685,
+ 224.80000000001687,
+ 224.85000000001688,
+ 224.9000000000169,
+ 224.9500000000169,
+ 225.0000000000169,
+ 225.05000000001692,
+ 225.10000000001693,
+ 225.15000000001695,
+ 225.20000000001696,
+ 225.25000000001697,
+ 225.30000000001698,
+ 225.350000000017,
+ 225.400000000017,
+ 225.450000000017,
+ 225.50000000001702,
+ 225.55000000001704,
+ 225.60000000001705,
+ 225.65000000001706,
+ 225.70000000001707,
+ 225.75000000001708,
+ 225.8000000000171,
+ 225.8500000000171,
+ 225.90000000001712,
+ 225.95000000001713,
+ 226.00000000001714,
+ 226.05000000001715,
+ 226.10000000001716,
+ 226.15000000001717,
+ 226.20000000001718,
+ 226.2500000000172,
+ 226.3000000000172,
+ 226.35000000001722,
+ 226.40000000001723,
+ 226.45000000001724,
+ 226.50000000001725,
+ 226.55000000001726,
+ 226.60000000001727,
+ 226.6500000000173,
+ 226.7000000000173,
+ 226.7500000000173,
+ 226.80000000001732,
+ 226.85000000001733,
+ 226.90000000001734,
+ 226.95000000001735,
+ 227.00000000001737,
+ 227.05000000001738,
+ 227.1000000000174,
+ 227.1500000000174,
+ 227.2000000000174,
+ 227.25000000001742,
+ 227.30000000001743,
+ 227.35000000001745,
+ 227.40000000001746,
+ 227.45000000001747,
+ 227.50000000001748,
+ 227.5500000000175,
+ 227.6000000000175,
+ 227.6500000000175,
+ 227.70000000001752,
+ 227.75000000001754,
+ 227.80000000001755,
+ 227.85000000001756,
+ 227.90000000001757,
+ 227.95000000001758,
+ 228.0000000000176,
+ 228.0500000000176,
+ 228.10000000001762,
+ 228.15000000001763,
+ 228.20000000001764,
+ 228.25000000001765,
+ 228.30000000001766,
+ 228.35000000001767,
+ 228.40000000001768,
+ 228.4500000000177,
+ 228.5000000000177,
+ 228.55000000001772,
+ 228.60000000001773,
+ 228.65000000001774,
+ 228.70000000001775,
+ 228.75000000001776,
+ 228.80000000001777,
+ 228.8500000000178,
+ 228.9000000000178,
+ 228.9500000000178,
+ 229.00000000001782,
+ 229.05000000001783,
+ 229.10000000001784,
+ 229.15000000001785,
+ 229.20000000001787,
+ 229.25000000001788,
+ 229.3000000000179,
+ 229.3500000000179,
+ 229.4000000000179,
+ 229.45000000001792,
+ 229.50000000001793,
+ 229.55000000001795,
+ 229.60000000001796,
+ 229.65000000001797,
+ 229.70000000001798,
+ 229.750000000018,
+ 229.800000000018,
+ 229.850000000018,
+ 229.90000000001803,
+ 229.95000000001804,
+ 230.00000000001805,
+ 230.05000000001806,
+ 230.10000000001807,
+ 230.15000000001808,
+ 230.2000000000181,
+ 230.2500000000181,
+ 230.30000000001812,
+ 230.35000000001813,
+ 230.40000000001814,
+ 230.45000000001815,
+ 230.50000000001816,
+ 230.55000000001817,
+ 230.60000000001818,
+ 230.6500000000182,
+ 230.7000000000182,
+ 230.75000000001822,
+ 230.80000000001823,
+ 230.85000000001824,
+ 230.90000000001825,
+ 230.95000000001826,
+ 231.00000000001828,
+ 231.0500000000183,
+ 231.1000000000183,
+ 231.1500000000183,
+ 231.20000000001832,
+ 231.25000000001833,
+ 231.30000000001834,
+ 231.35000000001835,
+ 231.40000000001837,
+ 231.45000000001838,
+ 231.5000000000184,
+ 231.5500000000184,
+ 231.6000000000184,
+ 231.65000000001842,
+ 231.70000000001843,
+ 231.75000000001845,
+ 231.80000000001846,
+ 231.85000000001847,
+ 231.90000000001848,
+ 231.9500000000185,
+ 232.0000000000185,
+ 232.0500000000185,
+ 232.10000000001853,
+ 232.15000000001854,
+ 232.20000000001855,
+ 232.25000000001856,
+ 232.30000000001857,
+ 232.35000000001858,
+ 232.4000000000186,
+ 232.4500000000186,
+ 232.50000000001862,
+ 232.55000000001863,
+ 232.60000000001864,
+ 232.65000000001865,
+ 232.70000000001866,
+ 232.75000000001867,
+ 232.80000000001868,
+ 232.8500000000187,
+ 232.9000000000187,
+ 232.95000000001872,
+ 233.00000000001873,
+ 233.05000000001874,
+ 233.10000000001875,
+ 233.15000000001876,
+ 233.20000000001878,
+ 233.2500000000188,
+ 233.3000000000188,
+ 233.3500000000188,
+ 233.40000000001882,
+ 233.45000000001883,
+ 233.50000000001884,
+ 233.55000000001885,
+ 233.60000000001887,
+ 233.65000000001888,
+ 233.7000000000189,
+ 233.7500000000189,
+ 233.8000000000189,
+ 233.85000000001892,
+ 233.90000000001893,
+ 233.95000000001895,
+ 234.00000000001896,
+ 234.05000000001897,
+ 234.10000000001898,
+ 234.150000000019,
+ 234.200000000019,
+ 234.250000000019,
+ 234.30000000001903,
+ 234.35000000001904,
+ 234.40000000001905,
+ 234.45000000001906,
+ 234.50000000001907,
+ 234.55000000001908,
+ 234.6000000000191,
+ 234.6500000000191,
+ 234.70000000001912,
+ 234.75000000001913,
+ 234.80000000001914,
+ 234.85000000001915,
+ 234.90000000001916,
+ 234.95000000001917,
+ 235.00000000001918,
+ 235.0500000000192,
+ 235.1000000000192,
+ 235.15000000001922,
+ 235.20000000001923,
+ 235.25000000001924,
+ 235.30000000001925,
+ 235.35000000001926,
+ 235.40000000001928,
+ 235.4500000000193,
+ 235.5000000000193,
+ 235.5500000000193,
+ 235.60000000001932,
+ 235.65000000001933,
+ 235.70000000001934,
+ 235.75000000001936,
+ 235.80000000001937,
+ 235.85000000001938,
+ 235.9000000000194,
+ 235.9500000000194,
+ 236.0000000000194,
+ 236.05000000001942,
+ 236.10000000001943,
+ 236.15000000001945,
+ 236.20000000001946,
+ 236.25000000001947,
+ 236.30000000001948,
+ 236.3500000000195,
+ 236.4000000000195,
+ 236.45000000001951,
+ 236.50000000001953,
+ 236.55000000001954,
+ 236.60000000001955,
+ 236.65000000001956,
+ 236.70000000001957,
+ 236.75000000001958,
+ 236.8000000000196,
+ 236.8500000000196,
+ 236.90000000001962,
+ 236.95000000001963,
+ 237.00000000001964,
+ 237.05000000001965,
+ 237.10000000001966,
+ 237.15000000001967,
+ 237.20000000001968,
+ 237.2500000000197,
+ 237.3000000000197,
+ 237.35000000001972,
+ 237.40000000001973,
+ 237.45000000001974,
+ 237.50000000001975,
+ 237.55000000001976,
+ 237.60000000001978,
+ 237.6500000000198,
+ 237.7000000000198,
+ 237.7500000000198,
+ 237.80000000001982,
+ 237.85000000001983,
+ 237.90000000001984,
+ 237.95000000001986,
+ 238.00000000001987,
+ 238.05000000001988,
+ 238.1000000000199,
+ 238.1500000000199,
+ 238.2000000000199,
+ 238.25000000001992,
+ 238.30000000001993,
+ 238.35000000001995,
+ 238.40000000001996,
+ 238.45000000001997,
+ 238.50000000001998,
+ 238.55000000002,
+ 238.60000000002,
+ 238.65000000002001,
+ 238.70000000002003,
+ 238.75000000002004,
+ 238.80000000002005,
+ 238.85000000002006,
+ 238.90000000002007,
+ 238.95000000002008,
+ 239.0000000000201,
+ 239.0500000000201,
+ 239.10000000002012,
+ 239.15000000002013,
+ 239.20000000002014,
+ 239.25000000002015,
+ 239.30000000002016,
+ 239.35000000002017,
+ 239.40000000002019,
+ 239.4500000000202,
+ 239.5000000000202,
+ 239.55000000002022,
+ 239.60000000002023,
+ 239.65000000002024,
+ 239.70000000002025,
+ 239.75000000002026,
+ 239.80000000002028,
+ 239.8500000000203,
+ 239.9000000000203,
+ 239.9500000000203,
+ 240.00000000002032,
+ 240.05000000002033,
+ 240.10000000002034,
+ 240.15000000002036,
+ 240.20000000002037,
+ 240.25000000002038,
+ 240.3000000000204,
+ 240.3500000000204,
+ 240.4000000000204,
+ 240.45000000002042,
+ 240.50000000002044,
+ 240.55000000002045,
+ 240.60000000002046,
+ 240.65000000002047,
+ 240.70000000002048,
+ 240.7500000000205,
+ 240.8000000000205,
+ 240.85000000002051,
+ 240.90000000002053,
+ 240.95000000002054,
+ 241.00000000002055,
+ 241.05000000002056,
+ 241.10000000002057,
+ 241.15000000002058,
+ 241.2000000000206,
+ 241.2500000000206,
+ 241.30000000002062,
+ 241.35000000002063,
+ 241.40000000002064,
+ 241.45000000002065,
+ 241.50000000002066,
+ 241.55000000002067,
+ 241.60000000002069,
+ 241.6500000000207,
+ 241.7000000000207,
+ 241.75000000002072,
+ 241.80000000002073,
+ 241.85000000002074,
+ 241.90000000002075,
+ 241.95000000002076,
+ 242.00000000002078,
+ 242.0500000000208,
+ 242.1000000000208,
+ 242.1500000000208,
+ 242.20000000002082,
+ 242.25000000002083,
+ 242.30000000002084,
+ 242.35000000002086,
+ 242.40000000002087,
+ 242.45000000002088,
+ 242.5000000000209,
+ 242.5500000000209,
+ 242.6000000000209,
+ 242.65000000002092,
+ 242.70000000002094,
+ 242.75000000002095,
+ 242.80000000002096,
+ 242.85000000002097,
+ 242.90000000002098,
+ 242.950000000021,
+ 243.000000000021,
+ 243.05000000002102,
+ 243.10000000002103,
+ 243.15000000002104,
+ 243.20000000002105,
+ 243.25000000002106,
+ 243.30000000002107,
+ 243.35000000002108,
+ 243.4000000000211,
+ 243.4500000000211,
+ 243.50000000002112,
+ 243.55000000002113,
+ 243.60000000002114,
+ 243.65000000002115,
+ 243.70000000002116,
+ 243.75000000002117,
+ 243.80000000002119,
+ 243.8500000000212,
+ 243.9000000000212,
+ 243.95000000002122,
+ 244.00000000002123,
+ 244.05000000002124,
+ 244.10000000002125,
+ 244.15000000002127,
+ 244.20000000002128,
+ 244.2500000000213,
+ 244.3000000000213,
+ 244.3500000000213,
+ 244.40000000002132,
+ 244.45000000002133,
+ 244.50000000002134,
+ 244.55000000002136,
+ 244.60000000002137,
+ 244.65000000002138,
+ 244.7000000000214,
+ 244.7500000000214,
+ 244.8000000000214,
+ 244.85000000002142,
+ 244.90000000002144,
+ 244.95000000002145,
+ 245.00000000002146,
+ 245.05000000002147,
+ 245.10000000002148,
+ 245.1500000000215,
+ 245.2000000000215,
+ 245.25000000002152,
+ 245.30000000002153,
+ 245.35000000002154,
+ 245.40000000002155,
+ 245.45000000002156,
+ 245.50000000002157,
+ 245.55000000002158,
+ 245.6000000000216,
+ 245.6500000000216,
+ 245.70000000002162,
+ 245.75000000002163,
+ 245.80000000002164,
+ 245.85000000002165,
+ 245.90000000002166,
+ 245.95000000002167,
+ 246.00000000002169,
+ 246.0500000000217,
+ 246.1000000000217,
+ 246.15000000002172,
+ 246.20000000002173,
+ 246.25000000002174,
+ 246.30000000002175,
+ 246.35000000002177,
+ 246.40000000002178,
+ 246.4500000000218,
+ 246.5000000000218,
+ 246.5500000000218,
+ 246.60000000002182,
+ 246.65000000002183,
+ 246.70000000002184,
+ 246.75000000002186,
+ 246.80000000002187,
+ 246.85000000002188,
+ 246.9000000000219,
+ 246.9500000000219,
+ 247.0000000000219,
+ 247.05000000002192,
+ 247.10000000002194,
+ 247.15000000002195,
+ 247.20000000002196,
+ 247.25000000002197,
+ 247.30000000002198,
+ 247.350000000022,
+ 247.400000000022,
+ 247.45000000002202,
+ 247.50000000002203,
+ 247.55000000002204,
+ 247.60000000002205,
+ 247.65000000002206,
+ 247.70000000002207,
+ 247.75000000002208,
+ 247.8000000000221,
+ 247.8500000000221,
+ 247.90000000002212,
+ 247.95000000002213,
+ 248.00000000002214,
+ 248.05000000002215,
+ 248.10000000002216,
+ 248.15000000002217,
+ 248.2000000000222,
+ 248.2500000000222,
+ 248.3000000000222,
+ 248.35000000002222,
+ 248.40000000002223,
+ 248.45000000002224,
+ 248.50000000002225,
+ 248.55000000002227,
+ 248.60000000002228,
+ 248.6500000000223,
+ 248.7000000000223,
+ 248.7500000000223,
+ 248.80000000002232,
+ 248.85000000002233,
+ 248.90000000002235,
+ 248.95000000002236,
+ 249.00000000002237,
+ 249.05000000002238,
+ 249.1000000000224,
+ 249.1500000000224,
+ 249.2000000000224,
+ 249.25000000002242,
+ 249.30000000002244,
+ 249.35000000002245,
+ 249.40000000002246,
+ 249.45000000002247,
+ 249.50000000002248,
+ 249.5500000000225,
+ 249.6000000000225,
+ 249.65000000002252,
+ 249.70000000002253,
+ 249.75000000002254,
+ 249.80000000002255,
+ 249.85000000002256,
+ 249.90000000002257,
+ 249.95000000002258,
+ 250.0000000000226,
+ 250.0500000000226,
+ 250.10000000002262,
+ 250.15000000002263,
+ 250.20000000002264,
+ 250.25000000002265,
+ 250.30000000002266,
+ 250.35000000002267,
+ 250.4000000000227,
+ 250.4500000000227,
+ 250.5000000000227,
+ 250.55000000002272,
+ 250.60000000002273,
+ 250.65000000002274,
+ 250.70000000002275,
+ 250.75000000002277,
+ 250.80000000002278,
+ 250.8500000000228,
+ 250.9000000000228,
+ 250.9500000000228,
+ 251.00000000002282,
+ 251.05000000002283,
+ 251.10000000002285,
+ 251.15000000002286,
+ 251.20000000002287,
+ 251.25000000002288,
+ 251.3000000000229,
+ 251.3500000000229,
+ 251.4000000000229,
+ 251.45000000002292,
+ 251.50000000002294,
+ 251.55000000002295,
+ 251.60000000002296,
+ 251.65000000002297,
+ 251.70000000002298,
+ 251.750000000023,
+ 251.800000000023,
+ 251.85000000002302,
+ 251.90000000002303,
+ 251.95000000002304,
+ 252.00000000002305,
+ 252.05000000002306,
+ 252.10000000002307,
+ 252.15000000002308,
+ 252.2000000000231,
+ 252.2500000000231,
+ 252.30000000002312,
+ 252.35000000002313,
+ 252.40000000002314,
+ 252.45000000002315,
+ 252.50000000002316,
+ 252.55000000002318,
+ 252.6000000000232,
+ 252.6500000000232,
+ 252.7000000000232,
+ 252.75000000002322,
+ 252.80000000002323,
+ 252.85000000002324,
+ 252.90000000002325,
+ 252.95000000002327,
+ 253.00000000002328,
+ 253.0500000000233,
+ 253.1000000000233,
+ 253.1500000000233,
+ 253.20000000002332,
+ 253.25000000002333,
+ 253.30000000002335,
+ 253.35000000002336,
+ 253.40000000002337,
+ 253.45000000002338,
+ 253.5000000000234,
+ 253.5500000000234,
+ 253.6000000000234,
+ 253.65000000002343,
+ 253.70000000002344,
+ 253.75000000002345,
+ 253.80000000002346,
+ 253.85000000002347,
+ 253.90000000002348,
+ 253.9500000000235,
+ 254.0000000000235,
+ 254.05000000002352,
+ 254.10000000002353,
+ 254.15000000002354,
+ 254.20000000002355,
+ 254.25000000002356,
+ 254.30000000002357,
+ 254.35000000002358,
+ 254.4000000000236,
+ 254.4500000000236,
+ 254.50000000002362,
+ 254.55000000002363,
+ 254.60000000002364,
+ 254.65000000002365,
+ 254.70000000002366,
+ 254.75000000002368,
+ 254.8000000000237,
+ 254.8500000000237,
+ 254.9000000000237,
+ 254.95000000002372,
+ 255.00000000002373,
+ 255.05000000002374,
+ 255.10000000002375,
+ 255.15000000002377,
+ 255.20000000002378,
+ 255.2500000000238,
+ 255.3000000000238,
+ 255.3500000000238,
+ 255.40000000002382,
+ 255.45000000002383,
+ 255.50000000002385,
+ 255.55000000002386,
+ 255.60000000002387,
+ 255.65000000002388,
+ 255.7000000000239,
+ 255.7500000000239,
+ 255.8000000000239,
+ 255.85000000002393,
+ 255.90000000002394,
+ 255.95000000002395,
+ 256.00000000002393,
+ 256.05000000002394,
+ 256.10000000002395,
+ 256.15000000002397,
+ 256.200000000024,
+ 256.250000000024,
+ 256.300000000024,
+ 256.350000000024,
+ 256.400000000024,
+ 256.45000000002403,
+ 256.50000000002404,
+ 256.55000000002406,
+ 256.60000000002407,
+ 256.6500000000241,
+ 256.7000000000241,
+ 256.7500000000241,
+ 256.8000000000241,
+ 256.8500000000241,
+ 256.90000000002414,
+ 256.95000000002415,
+ 257.00000000002416,
+ 257.05000000002417,
+ 257.1000000000242,
+ 257.1500000000242,
+ 257.2000000000242,
+ 257.2500000000242,
+ 257.3000000000242,
+ 257.35000000002424,
+ 257.40000000002425,
+ 257.45000000002426,
+ 257.5000000000243,
+ 257.5500000000243,
+ 257.6000000000243,
+ 257.6500000000243,
+ 257.7000000000243,
+ 257.75000000002433,
+ 257.80000000002434,
+ 257.85000000002435,
+ 257.90000000002436,
+ 257.9500000000244,
+ 258.0000000000244,
+ 258.0500000000244,
+ 258.1000000000244,
+ 258.1500000000244,
+ 258.20000000002443,
+ 258.25000000002444,
+ 258.30000000002445,
+ 258.35000000002447,
+ 258.4000000000245,
+ 258.4500000000245,
+ 258.5000000000245,
+ 258.5500000000245,
+ 258.6000000000245,
+ 258.65000000002453,
+ 258.70000000002454,
+ 258.75000000002456,
+ 258.80000000002457,
+ 258.8500000000246,
+ 258.9000000000246,
+ 258.9500000000246,
+ 259.0000000000246,
+ 259.0500000000246,
+ 259.10000000002464,
+ 259.15000000002465,
+ 259.20000000002466,
+ 259.25000000002467,
+ 259.3000000000247,
+ 259.3500000000247,
+ 259.4000000000247,
+ 259.4500000000247,
+ 259.5000000000247,
+ 259.55000000002474,
+ 259.60000000002475,
+ 259.65000000002476,
+ 259.7000000000248,
+ 259.7500000000248,
+ 259.8000000000248,
+ 259.8500000000248,
+ 259.9000000000248,
+ 259.95000000002483,
+ 260.00000000002484,
+ 260.05000000002485,
+ 260.10000000002486,
+ 260.1500000000249,
+ 260.2000000000249,
+ 260.2500000000249,
+ 260.3000000000249,
+ 260.3500000000249,
+ 260.40000000002493,
+ 260.45000000002494,
+ 260.50000000002495,
+ 260.55000000002497,
+ 260.600000000025,
+ 260.650000000025,
+ 260.700000000025,
+ 260.750000000025,
+ 260.800000000025,
+ 260.85000000002503,
+ 260.90000000002505,
+ 260.95000000002506,
+ 261.00000000002507,
+ 261.0500000000251,
+ 261.1000000000251,
+ 261.1500000000251,
+ 261.2000000000251,
+ 261.2500000000251,
+ 261.30000000002514,
+ 261.35000000002515,
+ 261.40000000002516,
+ 261.45000000002517,
+ 261.5000000000252,
+ 261.5500000000252,
+ 261.6000000000252,
+ 261.6500000000252,
+ 261.7000000000252,
+ 261.75000000002524,
+ 261.80000000002525,
+ 261.85000000002526,
+ 261.9000000000253,
+ 261.9500000000253,
+ 262.0000000000253,
+ 262.0500000000253,
+ 262.1000000000253,
+ 262.15000000002533,
+ 262.20000000002534,
+ 262.25000000002535,
+ 262.30000000002536,
+ 262.3500000000254,
+ 262.4000000000254,
+ 262.4500000000254,
+ 262.5000000000254,
+ 262.5500000000254,
+ 262.60000000002543,
+ 262.65000000002544,
+ 262.70000000002545,
+ 262.75000000002547,
+ 262.8000000000255,
+ 262.8500000000255,
+ 262.9000000000255,
+ 262.9500000000255,
+ 263.0000000000255,
+ 263.05000000002553,
+ 263.10000000002555,
+ 263.15000000002556,
+ 263.20000000002557,
+ 263.2500000000256,
+ 263.3000000000256,
+ 263.3500000000256,
+ 263.4000000000256,
+ 263.4500000000256,
+ 263.50000000002564,
+ 263.55000000002565,
+ 263.60000000002566,
+ 263.65000000002567,
+ 263.7000000000257,
+ 263.7500000000257,
+ 263.8000000000257,
+ 263.8500000000257,
+ 263.9000000000257,
+ 263.95000000002574,
+ 264.00000000002575,
+ 264.05000000002576,
+ 264.1000000000258,
+ 264.1500000000258,
+ 264.2000000000258,
+ 264.2500000000258,
+ 264.3000000000258,
+ 264.35000000002583,
+ 264.40000000002584,
+ 264.45000000002585,
+ 264.50000000002586,
+ 264.5500000000259,
+ 264.6000000000259,
+ 264.6500000000259,
+ 264.7000000000259,
+ 264.7500000000259,
+ 264.80000000002593,
+ 264.85000000002594,
+ 264.90000000002595,
+ 264.95000000002597,
+ 265.000000000026,
+ 265.050000000026,
+ 265.100000000026,
+ 265.150000000026,
+ 265.200000000026,
+ 265.25000000002603,
+ 265.30000000002605,
+ 265.35000000002606,
+ 265.40000000002607,
+ 265.4500000000261,
+ 265.5000000000261,
+ 265.5500000000261,
+ 265.6000000000261,
+ 265.6500000000261,
+ 265.70000000002614,
+ 265.75000000002615,
+ 265.80000000002616,
+ 265.85000000002617,
+ 265.9000000000262,
+ 265.9500000000262,
+ 266.0000000000262,
+ 266.0500000000262,
+ 266.1000000000262,
+ 266.15000000002624,
+ 266.20000000002625,
+ 266.25000000002626,
+ 266.3000000000263,
+ 266.3500000000263,
+ 266.4000000000263,
+ 266.4500000000263,
+ 266.5000000000263,
+ 266.55000000002633,
+ 266.60000000002634,
+ 266.65000000002635,
+ 266.70000000002636,
+ 266.7500000000264,
+ 266.8000000000264,
+ 266.8500000000264,
+ 266.9000000000264,
+ 266.9500000000264,
+ 267.00000000002643,
+ 267.05000000002644,
+ 267.10000000002645,
+ 267.15000000002647,
+ 267.2000000000265,
+ 267.2500000000265,
+ 267.3000000000265,
+ 267.3500000000265,
+ 267.4000000000265,
+ 267.45000000002653,
+ 267.50000000002655,
+ 267.55000000002656,
+ 267.60000000002657,
+ 267.6500000000266,
+ 267.7000000000266,
+ 267.7500000000266,
+ 267.8000000000266,
+ 267.8500000000266,
+ 267.90000000002664,
+ 267.95000000002665,
+ 268.00000000002666,
+ 268.05000000002667,
+ 268.1000000000267,
+ 268.1500000000267,
+ 268.2000000000267,
+ 268.2500000000267,
+ 268.3000000000267,
+ 268.35000000002674,
+ 268.40000000002675,
+ 268.45000000002676,
+ 268.5000000000268,
+ 268.5500000000268,
+ 268.6000000000268,
+ 268.6500000000268,
+ 268.7000000000268,
+ 268.75000000002683,
+ 268.80000000002684,
+ 268.85000000002685,
+ 268.90000000002686,
+ 268.9500000000269,
+ 269.0000000000269,
+ 269.0500000000269,
+ 269.1000000000269,
+ 269.1500000000269,
+ 269.20000000002693,
+ 269.25000000002694,
+ 269.30000000002696,
+ 269.35000000002697,
+ 269.400000000027,
+ 269.450000000027,
+ 269.500000000027,
+ 269.550000000027,
+ 269.600000000027,
+ 269.65000000002703,
+ 269.70000000002705,
+ 269.75000000002706,
+ 269.80000000002707,
+ 269.8500000000271,
+ 269.9000000000271,
+ 269.9500000000271,
+ 270.0000000000271,
+ 270.0500000000271,
+ 270.10000000002714,
+ 270.15000000002715,
+ 270.20000000002716,
+ 270.25000000002717,
+ 270.3000000000272,
+ 270.3500000000272,
+ 270.4000000000272,
+ 270.4500000000272,
+ 270.5000000000272,
+ 270.55000000002724,
+ 270.60000000002725,
+ 270.65000000002726,
+ 270.7000000000273,
+ 270.7500000000273,
+ 270.8000000000273,
+ 270.8500000000273,
+ 270.9000000000273,
+ 270.95000000002733,
+ 271.00000000002734,
+ 271.05000000002735,
+ 271.10000000002736,
+ 271.1500000000274,
+ 271.2000000000274,
+ 271.2500000000274,
+ 271.3000000000274,
+ 271.3500000000274,
+ 271.40000000002743,
+ 271.45000000002744,
+ 271.50000000002746,
+ 271.55000000002747,
+ 271.6000000000275,
+ 271.6500000000275,
+ 271.7000000000275,
+ 271.7500000000275,
+ 271.8000000000275,
+ 271.85000000002753,
+ 271.90000000002755,
+ 271.95000000002756,
+ 272.00000000002757,
+ 272.0500000000276,
+ 272.1000000000276,
+ 272.1500000000276,
+ 272.2000000000276,
+ 272.2500000000276,
+ 272.30000000002764,
+ 272.35000000002765,
+ 272.40000000002766,
+ 272.45000000002767,
+ 272.5000000000277,
+ 272.5500000000277,
+ 272.6000000000277,
+ 272.6500000000277,
+ 272.7000000000277,
+ 272.75000000002774,
+ 272.80000000002775,
+ 272.85000000002776,
+ 272.9000000000278,
+ 272.9500000000278,
+ 273.0000000000278,
+ 273.0500000000278,
+ 273.1000000000278,
+ 273.15000000002783,
+ 273.20000000002784,
+ 273.25000000002785,
+ 273.30000000002786,
+ 273.3500000000279,
+ 273.4000000000279,
+ 273.4500000000279,
+ 273.5000000000279,
+ 273.5500000000279,
+ 273.60000000002793,
+ 273.65000000002794,
+ 273.70000000002796,
+ 273.75000000002797,
+ 273.800000000028,
+ 273.850000000028,
+ 273.900000000028,
+ 273.950000000028,
+ 274.000000000028,
+ 274.05000000002804,
+ 274.10000000002805,
+ 274.15000000002806,
+ 274.20000000002807,
+ 274.2500000000281,
+ 274.3000000000281,
+ 274.3500000000281,
+ 274.4000000000281,
+ 274.4500000000281,
+ 274.50000000002814,
+ 274.55000000002815,
+ 274.60000000002816,
+ 274.6500000000282,
+ 274.7000000000282,
+ 274.7500000000282,
+ 274.8000000000282,
+ 274.8500000000282,
+ 274.90000000002823,
+ 274.95000000002824,
+ 275.00000000002825,
+ 275.05000000002826,
+ 275.1000000000283,
+ 275.1500000000283,
+ 275.2000000000283,
+ 275.2500000000283,
+ 275.3000000000283,
+ 275.35000000002833,
+ 275.40000000002834,
+ 275.45000000002835,
+ 275.50000000002836,
+ 275.5500000000284,
+ 275.6000000000284,
+ 275.6500000000284,
+ 275.7000000000284,
+ 275.7500000000284,
+ 275.80000000002843,
+ 275.85000000002844,
+ 275.90000000002846,
+ 275.95000000002847,
+ 276.0000000000285,
+ 276.0500000000285,
+ 276.1000000000285,
+ 276.1500000000285,
+ 276.2000000000285,
+ 276.25000000002854,
+ 276.30000000002855,
+ 276.35000000002856,
+ 276.40000000002857,
+ 276.4500000000286,
+ 276.5000000000286,
+ 276.5500000000286,
+ 276.6000000000286,
+ 276.6500000000286,
+ 276.70000000002864,
+ 276.75000000002865,
+ 276.80000000002866,
+ 276.8500000000287,
+ 276.9000000000287,
+ 276.9500000000287,
+ 277.0000000000287,
+ 277.0500000000287,
+ 277.10000000002873,
+ 277.15000000002874,
+ 277.20000000002875,
+ 277.25000000002876,
+ 277.3000000000288,
+ 277.3500000000288,
+ 277.4000000000288,
+ 277.4500000000288,
+ 277.5000000000288,
+ 277.55000000002883,
+ 277.60000000002884,
+ 277.65000000002885,
+ 277.70000000002887,
+ 277.7500000000289,
+ 277.8000000000289,
+ 277.8500000000289,
+ 277.9000000000289,
+ 277.9500000000289,
+ 278.00000000002893,
+ 278.05000000002894,
+ 278.10000000002896,
+ 278.15000000002897,
+ 278.200000000029,
+ 278.250000000029,
+ 278.300000000029,
+ 278.350000000029,
+ 278.400000000029,
+ 278.45000000002904,
+ 278.50000000002905,
+ 278.55000000002906,
+ 278.60000000002907,
+ 278.6500000000291,
+ 278.7000000000291,
+ 278.7500000000291,
+ 278.8000000000291,
+ 278.8500000000291,
+ 278.90000000002914,
+ 278.95000000002915,
+ 279.00000000002916,
+ 279.0500000000292,
+ 279.1000000000292,
+ 279.1500000000292,
+ 279.2000000000292,
+ 279.2500000000292,
+ 279.30000000002923,
+ 279.35000000002924,
+ 279.40000000002925,
+ 279.45000000002926,
+ 279.5000000000293,
+ 279.5500000000293,
+ 279.6000000000293,
+ 279.6500000000293,
+ 279.7000000000293,
+ 279.75000000002933,
+ 279.80000000002934,
+ 279.85000000002935,
+ 279.90000000002937,
+ 279.9500000000294,
+ 280.0000000000294,
+ 280.0500000000294,
+ 280.1000000000294,
+ 280.1500000000294,
+ 280.20000000002943,
+ 280.25000000002944,
+ 280.30000000002946,
+ 280.35000000002947,
+ 280.4000000000295,
+ 280.4500000000295,
+ 280.5000000000295,
+ 280.5500000000295,
+ 280.6000000000295,
+ 280.65000000002954,
+ 280.70000000002955,
+ 280.75000000002956,
+ 280.80000000002957,
+ 280.8500000000296,
+ 280.9000000000296,
+ 280.9500000000296,
+ 281.0000000000296,
+ 281.0500000000296,
+ 281.10000000002964,
+ 281.15000000002965,
+ 281.20000000002966,
+ 281.2500000000297,
+ 281.3000000000297,
+ 281.3500000000297,
+ 281.4000000000297,
+ 281.4500000000297,
+ 281.50000000002973,
+ 281.55000000002974,
+ 281.60000000002975,
+ 281.65000000002976,
+ 281.7000000000298,
+ 281.7500000000298,
+ 281.8000000000298,
+ 281.8500000000298,
+ 281.9000000000298,
+ 281.95000000002983,
+ 282.00000000002984,
+ 282.05000000002985,
+ 282.10000000002987,
+ 282.1500000000299,
+ 282.2000000000299,
+ 282.2500000000299,
+ 282.3000000000299,
+ 282.3500000000299,
+ 282.40000000002993,
+ 282.45000000002995,
+ 282.50000000002996,
+ 282.55000000002997,
+ 282.60000000003,
+ 282.65000000003,
+ 282.70000000003,
+ 282.75000000003,
+ 282.80000000003,
+ 282.85000000003004,
+ 282.90000000003005,
+ 282.95000000003006,
+ 283.00000000003007,
+ 283.0500000000301,
+ 283.1000000000301,
+ 283.1500000000301,
+ 283.2000000000301,
+ 283.2500000000301,
+ 283.30000000003014,
+ 283.35000000003015,
+ 283.40000000003016,
+ 283.4500000000302,
+ 283.5000000000302,
+ 283.5500000000302,
+ 283.6000000000302,
+ 283.6500000000302,
+ 283.70000000003023,
+ 283.75000000003024,
+ 283.80000000003025,
+ 283.85000000003026,
+ 283.9000000000303,
+ 283.9500000000303,
+ 284.0000000000303,
+ 284.0500000000303,
+ 284.1000000000303,
+ 284.15000000003033,
+ 284.20000000003034,
+ 284.25000000003035,
+ 284.30000000003037,
+ 284.3500000000304,
+ 284.4000000000304,
+ 284.4500000000304,
+ 284.5000000000304,
+ 284.5500000000304,
+ 284.60000000003043,
+ 284.65000000003045,
+ 284.70000000003046,
+ 284.75000000003047,
+ 284.8000000000305,
+ 284.8500000000305,
+ 284.9000000000305,
+ 284.9500000000305,
+ 285.0000000000305,
+ 285.05000000003054,
+ 285.10000000003055,
+ 285.15000000003056,
+ 285.20000000003057,
+ 285.2500000000306,
+ 285.3000000000306,
+ 285.3500000000306,
+ 285.4000000000306,
+ 285.4500000000306,
+ 285.50000000003064,
+ 285.55000000003065,
+ 285.60000000003066,
+ 285.6500000000307,
+ 285.7000000000307,
+ 285.7500000000307,
+ 285.8000000000307,
+ 285.8500000000307,
+ 285.90000000003073,
+ 285.95000000003074,
+ 286.00000000003075,
+ 286.05000000003076,
+ 286.1000000000308,
+ 286.1500000000308,
+ 286.2000000000308,
+ 286.2500000000308,
+ 286.3000000000308,
+ 286.35000000003083,
+ 286.40000000003084,
+ 286.45000000003085,
+ 286.50000000003087,
+ 286.5500000000309,
+ 286.6000000000309,
+ 286.6500000000309,
+ 286.7000000000309,
+ 286.7500000000309,
+ 286.80000000003093,
+ 286.85000000003095,
+ 286.90000000003096,
+ 286.95000000003097,
+ 287.000000000031,
+ 287.050000000031,
+ 287.100000000031,
+ 287.150000000031,
+ 287.200000000031,
+ 287.25000000003104,
+ 287.30000000003105,
+ 287.35000000003106,
+ 287.40000000003107,
+ 287.4500000000311,
+ 287.5000000000311,
+ 287.5500000000311,
+ 287.6000000000311,
+ 287.6500000000311,
+ 287.70000000003114,
+ 287.75000000003115,
+ 287.80000000003116,
+ 287.8500000000312,
+ 287.9000000000312,
+ 287.9500000000312,
+ 288.0000000000312,
+ 288.0500000000312,
+ 288.10000000003123,
+ 288.15000000003124,
+ 288.20000000003125,
+ 288.25000000003126,
+ 288.3000000000313,
+ 288.3500000000313,
+ 288.4000000000313,
+ 288.4500000000313,
+ 288.5000000000313,
+ 288.55000000003133,
+ 288.60000000003134,
+ 288.65000000003135,
+ 288.70000000003137,
+ 288.7500000000314,
+ 288.8000000000314,
+ 288.8500000000314,
+ 288.9000000000314,
+ 288.9500000000314,
+ 289.00000000003143,
+ 289.05000000003145,
+ 289.10000000003146,
+ 289.15000000003147,
+ 289.2000000000315,
+ 289.2500000000315,
+ 289.3000000000315,
+ 289.3500000000315,
+ 289.4000000000315,
+ 289.45000000003154,
+ 289.50000000003155,
+ 289.55000000003156,
+ 289.60000000003157,
+ 289.6500000000316,
+ 289.7000000000316,
+ 289.7500000000316,
+ 289.8000000000316,
+ 289.8500000000316,
+ 289.90000000003164,
+ 289.95000000003165,
+ 290.00000000003166,
+ 290.0500000000317,
+ 290.1000000000317,
+ 290.1500000000317,
+ 290.2000000000317,
+ 290.2500000000317,
+ 290.30000000003173,
+ 290.35000000003174,
+ 290.40000000003175,
+ 290.45000000003176,
+ 290.5000000000318,
+ 290.5500000000318,
+ 290.6000000000318,
+ 290.6500000000318,
+ 290.7000000000318,
+ 290.75000000003183,
+ 290.80000000003184,
+ 290.85000000003186,
+ 290.90000000003187,
+ 290.9500000000319,
+ 291.0000000000319,
+ 291.0500000000319,
+ 291.1000000000319,
+ 291.1500000000319,
+ 291.20000000003193,
+ 291.25000000003195,
+ 291.30000000003196,
+ 291.35000000003197,
+ 291.400000000032,
+ 291.450000000032,
+ 291.500000000032,
+ 291.550000000032,
+ 291.600000000032,
+ 291.65000000003204,
+ 291.70000000003205,
+ 291.75000000003206,
+ 291.80000000003207,
+ 291.8500000000321,
+ 291.9000000000321,
+ 291.9500000000321,
+ 292.0000000000321,
+ 292.0500000000321,
+ 292.10000000003214,
+ 292.15000000003215,
+ 292.20000000003216,
+ 292.2500000000322,
+ 292.3000000000322,
+ 292.3500000000322,
+ 292.4000000000322,
+ 292.4500000000322,
+ 292.50000000003223,
+ 292.55000000003224,
+ 292.60000000003225,
+ 292.65000000003226,
+ 292.7000000000323,
+ 292.7500000000323,
+ 292.8000000000323,
+ 292.8500000000323,
+ 292.9000000000323,
+ 292.95000000003233,
+ 293.00000000003234,
+ 293.05000000003236,
+ 293.10000000003237,
+ 293.1500000000324,
+ 293.2000000000324,
+ 293.2500000000324,
+ 293.3000000000324,
+ 293.3500000000324,
+ 293.40000000003243,
+ 293.45000000003245,
+ 293.50000000003246,
+ 293.55000000003247,
+ 293.6000000000325,
+ 293.6500000000325,
+ 293.7000000000325,
+ 293.7500000000325,
+ 293.8000000000325,
+ 293.85000000003254,
+ 293.90000000003255,
+ 293.95000000003256,
+ 294.00000000003257,
+ 294.0500000000326,
+ 294.1000000000326,
+ 294.1500000000326,
+ 294.2000000000326,
+ 294.2500000000326,
+ 294.30000000003264,
+ 294.35000000003265,
+ 294.40000000003266,
+ 294.4500000000327,
+ 294.5000000000327,
+ 294.5500000000327,
+ 294.6000000000327,
+ 294.6500000000327,
+ 294.70000000003273,
+ 294.75000000003274,
+ 294.80000000003275,
+ 294.85000000003276,
+ 294.9000000000328,
+ 294.9500000000328,
+ 295.0000000000328,
+ 295.0500000000328,
+ 295.1000000000328,
+ 295.15000000003283,
+ 295.20000000003284,
+ 295.25000000003286,
+ 295.30000000003287,
+ 295.3500000000329,
+ 295.4000000000329,
+ 295.4500000000329,
+ 295.5000000000329,
+ 295.5500000000329,
+ 295.60000000003294,
+ 295.65000000003295,
+ 295.70000000003296,
+ 295.75000000003297,
+ 295.800000000033,
+ 295.850000000033,
+ 295.900000000033,
+ 295.950000000033,
+ 296.000000000033,
+ 296.05000000003304,
+ 296.10000000003305,
+ 296.15000000003306,
+ 296.20000000003307,
+ 296.2500000000331,
+ 296.3000000000331,
+ 296.3500000000331,
+ 296.4000000000331,
+ 296.4500000000331,
+ 296.50000000003314,
+ 296.55000000003315,
+ 296.60000000003316,
+ 296.6500000000332,
+ 296.7000000000332,
+ 296.7500000000332,
+ 296.8000000000332,
+ 296.8500000000332,
+ 296.90000000003323,
+ 296.95000000003324,
+ 297.00000000003325,
+ 297.05000000003326,
+ 297.1000000000333,
+ 297.1500000000333,
+ 297.2000000000333,
+ 297.2500000000333,
+ 297.3000000000333,
+ 297.35000000003333,
+ 297.40000000003334,
+ 297.45000000003336,
+ 297.50000000003337,
+ 297.5500000000334,
+ 297.6000000000334,
+ 297.6500000000334,
+ 297.7000000000334,
+ 297.7500000000334,
+ 297.80000000003344,
+ 297.85000000003345,
+ 297.90000000003346,
+ 297.95000000003347,
+ 298.0000000000335,
+ 298.0500000000335,
+ 298.1000000000335,
+ 298.1500000000335,
+ 298.2000000000335,
+ 298.25000000003354,
+ 298.30000000003355,
+ 298.35000000003356,
+ 298.4000000000336,
+ 298.4500000000336,
+ 298.5000000000336,
+ 298.5500000000336,
+ 298.6000000000336,
+ 298.65000000003363,
+ 298.70000000003364,
+ 298.75000000003365,
+ 298.80000000003366,
+ 298.8500000000337,
+ 298.9000000000337,
+ 298.9500000000337,
+ 299.0000000000337,
+ 299.0500000000337,
+ 299.10000000003373,
+ 299.15000000003374,
+ 299.20000000003375,
+ 299.25000000003376,
+ 299.3000000000338,
+ 299.3500000000338,
+ 299.4000000000338,
+ 299.4500000000338,
+ 299.5000000000338,
+ 299.55000000003383,
+ 299.60000000003384,
+ 299.65000000003386,
+ 299.70000000003387,
+ 299.7500000000339,
+ 299.8000000000339,
+ 299.8500000000339,
+ 299.9000000000339,
+ 299.9500000000339,
+ 300.00000000003394,
+ 300.05000000003395,
+ 300.10000000003396,
+ 300.15000000003397,
+ 300.200000000034,
+ 300.250000000034,
+ 300.300000000034,
+ 300.350000000034,
+ 300.400000000034,
+ 300.45000000003404,
+ 300.50000000003405,
+ 300.55000000003406,
+ 300.6000000000341,
+ 300.6500000000341,
+ 300.7000000000341,
+ 300.7500000000341,
+ 300.8000000000341,
+ 300.85000000003413,
+ 300.90000000003414,
+ 300.95000000003415,
+ 301.00000000003416,
+ 301.0500000000342,
+ 301.1000000000342,
+ 301.1500000000342,
+ 301.2000000000342,
+ 301.2500000000342,
+ 301.30000000003423,
+ 301.35000000003424,
+ 301.40000000003425,
+ 301.45000000003427,
+ 301.5000000000343,
+ 301.5500000000343,
+ 301.6000000000343,
+ 301.6500000000343,
+ 301.7000000000343,
+ 301.75000000003433,
+ 301.80000000003434,
+ 301.85000000003436,
+ 301.90000000003437,
+ 301.9500000000344,
+ 302.0000000000344,
+ 302.0500000000344,
+ 302.1000000000344,
+ 302.1500000000344,
+ 302.20000000003444,
+ 302.25000000003445,
+ 302.30000000003446,
+ 302.35000000003447,
+ 302.4000000000345,
+ 302.4500000000345,
+ 302.5000000000345,
+ 302.5500000000345,
+ 302.6000000000345,
+ 302.65000000003454,
+ 302.70000000003455,
+ 302.75000000003456,
+ 302.8000000000346,
+ 302.8500000000346,
+ 302.9000000000346,
+ 302.9500000000346,
+ 303.0000000000346,
+ 303.05000000003463,
+ 303.10000000003464,
+ 303.15000000003465,
+ 303.20000000003466,
+ 303.2500000000347,
+ 303.3000000000347,
+ 303.3500000000347,
+ 303.4000000000347,
+ 303.4500000000347,
+ 303.50000000003473,
+ 303.55000000003474,
+ 303.60000000003475,
+ 303.65000000003477,
+ 303.7000000000348,
+ 303.7500000000348,
+ 303.8000000000348,
+ 303.8500000000348,
+ 303.9000000000348,
+ 303.95000000003483,
+ 304.00000000003485,
+ 304.05000000003486,
+ 304.10000000003487,
+ 304.1500000000349,
+ 304.2000000000349,
+ 304.2500000000349,
+ 304.3000000000349,
+ 304.3500000000349,
+ 304.40000000003494,
+ 304.45000000003495,
+ 304.50000000003496,
+ 304.55000000003497,
+ 304.600000000035,
+ 304.650000000035,
+ 304.700000000035,
+ 304.750000000035,
+ 304.800000000035,
+ 304.85000000003504,
+ 304.90000000003505,
+ 304.95000000003506,
+ 305.0000000000351,
+ 305.0500000000351,
+ 305.1000000000351,
+ 305.1500000000351,
+ 305.2000000000351,
+ 305.25000000003513,
+ 305.30000000003514,
+ 305.35000000003515,
+ 305.40000000003516,
+ 305.4500000000352,
+ 305.5000000000352,
+ 305.5500000000352,
+ 305.6000000000352,
+ 305.6500000000352,
+ 305.70000000003523,
+ 305.75000000003524,
+ 305.80000000003525,
+ 305.85000000003527,
+ 305.9000000000353,
+ 305.9500000000353,
+ 306.0000000000353,
+ 306.0500000000353,
+ 306.1000000000353,
+ 306.15000000003533,
+ 306.20000000003535,
+ 306.25000000003536,
+ 306.30000000003537,
+ 306.3500000000354,
+ 306.4000000000354,
+ 306.4500000000354,
+ 306.5000000000354,
+ 306.5500000000354,
+ 306.60000000003544,
+ 306.65000000003545,
+ 306.70000000003546,
+ 306.75000000003547,
+ 306.8000000000355,
+ 306.8500000000355,
+ 306.9000000000355,
+ 306.9500000000355,
+ 307.0000000000355,
+ 307.05000000003554,
+ 307.10000000003555,
+ 307.15000000003556,
+ 307.2000000000356,
+ 307.2500000000356,
+ 307.3000000000356,
+ 307.3500000000356,
+ 307.4000000000356,
+ 307.45000000003563,
+ 307.50000000003564,
+ 307.55000000003565,
+ 307.60000000003566,
+ 307.6500000000357,
+ 307.7000000000357,
+ 307.7500000000357,
+ 307.8000000000357,
+ 307.8500000000357,
+ 307.90000000003573,
+ 307.95000000003574,
+ 308.00000000003575,
+ 308.05000000003577,
+ 308.1000000000358,
+ 308.1500000000358,
+ 308.2000000000358,
+ 308.2500000000358,
+ 308.3000000000358,
+ 308.35000000003583,
+ 308.40000000003585,
+ 308.45000000003586,
+ 308.50000000003587,
+ 308.5500000000359,
+ 308.6000000000359,
+ 308.6500000000359,
+ 308.7000000000359,
+ 308.7500000000359,
+ 308.80000000003594,
+ 308.85000000003595,
+ 308.90000000003596,
+ 308.95000000003597,
+ 309.000000000036,
+ 309.050000000036,
+ 309.100000000036,
+ 309.150000000036,
+ 309.200000000036,
+ 309.25000000003604,
+ 309.30000000003605,
+ 309.35000000003606,
+ 309.4000000000361,
+ 309.4500000000361,
+ 309.5000000000361,
+ 309.5500000000361,
+ 309.6000000000361,
+ 309.65000000003613,
+ 309.70000000003614,
+ 309.75000000003615,
+ 309.80000000003616,
+ 309.8500000000362,
+ 309.9000000000362,
+ 309.9500000000362,
+ 310.0000000000362,
+ 310.0500000000362,
+ 310.10000000003623,
+ 310.15000000003624,
+ 310.20000000003625,
+ 310.25000000003627,
+ 310.3000000000363,
+ 310.3500000000363,
+ 310.4000000000363,
+ 310.4500000000363,
+ 310.5000000000363,
+ 310.55000000003633,
+ 310.60000000003635,
+ 310.65000000003636,
+ 310.70000000003637,
+ 310.7500000000364,
+ 310.8000000000364,
+ 310.8500000000364,
+ 310.9000000000364,
+ 310.9500000000364,
+ 311.00000000003644,
+ 311.05000000003645,
+ 311.10000000003646,
+ 311.15000000003647,
+ 311.2000000000365,
+ 311.2500000000365,
+ 311.3000000000365,
+ 311.3500000000365,
+ 311.4000000000365,
+ 311.45000000003654,
+ 311.50000000003655,
+ 311.55000000003656,
+ 311.6000000000366,
+ 311.6500000000366,
+ 311.7000000000366,
+ 311.7500000000366,
+ 311.8000000000366,
+ 311.85000000003663,
+ 311.90000000003664,
+ 311.95000000003665,
+ 312.00000000003666,
+ 312.0500000000367,
+ 312.1000000000367,
+ 312.1500000000367,
+ 312.2000000000367,
+ 312.2500000000367,
+ 312.30000000003673,
+ 312.35000000003674,
+ 312.40000000003675,
+ 312.45000000003677,
+ 312.5000000000368,
+ 312.5500000000368,
+ 312.6000000000368,
+ 312.6500000000368,
+ 312.7000000000368,
+ 312.75000000003683,
+ 312.80000000003685,
+ 312.85000000003686,
+ 312.90000000003687,
+ 312.9500000000369,
+ 313.0000000000369,
+ 313.0500000000369,
+ 313.1000000000369,
+ 313.1500000000369,
+ 313.20000000003694,
+ 313.25000000003695,
+ 313.30000000003696,
+ 313.35000000003697,
+ 313.400000000037,
+ 313.450000000037,
+ 313.500000000037,
+ 313.550000000037,
+ 313.600000000037,
+ 313.65000000003704,
+ 313.70000000003705,
+ 313.75000000003706,
+ 313.8000000000371,
+ 313.8500000000371,
+ 313.9000000000371,
+ 313.9500000000371,
+ 314.0000000000371,
+ 314.05000000003713,
+ 314.10000000003714,
+ 314.15000000003715,
+ 314.20000000003716,
+ 314.2500000000372,
+ 314.3000000000372,
+ 314.3500000000372,
+ 314.4000000000372,
+ 314.4500000000372,
+ 314.50000000003723,
+ 314.55000000003724,
+ 314.60000000003726,
+ 314.65000000003727,
+ 314.7000000000373,
+ 314.7500000000373,
+ 314.8000000000373,
+ 314.8500000000373,
+ 314.9000000000373,
+ 314.95000000003733,
+ 315.00000000003735,
+ 315.05000000003736,
+ 315.10000000003737,
+ 315.1500000000374,
+ 315.2000000000374,
+ 315.2500000000374,
+ 315.3000000000374,
+ 315.3500000000374,
+ 315.40000000003744,
+ 315.45000000003745,
+ 315.50000000003746,
+ 315.55000000003747,
+ 315.6000000000375,
+ 315.6500000000375,
+ 315.7000000000375,
+ 315.7500000000375,
+ 315.8000000000375,
+ 315.85000000003754,
+ 315.90000000003755,
+ 315.95000000003756,
+ 316.0000000000376,
+ 316.0500000000376,
+ 316.1000000000376,
+ 316.1500000000376,
+ 316.2000000000376,
+ 316.25000000003763,
+ 316.30000000003764,
+ 316.35000000003765,
+ 316.40000000003766,
+ 316.4500000000377,
+ 316.5000000000377,
+ 316.5500000000377,
+ 316.6000000000377,
+ 316.6500000000377,
+ 316.70000000003773,
+ 316.75000000003774,
+ 316.80000000003776,
+ 316.85000000003777,
+ 316.9000000000378,
+ 316.9500000000378,
+ 317.0000000000378,
+ 317.0500000000378,
+ 317.1000000000378,
+ 317.15000000003783,
+ 317.20000000003785,
+ 317.25000000003786,
+ 317.30000000003787,
+ 317.3500000000379,
+ 317.4000000000379,
+ 317.4500000000379,
+ 317.5000000000379,
+ 317.5500000000379,
+ 317.60000000003794,
+ 317.65000000003795,
+ 317.70000000003796,
+ 317.75000000003797,
+ 317.800000000038,
+ 317.850000000038,
+ 317.900000000038,
+ 317.950000000038,
+ 318.000000000038,
+ 318.05000000003804,
+ 318.10000000003805,
+ 318.15000000003806,
+ 318.2000000000381,
+ 318.2500000000381,
+ 318.3000000000381,
+ 318.3500000000381,
+ 318.4000000000381,
+ 318.45000000003813,
+ 318.50000000003814,
+ 318.55000000003815,
+ 318.60000000003816,
+ 318.6500000000382,
+ 318.7000000000382,
+ 318.7500000000382,
+ 318.8000000000382,
+ 318.8500000000382,
+ 318.90000000003823,
+ 318.95000000003824,
+ 319.00000000003826,
+ 319.05000000003827,
+ 319.1000000000383,
+ 319.1500000000383,
+ 319.2000000000383,
+ 319.2500000000383,
+ 319.3000000000383,
+ 319.35000000003834,
+ 319.40000000003835,
+ 319.45000000003836,
+ 319.50000000003837,
+ 319.5500000000384,
+ 319.6000000000384,
+ 319.6500000000384,
+ 319.7000000000384,
+ 319.7500000000384,
+ 319.80000000003844,
+ 319.85000000003845,
+ 319.90000000003846,
+ 319.9500000000385,
+ 320.0000000000385,
+ 320.0500000000385,
+ 320.1000000000385,
+ 320.1500000000385,
+ 320.20000000003853,
+ 320.25000000003854,
+ 320.30000000003855,
+ 320.35000000003856,
+ 320.4000000000386,
+ 320.4500000000386,
+ 320.5000000000386,
+ 320.5500000000386,
+ 320.6000000000386,
+ 320.65000000003863,
+ 320.70000000003864,
+ 320.75000000003865,
+ 320.80000000003866,
+ 320.8500000000387,
+ 320.9000000000387,
+ 320.9500000000387,
+ 321.0000000000387,
+ 321.0500000000387,
+ 321.10000000003873,
+ 321.15000000003874,
+ 321.20000000003876,
+ 321.25000000003877,
+ 321.3000000000388,
+ 321.3500000000388,
+ 321.4000000000388,
+ 321.4500000000388,
+ 321.5000000000388,
+ 321.55000000003884,
+ 321.60000000003885,
+ 321.65000000003886,
+ 321.70000000003887,
+ 321.7500000000389,
+ 321.8000000000389,
+ 321.8500000000389,
+ 321.9000000000389,
+ 321.9500000000389,
+ 322.00000000003894,
+ 322.05000000003895,
+ 322.10000000003896,
+ 322.150000000039,
+ 322.200000000039,
+ 322.250000000039,
+ 322.300000000039,
+ 322.350000000039,
+ 322.40000000003903,
+ 322.45000000003904,
+ 322.50000000003905,
+ 322.55000000003906,
+ 322.6000000000391,
+ 322.6500000000391,
+ 322.7000000000391,
+ 322.7500000000391,
+ 322.8000000000391,
+ 322.85000000003913,
+ 322.90000000003914,
+ 322.95000000003915,
+ 323.00000000003917,
+ 323.0500000000392,
+ 323.1000000000392,
+ 323.1500000000392,
+ 323.2000000000392,
+ 323.2500000000392,
+ 323.30000000003923,
+ 323.35000000003924,
+ 323.40000000003926,
+ 323.45000000003927,
+ 323.5000000000393,
+ 323.5500000000393,
+ 323.6000000000393,
+ 323.6500000000393,
+ 323.7000000000393,
+ 323.75000000003934,
+ 323.80000000003935,
+ 323.85000000003936,
+ 323.90000000003937,
+ 323.9500000000394,
+ 324.0000000000394,
+ 324.0500000000394,
+ 324.1000000000394,
+ 324.1500000000394,
+ 324.20000000003944,
+ 324.25000000003945,
+ 324.30000000003946,
+ 324.3500000000395,
+ 324.4000000000395,
+ 324.4500000000395,
+ 324.5000000000395,
+ 324.5500000000395,
+ 324.60000000003953,
+ 324.65000000003954,
+ 324.70000000003955,
+ 324.75000000003956,
+ 324.8000000000396,
+ 324.8500000000396,
+ 324.9000000000396,
+ 324.9500000000396,
+ 325.0000000000396,
+ 325.05000000003963,
+ 325.10000000003964,
+ 325.15000000003965,
+ 325.20000000003967,
+ 325.2500000000397,
+ 325.3000000000397,
+ 325.3500000000397,
+ 325.4000000000397,
+ 325.4500000000397,
+ 325.50000000003973,
+ 325.55000000003974,
+ 325.60000000003976,
+ 325.65000000003977,
+ 325.7000000000398,
+ 325.7500000000398,
+ 325.8000000000398,
+ 325.8500000000398,
+ 325.9000000000398,
+ 325.95000000003984,
+ 326.00000000003985,
+ 326.05000000003986,
+ 326.10000000003987,
+ 326.1500000000399,
+ 326.2000000000399,
+ 326.2500000000399,
+ 326.3000000000399,
+ 326.3500000000399,
+ 326.40000000003994,
+ 326.45000000003995,
+ 326.50000000003996,
+ 326.55000000004,
+ 326.60000000004,
+ 326.65000000004,
+ 326.70000000004,
+ 326.75000000004,
+ 326.80000000004003,
+ 326.85000000004004,
+ 326.90000000004005,
+ 326.95000000004006,
+ 327.0000000000401,
+ 327.0500000000401,
+ 327.1000000000401,
+ 327.1500000000401,
+ 327.2000000000401,
+ 327.25000000004013,
+ 327.30000000004014,
+ 327.35000000004015,
+ 327.40000000004017,
+ 327.4500000000402,
+ 327.5000000000402,
+ 327.5500000000402,
+ 327.6000000000402,
+ 327.6500000000402,
+ 327.70000000004023,
+ 327.75000000004025,
+ 327.80000000004026,
+ 327.85000000004027,
+ 327.9000000000403,
+ 327.9500000000403,
+ 328.0000000000403,
+ 328.0500000000403,
+ 328.1000000000403,
+ 328.15000000004034,
+ 328.20000000004035,
+ 328.25000000004036,
+ 328.30000000004037,
+ 328.3500000000404,
+ 328.4000000000404,
+ 328.4500000000404,
+ 328.5000000000404,
+ 328.5500000000404,
+ 328.60000000004044,
+ 328.65000000004045,
+ 328.70000000004046,
+ 328.7500000000405,
+ 328.8000000000405,
+ 328.8500000000405,
+ 328.9000000000405,
+ 328.9500000000405,
+ 329.00000000004053,
+ 329.05000000004054,
+ 329.10000000004055,
+ 329.15000000004056,
+ 329.2000000000406,
+ 329.2500000000406,
+ 329.3000000000406,
+ 329.3500000000406,
+ 329.4000000000406,
+ 329.45000000004063,
+ 329.50000000004064,
+ 329.55000000004065,
+ 329.60000000004067,
+ 329.6500000000407,
+ 329.7000000000407,
+ 329.7500000000407,
+ 329.8000000000407,
+ 329.8500000000407,
+ 329.90000000004073,
+ 329.95000000004075,
+ 330.00000000004076,
+ 330.05000000004077,
+ 330.1000000000408,
+ 330.1500000000408,
+ 330.2000000000408,
+ 330.2500000000408,
+ 330.3000000000408,
+ 330.35000000004084,
+ 330.40000000004085,
+ 330.45000000004086,
+ 330.50000000004087,
+ 330.5500000000409,
+ 330.6000000000409,
+ 330.6500000000409,
+ 330.7000000000409,
+ 330.7500000000409,
+ 330.80000000004094,
+ 330.85000000004095,
+ 330.90000000004096,
+ 330.950000000041,
+ 331.000000000041,
+ 331.050000000041,
+ 331.100000000041,
+ 331.150000000041,
+ 331.20000000004103,
+ 331.25000000004104,
+ 331.30000000004105,
+ 331.35000000004106,
+ 331.4000000000411,
+ 331.4500000000411,
+ 331.5000000000411,
+ 331.5500000000411,
+ 331.6000000000411,
+ 331.65000000004113,
+ 331.70000000004114,
+ 331.75000000004115,
+ 331.80000000004117,
+ 331.8500000000412,
+ 331.9000000000412,
+ 331.9500000000412,
+ 332.0000000000412,
+ 332.0500000000412,
+ 332.10000000004123,
+ 332.15000000004125,
+ 332.20000000004126,
+ 332.25000000004127,
+ 332.3000000000413,
+ 332.3500000000413,
+ 332.4000000000413,
+ 332.4500000000413,
+ 332.5000000000413,
+ 332.55000000004134,
+ 332.60000000004135,
+ 332.65000000004136,
+ 332.70000000004137,
+ 332.7500000000414,
+ 332.8000000000414,
+ 332.8500000000414,
+ 332.9000000000414,
+ 332.9500000000414,
+ 333.00000000004144,
+ 333.05000000004145,
+ 333.10000000004146,
+ 333.1500000000415,
+ 333.2000000000415,
+ 333.2500000000415,
+ 333.3000000000415,
+ 333.3500000000415,
+ 333.40000000004153,
+ 333.45000000004154,
+ 333.50000000004155,
+ 333.55000000004156,
+ 333.6000000000416,
+ 333.6500000000416,
+ 333.7000000000416,
+ 333.7500000000416,
+ 333.8000000000416,
+ 333.85000000004163,
+ 333.90000000004164,
+ 333.95000000004165,
+ 334.00000000004167,
+ 334.0500000000417,
+ 334.1000000000417,
+ 334.1500000000417,
+ 334.2000000000417,
+ 334.2500000000417,
+ 334.30000000004173,
+ 334.35000000004175,
+ 334.40000000004176,
+ 334.45000000004177,
+ 334.5000000000418,
+ 334.5500000000418,
+ 334.6000000000418,
+ 334.6500000000418,
+ 334.7000000000418,
+ 334.75000000004184,
+ 334.80000000004185,
+ 334.85000000004186,
+ 334.90000000004187,
+ 334.9500000000419,
+ 335.0000000000419,
+ 335.0500000000419,
+ 335.1000000000419,
+ 335.1500000000419,
+ 335.20000000004194,
+ 335.25000000004195,
+ 335.30000000004196,
+ 335.350000000042,
+ 335.400000000042,
+ 335.450000000042,
+ 335.500000000042,
+ 335.550000000042,
+ 335.60000000004203,
+ 335.65000000004204,
+ 335.70000000004205,
+ 335.75000000004206,
+ 335.8000000000421,
+ 335.8500000000421,
+ 335.9000000000421,
+ 335.9500000000421,
+ 336.0000000000421,
+ 336.05000000004213,
+ 336.10000000004214,
+ 336.15000000004216,
+ 336.20000000004217,
+ 336.2500000000422,
+ 336.3000000000422,
+ 336.3500000000422,
+ 336.4000000000422,
+ 336.4500000000422,
+ 336.50000000004223,
+ 336.55000000004225,
+ 336.60000000004226,
+ 336.65000000004227,
+ 336.7000000000423,
+ 336.7500000000423,
+ 336.8000000000423,
+ 336.8500000000423,
+ 336.9000000000423,
+ 336.95000000004234,
+ 337.00000000004235,
+ 337.05000000004236,
+ 337.10000000004237,
+ 337.1500000000424,
+ 337.2000000000424,
+ 337.2500000000424,
+ 337.3000000000424,
+ 337.3500000000424,
+ 337.40000000004244,
+ 337.45000000004245,
+ 337.50000000004246,
+ 337.5500000000425,
+ 337.6000000000425,
+ 337.6500000000425,
+ 337.7000000000425,
+ 337.7500000000425,
+ 337.80000000004253,
+ 337.85000000004254,
+ 337.90000000004255,
+ 337.95000000004256,
+ 338.0000000000426,
+ 338.0500000000426,
+ 338.1000000000426,
+ 338.1500000000426,
+ 338.2000000000426,
+ 338.25000000004263,
+ 338.30000000004264,
+ 338.35000000004266,
+ 338.40000000004267,
+ 338.4500000000427,
+ 338.5000000000427,
+ 338.5500000000427,
+ 338.6000000000427,
+ 338.6500000000427,
+ 338.70000000004273,
+ 338.75000000004275,
+ 338.80000000004276,
+ 338.85000000004277,
+ 338.9000000000428,
+ 338.9500000000428,
+ 339.0000000000428,
+ 339.0500000000428,
+ 339.1000000000428,
+ 339.15000000004284,
+ 339.20000000004285,
+ 339.25000000004286,
+ 339.30000000004287,
+ 339.3500000000429,
+ 339.4000000000429,
+ 339.4500000000429,
+ 339.5000000000429,
+ 339.5500000000429,
+ 339.60000000004294,
+ 339.65000000004295,
+ 339.70000000004296,
+ 339.750000000043,
+ 339.800000000043,
+ 339.850000000043,
+ 339.900000000043,
+ 339.950000000043,
+ 340.00000000004303,
+ 340.05000000004304,
+ 340.10000000004305,
+ 340.15000000004306,
+ 340.2000000000431,
+ 340.2500000000431,
+ 340.3000000000431,
+ 340.3500000000431,
+ 340.4000000000431,
+ 340.45000000004313,
+ 340.50000000004314,
+ 340.55000000004316,
+ 340.60000000004317,
+ 340.6500000000432,
+ 340.7000000000432,
+ 340.7500000000432,
+ 340.8000000000432,
+ 340.8500000000432,
+ 340.90000000004324,
+ 340.95000000004325,
+ 341.00000000004326,
+ 341.05000000004327,
+ 341.1000000000433,
+ 341.1500000000433,
+ 341.2000000000433,
+ 341.2500000000433,
+ 341.3000000000433,
+ 341.35000000004334,
+ 341.40000000004335,
+ 341.45000000004336,
+ 341.50000000004337,
+ 341.5500000000434,
+ 341.6000000000434,
+ 341.6500000000434,
+ 341.7000000000434,
+ 341.7500000000434,
+ 341.80000000004344,
+ 341.85000000004345,
+ 341.90000000004346,
+ 341.9500000000435,
+ 342.0000000000435,
+ 342.0500000000435,
+ 342.1000000000435,
+ 342.1500000000435,
+ 342.20000000004353,
+ 342.25000000004354,
+ 342.30000000004355,
+ 342.35000000004356,
+ 342.4000000000436,
+ 342.4500000000436,
+ 342.5000000000436,
+ 342.5500000000436,
+ 342.6000000000436,
+ 342.65000000004363,
+ 342.70000000004364,
+ 342.75000000004366,
+ 342.80000000004367,
+ 342.8500000000437,
+ 342.9000000000437,
+ 342.9500000000437,
+ 343.0000000000437,
+ 343.0500000000437,
+ 343.10000000004374,
+ 343.15000000004375,
+ 343.20000000004376,
+ 343.25000000004377,
+ 343.3000000000438,
+ 343.3500000000438,
+ 343.4000000000438,
+ 343.4500000000438,
+ 343.5000000000438,
+ 343.55000000004384,
+ 343.60000000004385,
+ 343.65000000004386,
+ 343.7000000000439,
+ 343.7500000000439,
+ 343.8000000000439,
+ 343.8500000000439,
+ 343.9000000000439,
+ 343.95000000004393,
+ 344.00000000004394,
+ 344.05000000004395,
+ 344.10000000004396,
+ 344.150000000044,
+ 344.200000000044,
+ 344.250000000044,
+ 344.300000000044,
+ 344.350000000044,
+ 344.40000000004403,
+ 344.45000000004404,
+ 344.50000000004405,
+ 344.55000000004407,
+ 344.6000000000441,
+ 344.6500000000441,
+ 344.7000000000441,
+ 344.7500000000441,
+ 344.8000000000441,
+ 344.85000000004413,
+ 344.90000000004414,
+ 344.95000000004416,
+ 345.00000000004417,
+ 345.0500000000442,
+ 345.1000000000442,
+ 345.1500000000442,
+ 345.2000000000442,
+ 345.2500000000442,
+ 345.30000000004424,
+ 345.35000000004425,
+ 345.40000000004426,
+ 345.45000000004427,
+ 345.5000000000443,
+ 345.5500000000443,
+ 345.6000000000443,
+ 345.6500000000443,
+ 345.7000000000443,
+ 345.75000000004434,
+ 345.80000000004435,
+ 345.85000000004436,
+ 345.9000000000444,
+ 345.9500000000444,
+ 346.0000000000444,
+ 346.0500000000444,
+ 346.1000000000444,
+ 346.15000000004443,
+ 346.20000000004444,
+ 346.25000000004445,
+ 346.30000000004446,
+ 346.3500000000445,
+ 346.4000000000445,
+ 346.4500000000445,
+ 346.5000000000445,
+ 346.5500000000445,
+ 346.60000000004453,
+ 346.65000000004454,
+ 346.70000000004455,
+ 346.75000000004457,
+ 346.8000000000446,
+ 346.8500000000446,
+ 346.9000000000446,
+ 346.9500000000446,
+ 347.0000000000446,
+ 347.05000000004463,
+ 347.10000000004464,
+ 347.15000000004466,
+ 347.20000000004467,
+ 347.2500000000447,
+ 347.3000000000447,
+ 347.3500000000447,
+ 347.4000000000447,
+ 347.4500000000447,
+ 347.50000000004474,
+ 347.55000000004475,
+ 347.60000000004476,
+ 347.65000000004477,
+ 347.7000000000448,
+ 347.7500000000448,
+ 347.8000000000448,
+ 347.8500000000448,
+ 347.9000000000448,
+ 347.95000000004484,
+ 348.00000000004485,
+ 348.05000000004486,
+ 348.1000000000449,
+ 348.1500000000449,
+ 348.2000000000449,
+ 348.2500000000449,
+ 348.3000000000449,
+ 348.35000000004493,
+ 348.40000000004494,
+ 348.45000000004495,
+ 348.50000000004496,
+ 348.550000000045,
+ 348.600000000045,
+ 348.650000000045,
+ 348.700000000045,
+ 348.750000000045,
+ 348.80000000004503,
+ 348.85000000004504,
+ 348.90000000004505,
+ 348.95000000004507,
+ 349.0000000000451,
+ 349.0500000000451,
+ 349.1000000000451,
+ 349.1500000000451,
+ 349.2000000000451,
+ 349.25000000004513,
+ 349.30000000004515,
+ 349.35000000004516,
+ 349.40000000004517,
+ 349.4500000000452,
+ 349.5000000000452,
+ 349.5500000000452,
+ 349.6000000000452,
+ 349.6500000000452,
+ 349.70000000004524,
+ 349.75000000004525,
+ 349.80000000004526,
+ 349.85000000004527,
+ 349.9000000000453,
+ 349.9500000000453,
+ 350.0000000000453,
+ 350.0500000000453,
+ 350.1000000000453,
+ 350.15000000004534,
+ 350.20000000004535,
+ 350.25000000004536,
+ 350.3000000000454,
+ 350.3500000000454,
+ 350.4000000000454,
+ 350.4500000000454,
+ 350.5000000000454,
+ 350.55000000004543,
+ 350.60000000004544,
+ 350.65000000004545,
+ 350.70000000004546,
+ 350.7500000000455,
+ 350.8000000000455,
+ 350.8500000000455,
+ 350.9000000000455,
+ 350.9500000000455,
+ 351.00000000004553,
+ 351.05000000004554,
+ 351.10000000004555,
+ 351.15000000004557,
+ 351.2000000000456,
+ 351.2500000000456,
+ 351.3000000000456,
+ 351.3500000000456,
+ 351.4000000000456,
+ 351.45000000004563,
+ 351.50000000004565,
+ 351.55000000004566,
+ 351.60000000004567,
+ 351.6500000000457,
+ 351.7000000000457,
+ 351.7500000000457,
+ 351.8000000000457,
+ 351.8500000000457,
+ 351.90000000004574,
+ 351.95000000004575,
+ 352.00000000004576,
+ 352.05000000004577,
+ 352.1000000000458,
+ 352.1500000000458,
+ 352.2000000000458,
+ 352.2500000000458,
+ 352.3000000000458,
+ 352.35000000004584,
+ 352.40000000004585,
+ 352.45000000004586,
+ 352.5000000000459,
+ 352.5500000000459,
+ 352.6000000000459,
+ 352.6500000000459,
+ 352.7000000000459,
+ 352.75000000004593,
+ 352.80000000004594,
+ 352.85000000004595,
+ 352.90000000004596,
+ 352.950000000046,
+ 353.000000000046,
+ 353.050000000046,
+ 353.100000000046,
+ 353.150000000046,
+ 353.20000000004603,
+ 353.25000000004604,
+ 353.30000000004605,
+ 353.35000000004607,
+ 353.4000000000461,
+ 353.4500000000461,
+ 353.5000000000461,
+ 353.5500000000461,
+ 353.6000000000461,
+ 353.65000000004613,
+ 353.70000000004615,
+ 353.75000000004616,
+ 353.80000000004617,
+ 353.8500000000462,
+ 353.9000000000462,
+ 353.9500000000462,
+ 354.0000000000462,
+ 354.0500000000462,
+ 354.10000000004624,
+ 354.15000000004625,
+ 354.20000000004626,
+ 354.25000000004627,
+ 354.3000000000463,
+ 354.3500000000463,
+ 354.4000000000463,
+ 354.4500000000463,
+ 354.5000000000463,
+ 354.55000000004634,
+ 354.60000000004635,
+ 354.65000000004636,
+ 354.7000000000464,
+ 354.7500000000464,
+ 354.8000000000464,
+ 354.8500000000464,
+ 354.9000000000464,
+ 354.95000000004643,
+ 355.00000000004644,
+ 355.05000000004645,
+ 355.10000000004646,
+ 355.1500000000465,
+ 355.2000000000465,
+ 355.2500000000465,
+ 355.3000000000465,
+ 355.3500000000465,
+ 355.40000000004653,
+ 355.45000000004654,
+ 355.50000000004655,
+ 355.55000000004657,
+ 355.6000000000466,
+ 355.6500000000466,
+ 355.7000000000466,
+ 355.7500000000466,
+ 355.8000000000466,
+ 355.85000000004663,
+ 355.90000000004665,
+ 355.95000000004666,
+ 356.00000000004667,
+ 356.0500000000467,
+ 356.1000000000467,
+ 356.1500000000467,
+ 356.2000000000467,
+ 356.2500000000467,
+ 356.30000000004674,
+ 356.35000000004675,
+ 356.40000000004676,
+ 356.45000000004677,
+ 356.5000000000468,
+ 356.5500000000468,
+ 356.6000000000468,
+ 356.6500000000468,
+ 356.7000000000468,
+ 356.75000000004684,
+ 356.80000000004685,
+ 356.85000000004686,
+ 356.9000000000469,
+ 356.9500000000469,
+ 357.0000000000469,
+ 357.0500000000469,
+ 357.1000000000469,
+ 357.15000000004693,
+ 357.20000000004694,
+ 357.25000000004695,
+ 357.30000000004696,
+ 357.350000000047,
+ 357.400000000047,
+ 357.450000000047,
+ 357.500000000047,
+ 357.550000000047,
+ 357.60000000004703,
+ 357.65000000004704,
+ 357.70000000004705,
+ 357.75000000004707,
+ 357.8000000000471,
+ 357.8500000000471,
+ 357.9000000000471,
+ 357.9500000000471,
+ 358.0000000000471,
+ 358.05000000004713,
+ 358.10000000004715,
+ 358.15000000004716,
+ 358.20000000004717,
+ 358.2500000000472,
+ 358.3000000000472,
+ 358.3500000000472,
+ 358.4000000000472,
+ 358.4500000000472,
+ 358.50000000004724,
+ 358.55000000004725,
+ 358.60000000004726,
+ 358.65000000004727,
+ 358.7000000000473,
+ 358.7500000000473,
+ 358.8000000000473,
+ 358.8500000000473,
+ 358.9000000000473,
+ 358.95000000004734,
+ 359.00000000004735,
+ 359.05000000004736,
+ 359.1000000000474,
+ 359.1500000000474,
+ 359.2000000000474,
+ 359.2500000000474,
+ 359.3000000000474,
+ 359.35000000004743,
+ 359.40000000004744,
+ 359.45000000004745,
+ 359.50000000004746,
+ 359.5500000000475,
+ 359.6000000000475,
+ 359.6500000000475,
+ 359.7000000000475,
+ 359.7500000000475,
+ 359.80000000004753,
+ 359.85000000004754,
+ 359.90000000004756,
+ 359.95000000004757,
+ 360.0000000000476,
+ 360.0500000000476,
+ 360.1000000000476,
+ 360.1500000000476,
+ 360.2000000000476,
+ 360.25000000004763,
+ 360.30000000004765,
+ 360.35000000004766,
+ 360.40000000004767,
+ 360.4500000000477,
+ 360.5000000000477,
+ 360.5500000000477,
+ 360.6000000000477,
+ 360.6500000000477,
+ 360.70000000004774,
+ 360.75000000004775,
+ 360.80000000004776,
+ 360.85000000004777,
+ 360.9000000000478,
+ 360.9500000000478,
+ 361.0000000000478,
+ 361.0500000000478,
+ 361.1000000000478,
+ 361.15000000004784,
+ 361.20000000004785,
+ 361.25000000004786,
+ 361.3000000000479,
+ 361.3500000000479,
+ 361.4000000000479,
+ 361.4500000000479,
+ 361.5000000000479,
+ 361.55000000004793,
+ 361.60000000004794,
+ 361.65000000004795,
+ 361.70000000004796,
+ 361.750000000048,
+ 361.800000000048,
+ 361.850000000048,
+ 361.900000000048,
+ 361.950000000048,
+ 362.00000000004803,
+ 362.05000000004804,
+ 362.10000000004806,
+ 362.15000000004807,
+ 362.2000000000481,
+ 362.2500000000481,
+ 362.3000000000481,
+ 362.3500000000481,
+ 362.4000000000481,
+ 362.45000000004814,
+ 362.50000000004815,
+ 362.55000000004816,
+ 362.60000000004817,
+ 362.6500000000482,
+ 362.7000000000482,
+ 362.7500000000482,
+ 362.8000000000482,
+ 362.8500000000482,
+ 362.90000000004824,
+ 362.95000000004825,
+ 363.00000000004826,
+ 363.05000000004827,
+ 363.1000000000483,
+ 363.1500000000483,
+ 363.2000000000483,
+ 363.2500000000483,
+ 363.3000000000483,
+ 363.35000000004834,
+ 363.40000000004835,
+ 363.45000000004836,
+ 363.5000000000484,
+ 363.5500000000484,
+ 363.6000000000484,
+ 363.6500000000484,
+ 363.7000000000484,
+ 363.75000000004843,
+ 363.80000000004844,
+ 363.85000000004845,
+ 363.90000000004846,
+ 363.9500000000485,
+ 364.0000000000485,
+ 364.0500000000485,
+ 364.1000000000485,
+ 364.1500000000485,
+ 364.20000000004853,
+ 364.25000000004854,
+ 364.30000000004856,
+ 364.35000000004857,
+ 364.4000000000486,
+ 364.4500000000486,
+ 364.5000000000486,
+ 364.5500000000486,
+ 364.6000000000486,
+ 364.65000000004864,
+ 364.70000000004865,
+ 364.75000000004866,
+ 364.80000000004867,
+ 364.8500000000487,
+ 364.9000000000487,
+ 364.9500000000487,
+ 365.0000000000487,
+ 365.0500000000487,
+ 365.10000000004874,
+ 365.15000000004875,
+ 365.20000000004876,
+ 365.2500000000488,
+ 365.3000000000488,
+ 365.3500000000488,
+ 365.4000000000488,
+ 365.4500000000488,
+ 365.50000000004883,
+ 365.55000000004884,
+ 365.60000000004885,
+ 365.65000000004886,
+ 365.7000000000489,
+ 365.7500000000489,
+ 365.8000000000489,
+ 365.8500000000489,
+ 365.9000000000489,
+ 365.95000000004893,
+ 366.00000000004894,
+ 366.05000000004895,
+ 366.10000000004896,
+ 366.150000000049,
+ 366.200000000049,
+ 366.250000000049,
+ 366.300000000049,
+ 366.350000000049,
+ 366.40000000004903,
+ 366.45000000004904,
+ 366.50000000004906,
+ 366.55000000004907,
+ 366.6000000000491,
+ 366.6500000000491,
+ 366.7000000000491,
+ 366.7500000000491,
+ 366.8000000000491,
+ 366.85000000004914,
+ 366.90000000004915,
+ 366.95000000004916,
+ 367.00000000004917,
+ 367.0500000000492,
+ 367.1000000000492,
+ 367.1500000000492,
+ 367.2000000000492,
+ 367.2500000000492,
+ 367.30000000004924,
+ 367.35000000004925,
+ 367.40000000004926,
+ 367.4500000000493,
+ 367.5000000000493,
+ 367.5500000000493,
+ 367.6000000000493,
+ 367.6500000000493,
+ 367.70000000004933,
+ 367.75000000004934,
+ 367.80000000004935,
+ 367.85000000004936,
+ 367.9000000000494,
+ 367.9500000000494,
+ 368.0000000000494,
+ 368.0500000000494,
+ 368.1000000000494,
+ 368.15000000004943,
+ 368.20000000004944,
+ 368.25000000004945,
+ 368.30000000004947,
+ 368.3500000000495,
+ 368.4000000000495,
+ 368.4500000000495,
+ 368.5000000000495,
+ 368.5500000000495,
+ 368.60000000004953,
+ 368.65000000004954,
+ 368.70000000004956,
+ 368.75000000004957,
+ 368.8000000000496,
+ 368.8500000000496,
+ 368.9000000000496,
+ 368.9500000000496,
+ 369.0000000000496,
+ 369.05000000004964,
+ 369.10000000004965,
+ 369.15000000004966,
+ 369.20000000004967,
+ 369.2500000000497,
+ 369.3000000000497,
+ 369.3500000000497,
+ 369.4000000000497,
+ 369.4500000000497,
+ 369.50000000004974,
+ 369.55000000004975,
+ 369.60000000004976,
+ 369.6500000000498,
+ 369.7000000000498,
+ 369.7500000000498,
+ 369.8000000000498,
+ 369.8500000000498,
+ 369.90000000004983,
+ 369.95000000004984,
+ 370.00000000004985,
+ 370.05000000004986,
+ 370.1000000000499,
+ 370.1500000000499,
+ 370.2000000000499,
+ 370.2500000000499,
+ 370.3000000000499,
+ 370.35000000004993,
+ 370.40000000004994,
+ 370.45000000004995,
+ 370.50000000004997,
+ 370.55000000005,
+ 370.60000000005,
+ 370.65000000005,
+ 370.70000000005,
+ 370.75000000005,
+ 370.80000000005003,
+ 370.85000000005004,
+ 370.90000000005006,
+ 370.95000000005007,
+ 371.0000000000501,
+ 371.0500000000501,
+ 371.1000000000501,
+ 371.1500000000501,
+ 371.2000000000501,
+ 371.25000000005014,
+ 371.30000000005015,
+ 371.35000000005016,
+ 371.40000000005017,
+ 371.4500000000502,
+ 371.5000000000502,
+ 371.5500000000502,
+ 371.6000000000502,
+ 371.6500000000502,
+ 371.70000000005024,
+ 371.75000000005025,
+ 371.80000000005026,
+ 371.8500000000503,
+ 371.9000000000503,
+ 371.9500000000503,
+ 372.0000000000503,
+ 372.0500000000503,
+ 372.10000000005033,
+ 372.15000000005034,
+ 372.20000000005035,
+ 372.25000000005036,
+ 372.3000000000504,
+ 372.3500000000504,
+ 372.4000000000504,
+ 372.4500000000504,
+ 372.5000000000504,
+ 372.55000000005043,
+ 372.60000000005044,
+ 372.65000000005045,
+ 372.70000000005047,
+ 372.7500000000505,
+ 372.8000000000505,
+ 372.8500000000505,
+ 372.9000000000505,
+ 372.9500000000505,
+ 373.00000000005053,
+ 373.05000000005055,
+ 373.10000000005056,
+ 373.15000000005057,
+ 373.2000000000506,
+ 373.2500000000506,
+ 373.3000000000506,
+ 373.3500000000506,
+ 373.4000000000506,
+ 373.45000000005064,
+ 373.50000000005065,
+ 373.55000000005066,
+ 373.60000000005067,
+ 373.6500000000507,
+ 373.7000000000507,
+ 373.7500000000507,
+ 373.8000000000507,
+ 373.8500000000507,
+ 373.90000000005074,
+ 373.95000000005075,
+ 374.00000000005076,
+ 374.0500000000508,
+ 374.1000000000508,
+ 374.1500000000508,
+ 374.2000000000508,
+ 374.2500000000508,
+ 374.30000000005083,
+ 374.35000000005084,
+ 374.40000000005085,
+ 374.45000000005086,
+ 374.5000000000509,
+ 374.5500000000509,
+ 374.6000000000509,
+ 374.6500000000509,
+ 374.7000000000509,
+ 374.75000000005093,
+ 374.80000000005094,
+ 374.85000000005095,
+ 374.90000000005097,
+ 374.950000000051,
+ 375.000000000051,
+ 375.050000000051,
+ 375.100000000051,
+ 375.150000000051,
+ 375.20000000005103,
+ 375.25000000005105,
+ 375.30000000005106,
+ 375.35000000005107,
+ 375.4000000000511,
+ 375.4500000000511,
+ 375.5000000000511,
+ 375.5500000000511,
+ 375.6000000000511,
+ 375.65000000005114,
+ 375.70000000005115,
+ 375.75000000005116,
+ 375.80000000005117,
+ 375.8500000000512,
+ 375.9000000000512,
+ 375.9500000000512,
+ 376.0000000000512,
+ 376.0500000000512,
+ 376.10000000005124,
+ 376.15000000005125,
+ 376.20000000005126,
+ 376.2500000000513,
+ 376.3000000000513,
+ 376.3500000000513,
+ 376.4000000000513,
+ 376.4500000000513,
+ 376.50000000005133,
+ 376.55000000005134,
+ 376.60000000005135,
+ 376.65000000005136,
+ 376.7000000000514,
+ 376.7500000000514,
+ 376.8000000000514,
+ 376.8500000000514,
+ 376.9000000000514,
+ 376.95000000005143,
+ 377.00000000005144,
+ 377.05000000005145,
+ 377.10000000005147,
+ 377.1500000000515,
+ 377.2000000000515,
+ 377.2500000000515,
+ 377.3000000000515,
+ 377.3500000000515,
+ 377.40000000005153,
+ 377.45000000005155,
+ 377.50000000005156,
+ 377.55000000005157,
+ 377.6000000000516,
+ 377.6500000000516,
+ 377.7000000000516,
+ 377.7500000000516,
+ 377.8000000000516,
+ 377.85000000005164,
+ 377.90000000005165,
+ 377.95000000005166,
+ 378.00000000005167,
+ 378.0500000000517,
+ 378.1000000000517,
+ 378.1500000000517,
+ 378.2000000000517,
+ 378.2500000000517,
+ 378.30000000005174,
+ 378.35000000005175,
+ 378.40000000005176,
+ 378.4500000000518,
+ 378.5000000000518,
+ 378.5500000000518,
+ 378.6000000000518,
+ 378.6500000000518,
+ 378.70000000005183,
+ 378.75000000005184,
+ 378.80000000005185,
+ 378.85000000005186,
+ 378.9000000000519,
+ 378.9500000000519,
+ 379.0000000000519,
+ 379.0500000000519,
+ 379.1000000000519,
+ 379.15000000005193,
+ 379.20000000005194,
+ 379.25000000005195,
+ 379.30000000005197,
+ 379.350000000052,
+ 379.400000000052,
+ 379.450000000052,
+ 379.500000000052,
+ 379.550000000052,
+ 379.60000000005203,
+ 379.65000000005205,
+ 379.70000000005206,
+ 379.75000000005207,
+ 379.8000000000521,
+ 379.8500000000521,
+ 379.9000000000521,
+ 379.9500000000521,
+ 380.0000000000521,
+ 380.05000000005214,
+ 380.10000000005215,
+ 380.15000000005216,
+ 380.20000000005217,
+ 380.2500000000522,
+ 380.3000000000522,
+ 380.3500000000522,
+ 380.4000000000522,
+ 380.4500000000522,
+ 380.50000000005224,
+ 380.55000000005225,
+ 380.60000000005226,
+ 380.6500000000523,
+ 380.7000000000523,
+ 380.7500000000523,
+ 380.8000000000523,
+ 380.8500000000523,
+ 380.90000000005233,
+ 380.95000000005234,
+ 381.00000000005235,
+ 381.05000000005236,
+ 381.1000000000524,
+ 381.1500000000524,
+ 381.2000000000524,
+ 381.2500000000524,
+ 381.3000000000524,
+ 381.35000000005243,
+ 381.40000000005244,
+ 381.45000000005246,
+ 381.50000000005247,
+ 381.5500000000525,
+ 381.6000000000525,
+ 381.6500000000525,
+ 381.7000000000525,
+ 381.7500000000525,
+ 381.80000000005253,
+ 381.85000000005255,
+ 381.90000000005256,
+ 381.95000000005257,
+ 382.0000000000526,
+ 382.0500000000526,
+ 382.1000000000526,
+ 382.1500000000526,
+ 382.2000000000526,
+ 382.25000000005264,
+ 382.30000000005265,
+ 382.35000000005266,
+ 382.40000000005267,
+ 382.4500000000527,
+ 382.5000000000527,
+ 382.5500000000527,
+ 382.6000000000527,
+ 382.6500000000527,
+ 382.70000000005274,
+ 382.75000000005275,
+ 382.80000000005276,
+ 382.8500000000528,
+ 382.9000000000528,
+ 382.9500000000528,
+ 383.0000000000528,
+ 383.0500000000528,
+ 383.10000000005283,
+ 383.15000000005284,
+ 383.20000000005285,
+ 383.25000000005286,
+ 383.3000000000529,
+ 383.3500000000529,
+ 383.4000000000529,
+ 383.4500000000529,
+ 383.5000000000529,
+ 383.55000000005293,
+ 383.60000000005294,
+ 383.65000000005296,
+ 383.70000000005297,
+ 383.750000000053,
+ 383.800000000053,
+ 383.850000000053,
+ 383.900000000053,
+ 383.950000000053,
+ 384.00000000005303,
+ 384.05000000005305,
+ 384.10000000005306,
+ 384.15000000005307,
+ 384.2000000000531,
+ 384.2500000000531,
+ 384.3000000000531,
+ 384.3500000000531,
+ 384.4000000000531,
+ 384.45000000005314,
+ 384.50000000005315,
+ 384.55000000005316,
+ 384.60000000005317,
+ 384.6500000000532,
+ 384.7000000000532,
+ 384.7500000000532,
+ 384.8000000000532,
+ 384.8500000000532,
+ 384.90000000005324,
+ 384.95000000005325,
+ 385.00000000005326,
+ 385.0500000000533,
+ 385.1000000000533,
+ 385.1500000000533,
+ 385.2000000000533,
+ 385.2500000000533,
+ 385.30000000005333,
+ 385.35000000005334,
+ 385.40000000005335,
+ 385.45000000005336,
+ 385.5000000000534,
+ 385.5500000000534,
+ 385.6000000000534,
+ 385.6500000000534,
+ 385.7000000000534,
+ 385.75000000005343,
+ 385.80000000005344,
+ 385.85000000005346,
+ 385.90000000005347,
+ 385.9500000000535,
+ 386.0000000000535,
+ 386.0500000000535,
+ 386.1000000000535,
+ 386.1500000000535,
+ 386.20000000005354,
+ 386.25000000005355,
+ 386.30000000005356,
+ 386.35000000005357,
+ 386.4000000000536,
+ 386.4500000000536,
+ 386.5000000000536,
+ 386.5500000000536,
+ 386.6000000000536,
+ 386.65000000005364,
+ 386.70000000005365,
+ 386.75000000005366,
+ 386.80000000005367,
+ 386.8500000000537,
+ 386.9000000000537,
+ 386.9500000000537,
+ 387.0000000000537,
+ 387.0500000000537,
+ 387.10000000005374,
+ 387.15000000005375,
+ 387.20000000005376,
+ 387.2500000000538,
+ 387.3000000000538,
+ 387.3500000000538,
+ 387.4000000000538,
+ 387.4500000000538,
+ 387.50000000005383,
+ 387.55000000005384,
+ 387.60000000005385,
+ 387.65000000005386,
+ 387.7000000000539,
+ 387.7500000000539,
+ 387.8000000000539,
+ 387.8500000000539,
+ 387.9000000000539,
+ 387.95000000005393,
+ 388.00000000005394,
+ 388.05000000005396,
+ 388.10000000005397,
+ 388.150000000054,
+ 388.200000000054,
+ 388.250000000054,
+ 388.300000000054,
+ 388.350000000054,
+ 388.40000000005404,
+ 388.45000000005405,
+ 388.50000000005406,
+ 388.55000000005407,
+ 388.6000000000541,
+ 388.6500000000541,
+ 388.7000000000541,
+ 388.7500000000541,
+ 388.8000000000541,
+ 388.85000000005414,
+ 388.90000000005415,
+ 388.95000000005416,
+ 389.0000000000542,
+ 389.0500000000542,
+ 389.1000000000542,
+ 389.1500000000542,
+ 389.2000000000542,
+ 389.25000000005423,
+ 389.30000000005424,
+ 389.35000000005425,
+ 389.40000000005426,
+ 389.4500000000543,
+ 389.5000000000543,
+ 389.5500000000543,
+ 389.6000000000543,
+ 389.6500000000543,
+ 389.70000000005433,
+ 389.75000000005434,
+ 389.80000000005435,
+ 389.85000000005437,
+ 389.9000000000544,
+ 389.9500000000544,
+ 390.0000000000544,
+ 390.0500000000544,
+ 390.1000000000544,
+ 390.15000000005443,
+ 390.20000000005444,
+ 390.25000000005446,
+ 390.30000000005447,
+ 390.3500000000545,
+ 390.4000000000545,
+ 390.4500000000545,
+ 390.5000000000545,
+ 390.5500000000545,
+ 390.60000000005454,
+ 390.65000000005455,
+ 390.70000000005456,
+ 390.75000000005457,
+ 390.8000000000546,
+ 390.8500000000546,
+ 390.9000000000546,
+ 390.9500000000546,
+ 391.0000000000546,
+ 391.05000000005464,
+ 391.10000000005465,
+ 391.15000000005466,
+ 391.2000000000547,
+ 391.2500000000547,
+ 391.3000000000547,
+ 391.3500000000547,
+ 391.4000000000547,
+ 391.45000000005473,
+ 391.50000000005474,
+ 391.55000000005475,
+ 391.60000000005476,
+ 391.6500000000548,
+ 391.7000000000548,
+ 391.7500000000548,
+ 391.8000000000548,
+ 391.8500000000548,
+ 391.90000000005483,
+ 391.95000000005484,
+ 392.00000000005485,
+ 392.05000000005487,
+ 392.1000000000549,
+ 392.1500000000549,
+ 392.2000000000549,
+ 392.2500000000549,
+ 392.3000000000549,
+ 392.35000000005493,
+ 392.40000000005494,
+ 392.45000000005496,
+ 392.50000000005497,
+ 392.550000000055,
+ 392.600000000055,
+ 392.650000000055,
+ 392.700000000055,
+ 392.750000000055,
+ 392.80000000005504,
+ 392.85000000005505,
+ 392.90000000005506,
+ 392.95000000005507,
+ 393.0000000000551,
+ 393.0500000000551,
+ 393.1000000000551,
+ 393.1500000000551,
+ 393.2000000000551,
+ 393.25000000005514,
+ 393.30000000005515,
+ 393.35000000005516,
+ 393.4000000000552,
+ 393.4500000000552,
+ 393.5000000000552,
+ 393.5500000000552,
+ 393.6000000000552,
+ 393.65000000005523,
+ 393.70000000005524,
+ 393.75000000005525,
+ 393.80000000005526,
+ 393.8500000000553,
+ 393.9000000000553,
+ 393.9500000000553,
+ 394.0000000000553,
+ 394.0500000000553,
+ 394.10000000005533,
+ 394.15000000005534,
+ 394.20000000005535,
+ 394.25000000005537,
+ 394.3000000000554,
+ 394.3500000000554,
+ 394.4000000000554,
+ 394.4500000000554,
+ 394.5000000000554,
+ 394.55000000005543,
+ 394.60000000005545,
+ 394.65000000005546,
+ 394.70000000005547,
+ 394.7500000000555,
+ 394.8000000000555,
+ 394.8500000000555,
+ 394.9000000000555,
+ 394.9500000000555,
+ 395.00000000005554,
+ 395.05000000005555,
+ 395.10000000005556,
+ 395.15000000005557,
+ 395.2000000000556,
+ 395.2500000000556,
+ 395.3000000000556,
+ 395.3500000000556,
+ 395.4000000000556,
+ 395.45000000005564,
+ 395.50000000005565,
+ 395.55000000005566,
+ 395.6000000000557,
+ 395.6500000000557,
+ 395.7000000000557,
+ 395.7500000000557,
+ 395.8000000000557,
+ 395.85000000005573,
+ 395.90000000005574,
+ 395.95000000005575,
+ 396.00000000005576,
+ 396.0500000000558,
+ 396.1000000000558,
+ 396.1500000000558,
+ 396.2000000000558,
+ 396.2500000000558,
+ 396.30000000005583,
+ 396.35000000005584,
+ 396.40000000005585,
+ 396.45000000005587,
+ 396.5000000000559,
+ 396.5500000000559,
+ 396.6000000000559,
+ 396.6500000000559,
+ 396.7000000000559,
+ 396.75000000005593,
+ 396.80000000005595,
+ 396.85000000005596,
+ 396.90000000005597,
+ 396.950000000056,
+ 397.000000000056,
+ 397.050000000056,
+ 397.100000000056,
+ 397.150000000056,
+ 397.20000000005604,
+ 397.25000000005605,
+ 397.30000000005606,
+ 397.35000000005607,
+ 397.4000000000561,
+ 397.4500000000561,
+ 397.5000000000561,
+ 397.5500000000561,
+ 397.6000000000561,
+ 397.65000000005614,
+ 397.70000000005615,
+ 397.75000000005616,
+ 397.8000000000562,
+ 397.8500000000562,
+ 397.9000000000562,
+ 397.9500000000562,
+ 398.0000000000562,
+ 398.05000000005623,
+ 398.10000000005624,
+ 398.15000000005625,
+ 398.20000000005626,
+ 398.2500000000563,
+ 398.3000000000563,
+ 398.3500000000563,
+ 398.4000000000563,
+ 398.4500000000563,
+ 398.50000000005633,
+ 398.55000000005634,
+ 398.60000000005635,
+ 398.65000000005637,
+ 398.7000000000564,
+ 398.7500000000564,
+ 398.8000000000564,
+ 398.8500000000564,
+ 398.9000000000564,
+ 398.95000000005643,
+ 399.00000000005645,
+ 399.05000000005646,
+ 399.10000000005647,
+ 399.1500000000565,
+ 399.2000000000565,
+ 399.2500000000565,
+ 399.3000000000565,
+ 399.3500000000565,
+ 399.40000000005654,
+ 399.45000000005655,
+ 399.50000000005656,
+ 399.55000000005657,
+ 399.6000000000566,
+ 399.6500000000566,
+ 399.7000000000566,
+ 399.7500000000566,
+ 399.8000000000566,
+ 399.85000000005664,
+ 399.90000000005665,
+ 399.95000000005666,
+ 400.0000000000567,
+ 400.0500000000567,
+ 400.1000000000567,
+ 400.1500000000567,
+ 400.2000000000567,
+ 400.25000000005673,
+ 400.30000000005674,
+ 400.35000000005675,
+ 400.40000000005676,
+ 400.4500000000568,
+ 400.5000000000568,
+ 400.5500000000568,
+ 400.6000000000568,
+ 400.6500000000568,
+ 400.70000000005683,
+ 400.75000000005684,
+ 400.80000000005685,
+ 400.85000000005687,
+ 400.9000000000569,
+ 400.9500000000569,
+ 401.0000000000569,
+ 401.0500000000569,
+ 401.1000000000569,
+ 401.15000000005693,
+ 401.20000000005695,
+ 401.25000000005696,
+ 401.30000000005697,
+ 401.350000000057,
+ 401.400000000057,
+ 401.450000000057,
+ 401.500000000057,
+ 401.550000000057,
+ 401.60000000005704,
+ 401.65000000005705,
+ 401.70000000005706,
+ 401.75000000005707,
+ 401.8000000000571,
+ 401.8500000000571,
+ 401.9000000000571,
+ 401.9500000000571,
+ 402.0000000000571,
+ 402.05000000005714,
+ 402.10000000005715,
+ 402.15000000005716,
+ 402.2000000000572,
+ 402.2500000000572,
+ 402.3000000000572,
+ 402.3500000000572,
+ 402.4000000000572,
+ 402.45000000005723,
+ 402.50000000005724,
+ 402.55000000005725,
+ 402.60000000005726,
+ 402.6500000000573,
+ 402.7000000000573,
+ 402.7500000000573,
+ 402.8000000000573,
+ 402.8500000000573,
+ 402.90000000005733,
+ 402.95000000005734,
+ 403.00000000005736,
+ 403.05000000005737,
+ 403.1000000000574,
+ 403.1500000000574,
+ 403.2000000000574,
+ 403.2500000000574,
+ 403.3000000000574,
+ 403.35000000005743,
+ 403.40000000005745,
+ 403.45000000005746,
+ 403.50000000005747,
+ 403.5500000000575,
+ 403.6000000000575,
+ 403.6500000000575,
+ 403.7000000000575,
+ 403.7500000000575,
+ 403.80000000005754,
+ 403.85000000005755,
+ 403.90000000005756,
+ 403.95000000005757,
+ 404.0000000000576,
+ 404.0500000000576,
+ 404.1000000000576,
+ 404.1500000000576,
+ 404.2000000000576,
+ 404.25000000005764,
+ 404.30000000005765,
+ 404.35000000005766,
+ 404.4000000000577,
+ 404.4500000000577,
+ 404.5000000000577,
+ 404.5500000000577,
+ 404.6000000000577,
+ 404.65000000005773,
+ 404.70000000005774,
+ 404.75000000005775,
+ 404.80000000005776,
+ 404.8500000000578,
+ 404.9000000000578,
+ 404.9500000000578,
+ 405.0000000000578,
+ 405.0500000000578,
+ 405.10000000005783,
+ 405.15000000005784,
+ 405.20000000005786,
+ 405.25000000005787,
+ 405.3000000000579,
+ 405.3500000000579,
+ 405.4000000000579,
+ 405.4500000000579,
+ 405.5000000000579,
+ 405.55000000005793,
+ 405.60000000005795,
+ 405.65000000005796,
+ 405.70000000005797,
+ 405.750000000058,
+ 405.800000000058,
+ 405.850000000058,
+ 405.900000000058,
+ 405.950000000058,
+ 406.00000000005804,
+ 406.05000000005805,
+ 406.10000000005806,
+ 406.15000000005807,
+ 406.2000000000581,
+ 406.2500000000581,
+ 406.3000000000581,
+ 406.3500000000581,
+ 406.4000000000581,
+ 406.45000000005814,
+ 406.50000000005815,
+ 406.55000000005816,
+ 406.6000000000582,
+ 406.6500000000582,
+ 406.7000000000582,
+ 406.7500000000582,
+ 406.8000000000582,
+ 406.85000000005823,
+ 406.90000000005824,
+ 406.95000000005825,
+ 407.00000000005826,
+ 407.0500000000583,
+ 407.1000000000583,
+ 407.1500000000583,
+ 407.2000000000583,
+ 407.2500000000583,
+ 407.30000000005833,
+ 407.35000000005834,
+ 407.40000000005836,
+ 407.45000000005837,
+ 407.5000000000584,
+ 407.5500000000584,
+ 407.6000000000584,
+ 407.6500000000584,
+ 407.7000000000584,
+ 407.75000000005844,
+ 407.80000000005845,
+ 407.85000000005846,
+ 407.90000000005847,
+ 407.9500000000585,
+ 408.0000000000585,
+ 408.0500000000585,
+ 408.1000000000585,
+ 408.1500000000585,
+ 408.20000000005854,
+ 408.25000000005855,
+ 408.30000000005856,
+ 408.35000000005857,
+ 408.4000000000586,
+ 408.4500000000586,
+ 408.5000000000586,
+ 408.5500000000586,
+ 408.6000000000586,
+ 408.65000000005864,
+ 408.70000000005865,
+ 408.75000000005866,
+ 408.8000000000587,
+ 408.8500000000587,
+ 408.9000000000587,
+ 408.9500000000587,
+ 409.0000000000587,
+ 409.05000000005873,
+ 409.10000000005874,
+ 409.15000000005875,
+ 409.20000000005876,
+ 409.2500000000588,
+ 409.3000000000588,
+ 409.3500000000588,
+ 409.4000000000588,
+ 409.4500000000588,
+ 409.50000000005883,
+ 409.55000000005884,
+ 409.60000000005886,
+ 409.65000000005887,
+ 409.7000000000589,
+ 409.7500000000589,
+ 409.8000000000589,
+ 409.8500000000589,
+ 409.9000000000589,
+ 409.95000000005894,
+ 410.00000000005895,
+ 410.05000000005896,
+ 410.10000000005897,
+ 410.150000000059,
+ 410.200000000059,
+ 410.250000000059,
+ 410.300000000059,
+ 410.350000000059,
+ 410.40000000005904,
+ 410.45000000005905,
+ 410.50000000005906,
+ 410.5500000000591,
+ 410.6000000000591,
+ 410.6500000000591,
+ 410.7000000000591,
+ 410.7500000000591,
+ 410.80000000005913,
+ 410.85000000005914,
+ 410.90000000005915,
+ 410.95000000005916,
+ 411.0000000000592,
+ 411.0500000000592,
+ 411.1000000000592,
+ 411.1500000000592,
+ 411.2000000000592,
+ 411.25000000005923,
+ 411.30000000005924,
+ 411.35000000005925,
+ 411.40000000005926,
+ 411.4500000000593,
+ 411.5000000000593,
+ 411.5500000000593,
+ 411.6000000000593,
+ 411.6500000000593,
+ 411.70000000005933,
+ 411.75000000005934,
+ 411.80000000005936,
+ 411.85000000005937,
+ 411.9000000000594,
+ 411.9500000000594,
+ 412.0000000000594,
+ 412.0500000000594,
+ 412.1000000000594,
+ 412.15000000005944,
+ 412.20000000005945,
+ 412.25000000005946,
+ 412.30000000005947,
+ 412.3500000000595,
+ 412.4000000000595,
+ 412.4500000000595,
+ 412.5000000000595,
+ 412.5500000000595,
+ 412.60000000005954,
+ 412.65000000005955,
+ 412.70000000005956,
+ 412.7500000000596,
+ 412.8000000000596,
+ 412.8500000000596,
+ 412.9000000000596,
+ 412.9500000000596,
+ 413.00000000005963,
+ 413.05000000005964,
+ 413.10000000005965,
+ 413.15000000005966,
+ 413.2000000000597,
+ 413.2500000000597,
+ 413.3000000000597,
+ 413.3500000000597,
+ 413.4000000000597,
+ 413.45000000005973,
+ 413.50000000005974,
+ 413.55000000005975,
+ 413.60000000005977,
+ 413.6500000000598,
+ 413.7000000000598,
+ 413.7500000000598,
+ 413.8000000000598,
+ 413.8500000000598,
+ 413.90000000005983,
+ 413.95000000005984,
+ 414.00000000005986,
+ 414.05000000005987,
+ 414.1000000000599,
+ 414.1500000000599,
+ 414.2000000000599,
+ 414.2500000000599,
+ 414.3000000000599,
+ 414.35000000005994,
+ 414.40000000005995,
+ 414.45000000005996,
+ 414.50000000005997,
+ 414.55000000006,
+ 414.60000000006,
+ 414.65000000006,
+ 414.70000000006,
+ 414.75000000006,
+ 414.80000000006004,
+ 414.85000000006005,
+ 414.90000000006006,
+ 414.9500000000601,
+ 415.0000000000601,
+ 415.0500000000601,
+ 415.1000000000601,
+ 415.1500000000601,
+ 415.20000000006013,
+ 415.25000000006014,
+ 415.30000000006015,
+ 415.35000000006016,
+ 415.4000000000602,
+ 415.4500000000602,
+ 415.5000000000602,
+ 415.5500000000602,
+ 415.6000000000602,
+ 415.65000000006023,
+ 415.70000000006024,
+ 415.75000000006025,
+ 415.80000000006027,
+ 415.8500000000603,
+ 415.9000000000603,
+ 415.9500000000603,
+ 416.0000000000603,
+ 416.0500000000603,
+ 416.10000000006033,
+ 416.15000000006034,
+ 416.20000000006036,
+ 416.25000000006037,
+ 416.3000000000604,
+ 416.3500000000604,
+ 416.4000000000604,
+ 416.4500000000604,
+ 416.5000000000604,
+ 416.55000000006044,
+ 416.60000000006045,
+ 416.65000000006046,
+ 416.70000000006047,
+ 416.7500000000605,
+ 416.8000000000605,
+ 416.8500000000605,
+ 416.9000000000605,
+ 416.9500000000605,
+ 417.00000000006054,
+ 417.05000000006055,
+ 417.10000000006056,
+ 417.1500000000606,
+ 417.2000000000606,
+ 417.2500000000606,
+ 417.3000000000606,
+ 417.3500000000606,
+ 417.40000000006063,
+ 417.45000000006064,
+ 417.50000000006065,
+ 417.55000000006066,
+ 417.6000000000607,
+ 417.6500000000607,
+ 417.7000000000607,
+ 417.7500000000607,
+ 417.8000000000607,
+ 417.85000000006073,
+ 417.90000000006074,
+ 417.95000000006075,
+ 418.00000000006077,
+ 418.0500000000608,
+ 418.1000000000608,
+ 418.1500000000608,
+ 418.2000000000608,
+ 418.2500000000608,
+ 418.30000000006083,
+ 418.35000000006085,
+ 418.40000000006086,
+ 418.45000000006087,
+ 418.5000000000609,
+ 418.5500000000609,
+ 418.6000000000609,
+ 418.6500000000609,
+ 418.7000000000609,
+ 418.75000000006094,
+ 418.80000000006095,
+ 418.85000000006096,
+ 418.90000000006097,
+ 418.950000000061,
+ 419.000000000061,
+ 419.050000000061,
+ 419.100000000061,
+ 419.150000000061,
+ 419.20000000006104,
+ 419.25000000006105,
+ 419.30000000006106,
+ 419.3500000000611,
+ 419.4000000000611,
+ 419.4500000000611,
+ 419.5000000000611,
+ 419.5500000000611,
+ 419.60000000006113,
+ 419.65000000006114,
+ 419.70000000006115,
+ 419.75000000006116,
+ 419.8000000000612,
+ 419.8500000000612,
+ 419.9000000000612,
+ 419.9500000000612,
+ 420.0000000000612,
+ 420.05000000006123,
+ 420.10000000006124,
+ 420.15000000006125,
+ 420.20000000006127,
+ 420.2500000000613,
+ 420.3000000000613,
+ 420.3500000000613,
+ 420.4000000000613,
+ 420.4500000000613,
+ 420.50000000006133,
+ 420.55000000006135,
+ 420.60000000006136,
+ 420.65000000006137,
+ 420.7000000000614,
+ 420.7500000000614,
+ 420.8000000000614,
+ 420.8500000000614,
+ 420.9000000000614,
+ 420.95000000006144,
+ 421.00000000006145,
+ 421.05000000006146,
+ 421.10000000006147,
+ 421.1500000000615,
+ 421.2000000000615,
+ 421.2500000000615,
+ 421.3000000000615,
+ 421.3500000000615,
+ 421.40000000006154,
+ 421.45000000006155,
+ 421.50000000006156,
+ 421.5500000000616,
+ 421.6000000000616,
+ 421.6500000000616,
+ 421.7000000000616,
+ 421.7500000000616,
+ 421.80000000006163,
+ 421.85000000006164,
+ 421.90000000006165,
+ 421.95000000006166,
+ 422.0000000000617,
+ 422.0500000000617,
+ 422.1000000000617,
+ 422.1500000000617,
+ 422.2000000000617,
+ 422.25000000006173,
+ 422.30000000006174,
+ 422.35000000006175,
+ 422.40000000006177,
+ 422.4500000000618,
+ 422.5000000000618,
+ 422.5500000000618,
+ 422.6000000000618,
+ 422.6500000000618,
+ 422.70000000006183,
+ 422.75000000006185,
+ 422.80000000006186,
+ 422.85000000006187,
+ 422.9000000000619,
+ 422.9500000000619,
+ 423.0000000000619,
+ 423.0500000000619,
+ 423.1000000000619,
+ 423.15000000006194,
+ 423.20000000006195,
+ 423.25000000006196,
+ 423.30000000006197,
+ 423.350000000062,
+ 423.400000000062,
+ 423.450000000062,
+ 423.500000000062,
+ 423.550000000062,
+ 423.60000000006204,
+ 423.65000000006205,
+ 423.70000000006206,
+ 423.7500000000621,
+ 423.8000000000621,
+ 423.8500000000621,
+ 423.9000000000621,
+ 423.9500000000621,
+ 424.00000000006213,
+ 424.05000000006214,
+ 424.10000000006215,
+ 424.15000000006216,
+ 424.2000000000622,
+ 424.2500000000622,
+ 424.3000000000622,
+ 424.3500000000622,
+ 424.4000000000622,
+ 424.45000000006223,
+ 424.50000000006224,
+ 424.55000000006225,
+ 424.60000000006227,
+ 424.6500000000623,
+ 424.7000000000623,
+ 424.7500000000623,
+ 424.8000000000623,
+ 424.8500000000623,
+ 424.90000000006233,
+ 424.95000000006235,
+ 425.00000000006236,
+ 425.05000000006237,
+ 425.1000000000624,
+ 425.1500000000624,
+ 425.2000000000624,
+ 425.2500000000624,
+ 425.3000000000624,
+ 425.35000000006244,
+ 425.40000000006245,
+ 425.45000000006246,
+ 425.50000000006247,
+ 425.5500000000625,
+ 425.6000000000625,
+ 425.6500000000625,
+ 425.7000000000625,
+ 425.7500000000625,
+ 425.80000000006254,
+ 425.85000000006255,
+ 425.90000000006256,
+ 425.9500000000626,
+ 426.0000000000626,
+ 426.0500000000626,
+ 426.1000000000626,
+ 426.1500000000626,
+ 426.20000000006263,
+ 426.25000000006264,
+ 426.30000000006265,
+ 426.35000000006266,
+ 426.4000000000627,
+ 426.4500000000627,
+ 426.5000000000627,
+ 426.5500000000627,
+ 426.6000000000627,
+ 426.65000000006273,
+ 426.70000000006274,
+ 426.75000000006276,
+ 426.80000000006277,
+ 426.8500000000628,
+ 426.9000000000628,
+ 426.9500000000628,
+ 427.0000000000628,
+ 427.0500000000628,
+ 427.10000000006283,
+ 427.15000000006285,
+ 427.20000000006286,
+ 427.25000000006287,
+ 427.3000000000629,
+ 427.3500000000629,
+ 427.4000000000629,
+ 427.4500000000629,
+ 427.5000000000629,
+ 427.55000000006294,
+ 427.60000000006295,
+ 427.65000000006296,
+ 427.70000000006297,
+ 427.750000000063,
+ 427.800000000063,
+ 427.850000000063,
+ 427.900000000063,
+ 427.950000000063,
+ 428.00000000006304,
+ 428.05000000006305,
+ 428.10000000006306,
+ 428.1500000000631,
+ 428.2000000000631,
+ 428.2500000000631,
+ 428.3000000000631,
+ 428.3500000000631,
+ 428.40000000006313,
+ 428.45000000006314,
+ 428.50000000006315,
+ 428.55000000006316,
+ 428.6000000000632,
+ 428.6500000000632,
+ 428.7000000000632,
+ 428.7500000000632,
+ 428.8000000000632,
+ 428.85000000006323,
+ 428.90000000006324,
+ 428.95000000006326,
+ 429.00000000006327,
+ 429.0500000000633,
+ 429.1000000000633,
+ 429.1500000000633,
+ 429.2000000000633,
+ 429.2500000000633,
+ 429.30000000006333,
+ 429.35000000006335,
+ 429.40000000006336,
+ 429.45000000006337,
+ 429.5000000000634,
+ 429.5500000000634,
+ 429.6000000000634,
+ 429.6500000000634,
+ 429.7000000000634,
+ 429.75000000006344,
+ 429.80000000006345,
+ 429.85000000006346,
+ 429.90000000006347,
+ 429.9500000000635,
+ 430.0000000000635,
+ 430.0500000000635,
+ 430.1000000000635,
+ 430.1500000000635,
+ 430.20000000006354,
+ 430.25000000006355,
+ 430.30000000006356,
+ 430.3500000000636,
+ 430.4000000000636,
+ 430.4500000000636,
+ 430.5000000000636,
+ 430.5500000000636,
+ 430.60000000006363,
+ 430.65000000006364,
+ 430.70000000006365,
+ 430.75000000006366,
+ 430.8000000000637,
+ 430.8500000000637,
+ 430.9000000000637,
+ 430.9500000000637,
+ 431.0000000000637,
+ 431.05000000006373,
+ 431.10000000006374,
+ 431.15000000006376,
+ 431.20000000006377,
+ 431.2500000000638,
+ 431.3000000000638,
+ 431.3500000000638,
+ 431.4000000000638,
+ 431.4500000000638,
+ 431.50000000006384,
+ 431.55000000006385,
+ 431.60000000006386,
+ 431.65000000006387,
+ 431.7000000000639,
+ 431.7500000000639,
+ 431.8000000000639,
+ 431.8500000000639,
+ 431.9000000000639,
+ 431.95000000006394,
+ 432.00000000006395,
+ 432.05000000006396,
+ 432.100000000064,
+ 432.150000000064,
+ 432.200000000064,
+ 432.250000000064,
+ 432.300000000064,
+ 432.35000000006403,
+ 432.40000000006404,
+ 432.45000000006405,
+ 432.50000000006406,
+ 432.5500000000641,
+ 432.6000000000641,
+ 432.6500000000641,
+ 432.7000000000641,
+ 432.7500000000641,
+ 432.80000000006413,
+ 432.85000000006414,
+ 432.90000000006415,
+ 432.95000000006416,
+ 433.0000000000642,
+ 433.0500000000642,
+ 433.1000000000642,
+ 433.1500000000642,
+ 433.2000000000642,
+ 433.25000000006423,
+ 433.30000000006424,
+ 433.35000000006426,
+ 433.40000000006427,
+ 433.4500000000643,
+ 433.5000000000643,
+ 433.5500000000643,
+ 433.6000000000643,
+ 433.6500000000643,
+ 433.70000000006434,
+ 433.75000000006435,
+ 433.80000000006436,
+ 433.85000000006437,
+ 433.9000000000644,
+ 433.9500000000644,
+ 434.0000000000644,
+ 434.0500000000644,
+ 434.1000000000644,
+ 434.15000000006444,
+ 434.20000000006445,
+ 434.25000000006446,
+ 434.3000000000645,
+ 434.3500000000645,
+ 434.4000000000645,
+ 434.4500000000645,
+ 434.5000000000645,
+ 434.55000000006453,
+ 434.60000000006454,
+ 434.65000000006455,
+ 434.70000000006456,
+ 434.7500000000646,
+ 434.8000000000646,
+ 434.8500000000646,
+ 434.9000000000646,
+ 434.9500000000646,
+ 435.00000000006463,
+ 435.05000000006464,
+ 435.10000000006465,
+ 435.15000000006467,
+ 435.2000000000647,
+ 435.2500000000647,
+ 435.3000000000647,
+ 435.3500000000647,
+ 435.4000000000647,
+ 435.45000000006473,
+ 435.50000000006474,
+ 435.55000000006476,
+ 435.60000000006477,
+ 435.6500000000648,
+ 435.7000000000648,
+ 435.7500000000648,
+ 435.8000000000648,
+ 435.8500000000648,
+ 435.90000000006484,
+ 435.95000000006485,
+ 436.00000000006486,
+ 436.05000000006487,
+ 436.1000000000649,
+ 436.1500000000649,
+ 436.2000000000649,
+ 436.2500000000649,
+ 436.3000000000649,
+ 436.35000000006494,
+ 436.40000000006495,
+ 436.45000000006496,
+ 436.500000000065,
+ 436.550000000065,
+ 436.600000000065,
+ 436.650000000065,
+ 436.700000000065,
+ 436.75000000006503,
+ 436.80000000006504,
+ 436.85000000006505,
+ 436.90000000006506,
+ 436.9500000000651,
+ 437.0000000000651,
+ 437.0500000000651,
+ 437.1000000000651,
+ 437.1500000000651,
+ 437.20000000006513,
+ 437.25000000006514,
+ 437.30000000006515,
+ 437.35000000006517,
+ 437.4000000000652,
+ 437.4500000000652,
+ 437.5000000000652,
+ 437.5500000000652,
+ 437.6000000000652,
+ 437.65000000006523,
+ 437.70000000006524,
+ 437.75000000006526,
+ 437.80000000006527,
+ 437.8500000000653,
+ 437.9000000000653,
+ 437.9500000000653,
+ 438.0000000000653,
+ 438.0500000000653,
+ 438.10000000006534,
+ 438.15000000006535,
+ 438.20000000006536,
+ 438.25000000006537,
+ 438.3000000000654,
+ 438.3500000000654,
+ 438.4000000000654,
+ 438.4500000000654,
+ 438.5000000000654,
+ 438.55000000006544,
+ 438.60000000006545,
+ 438.65000000006546,
+ 438.7000000000655,
+ 438.7500000000655,
+ 438.8000000000655,
+ 438.8500000000655,
+ 438.9000000000655,
+ 438.95000000006553,
+ 439.00000000006554,
+ 439.05000000006555,
+ 439.10000000006556,
+ 439.1500000000656,
+ 439.2000000000656,
+ 439.2500000000656,
+ 439.3000000000656,
+ 439.3500000000656,
+ 439.40000000006563,
+ 439.45000000006564,
+ 439.50000000006565,
+ 439.55000000006567,
+ 439.6000000000657,
+ 439.6500000000657,
+ 439.7000000000657,
+ 439.7500000000657,
+ 439.8000000000657,
+ 439.85000000006573,
+ 439.90000000006575,
+ 439.95000000006576,
+ 440.00000000006577,
+ 440.0500000000658,
+ 440.1000000000658,
+ 440.1500000000658,
+ 440.2000000000658,
+ 440.2500000000658,
+ 440.30000000006584,
+ 440.35000000006585,
+ 440.40000000006586,
+ 440.45000000006587,
+ 440.5000000000659,
+ 440.5500000000659,
+ 440.6000000000659,
+ 440.6500000000659,
+ 440.7000000000659,
+ 440.75000000006594,
+ 440.80000000006595,
+ 440.85000000006596,
+ 440.900000000066,
+ 440.950000000066,
+ 441.000000000066,
+ 441.050000000066,
+ 441.100000000066,
+ 441.15000000006603,
+ 441.20000000006604,
+ 441.25000000006605,
+ 441.30000000006606,
+ 441.3500000000661,
+ 441.4000000000661,
+ 441.4500000000661,
+ 441.5000000000661,
+ 441.5500000000661,
+ 441.60000000006613,
+ 441.65000000006614,
+ 441.70000000006615,
+ 441.75000000006617,
+ 441.8000000000662,
+ 441.8500000000662,
+ 441.9000000000662,
+ 441.9500000000662,
+ 442.0000000000662,
+ 442.05000000006623,
+ 442.10000000006625,
+ 442.15000000006626,
+ 442.20000000006627,
+ 442.2500000000663,
+ 442.3000000000663,
+ 442.3500000000663,
+ 442.4000000000663,
+ 442.4500000000663,
+ 442.50000000006634,
+ 442.55000000006635,
+ 442.60000000006636,
+ 442.65000000006637,
+ 442.7000000000664,
+ 442.7500000000664,
+ 442.8000000000664,
+ 442.8500000000664,
+ 442.9000000000664,
+ 442.95000000006644,
+ 443.00000000006645,
+ 443.05000000006646,
+ 443.1000000000665,
+ 443.1500000000665,
+ 443.2000000000665,
+ 443.2500000000665,
+ 443.3000000000665,
+ 443.35000000006653,
+ 443.40000000006654,
+ 443.45000000006655,
+ 443.50000000006656,
+ 443.5500000000666,
+ 443.6000000000666,
+ 443.6500000000666,
+ 443.7000000000666,
+ 443.7500000000666,
+ 443.80000000006663,
+ 443.85000000006664,
+ 443.90000000006665,
+ 443.95000000006667,
+ 444.0000000000667,
+ 444.0500000000667,
+ 444.1000000000667,
+ 444.1500000000667,
+ 444.2000000000667,
+ 444.25000000006673,
+ 444.30000000006675,
+ 444.35000000006676,
+ 444.40000000006677,
+ 444.4500000000668,
+ 444.5000000000668,
+ 444.5500000000668,
+ 444.6000000000668,
+ 444.6500000000668,
+ 444.70000000006684,
+ 444.75000000006685,
+ 444.80000000006686,
+ 444.85000000006687,
+ 444.9000000000669,
+ 444.9500000000669,
+ 445.0000000000669,
+ 445.0500000000669,
+ 445.1000000000669,
+ 445.15000000006694,
+ 445.20000000006695,
+ 445.25000000006696,
+ 445.300000000067,
+ 445.350000000067,
+ 445.400000000067,
+ 445.450000000067,
+ 445.500000000067,
+ 445.55000000006703,
+ 445.60000000006704,
+ 445.65000000006705,
+ 445.70000000006706,
+ 445.7500000000671,
+ 445.8000000000671,
+ 445.8500000000671,
+ 445.9000000000671,
+ 445.9500000000671,
+ 446.00000000006713,
+ 446.05000000006714,
+ 446.10000000006715,
+ 446.15000000006717,
+ 446.2000000000672,
+ 446.2500000000672,
+ 446.3000000000672,
+ 446.3500000000672,
+ 446.4000000000672,
+ 446.45000000006723,
+ 446.50000000006725,
+ 446.55000000006726,
+ 446.60000000006727,
+ 446.6500000000673,
+ 446.7000000000673,
+ 446.7500000000673,
+ 446.8000000000673,
+ 446.8500000000673,
+ 446.90000000006734,
+ 446.95000000006735,
+ 447.00000000006736,
+ 447.05000000006737,
+ 447.1000000000674,
+ 447.1500000000674,
+ 447.2000000000674,
+ 447.2500000000674,
+ 447.3000000000674,
+ 447.35000000006744,
+ 447.40000000006745,
+ 447.45000000006746,
+ 447.5000000000675,
+ 447.5500000000675,
+ 447.6000000000675,
+ 447.6500000000675,
+ 447.7000000000675,
+ 447.75000000006753,
+ 447.80000000006754,
+ 447.85000000006755,
+ 447.90000000006756,
+ 447.9500000000676,
+ 448.0000000000676,
+ 448.0500000000676,
+ 448.1000000000676,
+ 448.1500000000676,
+ 448.20000000006763,
+ 448.25000000006764,
+ 448.30000000006766,
+ 448.35000000006767,
+ 448.4000000000677,
+ 448.4500000000677,
+ 448.5000000000677,
+ 448.5500000000677,
+ 448.6000000000677,
+ 448.65000000006773,
+ 448.70000000006775,
+ 448.75000000006776,
+ 448.80000000006777,
+ 448.8500000000678,
+ 448.9000000000678,
+ 448.9500000000678,
+ 449.0000000000678,
+ 449.0500000000678,
+ 449.10000000006784,
+ 449.15000000006785,
+ 449.20000000006786,
+ 449.25000000006787,
+ 449.3000000000679,
+ 449.3500000000679,
+ 449.4000000000679,
+ 449.4500000000679,
+ 449.5000000000679,
+ 449.55000000006794,
+ 449.60000000006795,
+ 449.65000000006796,
+ 449.700000000068,
+ 449.750000000068,
+ 449.800000000068,
+ 449.850000000068,
+ 449.900000000068,
+ 449.95000000006803
+ ]
+ }
+}
diff --git a/tests/backend/netpyne_model_importer_test.py b/tests/backend/netpyne_model_importer_test.py
new file mode 100644
index 00000000..1b3332f2
--- /dev/null
+++ b/tests/backend/netpyne_model_importer_test.py
@@ -0,0 +1,87 @@
+import unittest
+import os
+import sys
+import logging
+import json, urllib.request
+
+import netpyne
+
+from netpyne import specs, sim
+from netpyne_ui.netpyne_model_interpreter import NetPyNEModelInterpreter
+import neuron
+import subprocess
+
+from netpyne_ui.netpyne_geppetto import NETPYNE_WORKDIR_PATH
+from netpyne_ui.netpyne_geppetto import NetPyNEGeppetto
+
+import sentry_sdk
+sentry_sdk.init()
+
+netpyne.__gui__ = False
+sys.path.insert(0, NETPYNE_WORKDIR_PATH)
+
+import sentry_sdk
+sentry_sdk.init()
+
+class TestNetPyNEModelInterpreter(unittest.TestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ HERE = os.path.dirname(os.path.realpath(__file__))
+ ROOT = os.path.dirname(HERE)
+ cls.path = NETPYNE_WORKDIR_PATH
+ modelpath = os.path.join(NETPYNE_WORKDIR_PATH, 'mod')
+ subprocess.call(["rm", "-r", os.path.join(modelpath, "x86_64")])
+ owd = os.getcwd()
+ os.chdir(modelpath)
+ p = subprocess.check_output(["nrnivmodl"])
+ os.chdir(owd)
+ try:
+ neuron.load_mechanisms(modelpath)
+ except:
+ logging.error("Error loading mechanisms", exc_info=True)
+
+ # @unittest.skip("Neuroml model import issue")
+ def test_netpyne_exported_model_1(self):
+ print("------------------------------------")
+ print("Netpyne exported model sim run")
+ print("------------------------------------")
+
+ params = {}
+
+ HERE = os.path.dirname(os.path.realpath(__file__))
+ ROOT = os.path.dirname(HERE)
+
+ params["areModFieldsRequired"] = False
+ params["compileMod"] = False
+ params["exploreOnlyDirs"] = False
+ params["explorerDialogOpen"] = False
+ params["explorerParameter"] = ""
+ params["freezeInstance"] = True
+ params["freezeSimulation"] = True
+ params["jsonModelFolder"] = ROOT + "/backend/models/hhcells_model.json"
+ params["jsonPath"] = ""
+ params["loadNet"] = True
+ params["loadNetParams"] = True
+ params["loadSimCfg"] = True
+ params["loadSimData"] = True
+ params["modFolder"] = ""
+ params["modPath"] = ""
+ params["tab"] = "simulate"
+
+ print(params['jsonModelFolder'])
+
+ netpyne = NetPyNEGeppetto()
+
+ netpyne.loadModel(params)
+ netpyne.simulate_single_model()
+
+ #return False
+
+
+if __name__ == '__main__':
+ try:
+ unittest.main()
+ except SystemExit as inst:
+ if inst.args[0]: # raised by sys.exit(True) when tests failed
+ raise
diff --git a/tests/backend/netpyne_model_interpreter_test.py b/tests/backend/netpyne_model_interpreter_test.py
index af37a0fd..0bcef888 100644
--- a/tests/backend/netpyne_model_interpreter_test.py
+++ b/tests/backend/netpyne_model_interpreter_test.py
@@ -15,6 +15,9 @@
netpyne.__gui__ = False
sys.path.insert(0, NETPYNE_WORKDIR_PATH)
+import sentry_sdk
+sentry_sdk.init()
+
class TestNetPyNEModelInterpreter(unittest.TestCase):
@@ -77,7 +80,7 @@ def test_getGeppettoModelSimpleNetwork(self):
self.getGeppettoModel(netParams, simConfig)
- @unittest.skip("Neuron restart kernel issue")
+ # @unittest.skip("Neuron restart kernel issue")
def test_tut1(self):
print("------------------------------------")
print("Tutorial 1 Instantiation:")
@@ -85,7 +88,7 @@ def test_tut1(self):
from gui_tut1 import netParams, simConfig
self.getGeppettoModel(netParams, simConfig)
- @unittest.skip("Neuron restart kernel issue")
+ # @unittest.skip("Neuron restart kernel issue")
def test_tut2(self):
print("------------------------------------")
print("Tutorial 2 Instantiation:")
@@ -93,7 +96,7 @@ def test_tut2(self):
from gui_tut2 import netParams, simConfig
self.getGeppettoModel(netParams, simConfig)
- @unittest.skip("Neuron restart kernel issue")
+ # @unittest.skip("Neuron restart kernel issue")
def test_tut3(self):
print("------------------------------------")
print("Tutorial 3 Instantiation:")
@@ -101,7 +104,7 @@ def test_tut3(self):
from gui_tut3 import netParams, simConfig
self.getGeppettoModel(netParams, simConfig)
- @unittest.skip("Neuron restart kernel issue")
+ # @unittest.skip("Neuron restart kernel issue")
def test_tut4(self):
print("------------------------------------")
print("Tutorial 3 ip3high Instantiation:")
@@ -110,7 +113,7 @@ def test_tut4(self):
from gui_tut3_ip3high import netParams, simConfig
self.getGeppettoModel(netParams, simConfig)
- @unittest.skip("Neuron restart kernel issue")
+ # @unittest.skip("Neuron restart kernel issue")
def test_tut5(self):
print("------------------------------------")
print("Tutorial 3 norxd Instantiation:")
@@ -118,7 +121,7 @@ def test_tut5(self):
from gui_tut3_norxd import netParams, simConfig
self.getGeppettoModel(netParams, simConfig)
- @unittest.skip("Neuron restart kernel issue")
+ # @unittest.skip("Neuron restart kernel issue")
def test_tut6(self):
print("------------------------------------")
print("Tutorial 3 osc Instantiation:")
diff --git a/tests/backend/utils_test.py b/tests/backend/utils_test.py
index dde4b62b..8f49a740 100644
--- a/tests/backend/utils_test.py
+++ b/tests/backend/utils_test.py
@@ -4,5 +4,8 @@
from netpyne_ui import mod_utils
HERE = os.path.dirname(os.path.abspath(__file__))
+import sentry_sdk
+sentry_sdk.init()
+
def test_compile_mod():
- mod_utils.compileModMechFiles(True, NETPYNE_WORKDIR_PATH)
+ mod_utils.loadModMechFiles(True, NETPYNE_WORKDIR_PATH)
diff --git a/tests/frontend/e2e/.eslintrc.js b/tests/frontend/e2e/.eslintrc.js
index 7e6f09b8..d804684b 100644
--- a/tests/frontend/e2e/.eslintrc.js
+++ b/tests/frontend/e2e/.eslintrc.js
@@ -1,8 +1,5 @@
module.exports = {
- extends: [
- "./node_modules/@geppettoengine/geppetto-client/.eslintrc.js",
- "plugin:jest/recommended"
- ],
+ extends: ["plugin:jest/recommended"],
rules: {
'multiline-comment-style': 0,
},
@@ -17,6 +14,6 @@ module.exports = {
pvdr: true,
net1: true,
CanvasContainer: true,
- patchRequire: true
+ patchRequire: true,
}
-};
\ No newline at end of file
+};
diff --git a/tests/frontend/e2e/jest-puppeteer.config.js b/tests/frontend/e2e/jest-puppeteer.config.js
deleted file mode 100644
index b018dba8..00000000
--- a/tests/frontend/e2e/jest-puppeteer.config.js
+++ /dev/null
@@ -1,11 +0,0 @@
-module.exports = {
- launch: {
- headless: true,
- args: ['--no-sandbox', '--disable-setuid-sandbox'],
- defaultViewport: {
- width: 1300,
- height: 1024
- },
- timeout: 120000
- },
-}
\ No newline at end of file
diff --git a/tests/frontend/e2e/jest.config.js b/tests/frontend/e2e/jest.config.js
index 89e7ae66..3c4fc3e9 100644
--- a/tests/frontend/e2e/jest.config.js
+++ b/tests/frontend/e2e/jest.config.js
@@ -1,6 +1,6 @@
module.exports = {
verbose: true,
- preset: "jest-puppeteer",
+ // preset: "jest-puppeteer",
testRegex : "(tests/Test.*|(\\.|/)(test|spec))\\.[jt]sx?$",
setupFilesAfterEnv: ['./tests/setupTests.js'],
};
\ No newline at end of file
diff --git a/tests/frontend/e2e/package-lock.json b/tests/frontend/e2e/package-lock.json
index 9783eaaa..1a5322d7 100644
--- a/tests/frontend/e2e/package-lock.json
+++ b/tests/frontend/e2e/package-lock.json
@@ -1,28 +1,60 @@
{
"name": "netpyne-ui.test.e2e",
"version": "0.1.0",
- "lockfileVersion": 1,
+ "lockfileVersion": 2,
"requires": true,
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
- "requires": {
- "@babel/highlight": "^7.10.4"
+ "packages": {
+ "": {
+ "name": "netpyne-ui.test.e2e",
+ "version": "0.1.0",
+ "license": "unlicensed",
+ "dependencies": {
+ "jest": "^27.5.1",
+ "jest-image-snapshot": "^4.5.1",
+ "jest-puppeteer": "^6.1.0",
+ "puppeteer": "^13.5.1"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.4.5",
+ "@babel/plugin-proposal-class-properties": "^7.5.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.2.0",
+ "@babel/plugin-transform-runtime": "^7.4.5",
+ "@babel/preset-env": "^7.4.5",
+ "@babel/preset-react": "^7.0.0",
+ "@babel/preset-stage-2": "^7.0.0",
+ "@babel/runtime": "^7.4.5",
+ "babel-eslint": "^10.0.1",
+ "babel-jest": "^24.9.0",
+ "babel-loader": "^8.0.6",
+ "babel-plugin-transform-decorators-legacy": "^1.3.5",
+ "babel-plugin-transform-object-assign": "^6.8.0",
+ "babel-plugin-transform-runtime": "^6.15.0",
+ "eslint": "^6.0.1",
+ "eslint-plugin-jest": "^22.21.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "dependencies": {
+ "@babel/highlight": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "@babel/compat-data": {
+ "node_modules/@babel/compat-data": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz",
"integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==",
"dev": true
},
- "@babel/core": {
+ "node_modules/@babel/core": {
"version": "7.12.9",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz",
"integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==",
- "requires": {
+ "dependencies": {
"@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.12.5",
"@babel/helper-module-transforms": "^7.12.1",
@@ -40,187 +72,213 @@
"semver": "^5.4.1",
"source-map": "^0.5.0"
},
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dependencies": {
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
}
}
},
- "@babel/generator": {
+ "node_modules/@babel/core/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/@babel/core/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@babel/generator": {
"version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz",
"integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==",
- "requires": {
+ "dependencies": {
"@babel/types": "^7.12.5",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
- }
}
},
- "@babel/helper-annotate-as-pure": {
+ "node_modules/@babel/generator/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz",
"integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/types": "^7.10.4"
}
},
- "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz",
"integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-explode-assignable-expression": "^7.10.4",
"@babel/types": "^7.10.4"
}
},
- "@babel/helper-builder-react-jsx": {
+ "node_modules/@babel/helper-builder-react-jsx": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz",
"integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-annotate-as-pure": "^7.10.4",
"@babel/types": "^7.10.4"
}
},
- "@babel/helper-builder-react-jsx-experimental": {
+ "node_modules/@babel/helper-builder-react-jsx-experimental": {
"version": "7.12.4",
"resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz",
"integrity": "sha512-AjEa0jrQqNk7eDQOo0pTfUOwQBMF+xVqrausQwT9/rTKy0g04ggFNaJpaE09IQMn9yExluigWMJcj0WC7bq+Og==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-annotate-as-pure": "^7.10.4",
"@babel/helper-module-imports": "^7.12.1",
"@babel/types": "^7.12.1"
}
},
- "@babel/helper-compilation-targets": {
+ "node_modules/@babel/helper-compilation-targets": {
"version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz",
"integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/compat-data": "^7.12.5",
"@babel/helper-validator-option": "^7.12.1",
"browserslist": "^4.14.5",
"semver": "^5.5.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
- "@babel/helper-create-class-features-plugin": {
+ "node_modules/@babel/helper-create-class-features-plugin": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz",
"integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-function-name": "^7.10.4",
"@babel/helper-member-expression-to-functions": "^7.12.1",
"@babel/helper-optimise-call-expression": "^7.10.4",
"@babel/helper-replace-supers": "^7.12.1",
"@babel/helper-split-export-declaration": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
- "@babel/helper-create-regexp-features-plugin": {
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz",
"integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-annotate-as-pure": "^7.10.4",
"regexpu-core": "^4.7.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
- "@babel/helper-define-map": {
+ "node_modules/@babel/helper-define-map": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz",
"integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-function-name": "^7.10.4",
"@babel/types": "^7.10.5",
"lodash": "^4.17.19"
}
},
- "@babel/helper-explode-assignable-expression": {
+ "node_modules/@babel/helper-explode-assignable-expression": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz",
"integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/types": "^7.12.1"
}
},
- "@babel/helper-function-name": {
+ "node_modules/@babel/helper-function-name": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
"integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
- "requires": {
+ "dependencies": {
"@babel/helper-get-function-arity": "^7.10.4",
"@babel/template": "^7.10.4",
"@babel/types": "^7.10.4"
}
},
- "@babel/helper-get-function-arity": {
+ "node_modules/@babel/helper-get-function-arity": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
"integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
- "requires": {
+ "dependencies": {
"@babel/types": "^7.10.4"
}
},
- "@babel/helper-hoist-variables": {
+ "node_modules/@babel/helper-hoist-variables": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz",
"integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/types": "^7.10.4"
}
},
- "@babel/helper-member-expression-to-functions": {
+ "node_modules/@babel/helper-member-expression-to-functions": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz",
"integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==",
- "requires": {
+ "dependencies": {
"@babel/types": "^7.12.7"
}
},
- "@babel/helper-module-imports": {
+ "node_modules/@babel/helper-module-imports": {
"version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz",
"integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==",
- "requires": {
+ "dependencies": {
"@babel/types": "^7.12.5"
}
},
- "@babel/helper-module-transforms": {
+ "node_modules/@babel/helper-module-transforms": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz",
"integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==",
- "requires": {
+ "dependencies": {
"@babel/helper-module-imports": "^7.12.1",
"@babel/helper-replace-supers": "^7.12.1",
"@babel/helper-simple-access": "^7.12.1",
@@ -232,407 +290,550 @@
"lodash": "^4.17.19"
}
},
- "@babel/helper-optimise-call-expression": {
+ "node_modules/@babel/helper-optimise-call-expression": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz",
"integrity": "sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw==",
- "requires": {
+ "dependencies": {
"@babel/types": "^7.12.7"
}
},
- "@babel/helper-plugin-utils": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
- "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
+ "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
},
- "@babel/helper-remap-async-to-generator": {
+ "node_modules/@babel/helper-remap-async-to-generator": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz",
"integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-annotate-as-pure": "^7.10.4",
"@babel/helper-wrap-function": "^7.10.4",
"@babel/types": "^7.12.1"
}
},
- "@babel/helper-replace-supers": {
+ "node_modules/@babel/helper-replace-supers": {
"version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz",
"integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==",
- "requires": {
+ "dependencies": {
"@babel/helper-member-expression-to-functions": "^7.12.1",
"@babel/helper-optimise-call-expression": "^7.10.4",
"@babel/traverse": "^7.12.5",
"@babel/types": "^7.12.5"
}
},
- "@babel/helper-simple-access": {
+ "node_modules/@babel/helper-simple-access": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz",
"integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==",
- "requires": {
+ "dependencies": {
"@babel/types": "^7.12.1"
}
},
- "@babel/helper-skip-transparent-expression-wrappers": {
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz",
"integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/types": "^7.12.1"
}
},
- "@babel/helper-split-export-declaration": {
+ "node_modules/@babel/helper-split-export-declaration": {
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
"integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
- "requires": {
+ "dependencies": {
"@babel/types": "^7.11.0"
}
},
- "@babel/helper-validator-identifier": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
- "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.19.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
+ "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
},
- "@babel/helper-validator-option": {
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz",
"integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==",
"dev": true
},
- "@babel/helper-wrap-function": {
+ "node_modules/@babel/helper-wrap-function": {
"version": "7.12.3",
"resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz",
"integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-function-name": "^7.10.4",
"@babel/template": "^7.10.4",
"@babel/traverse": "^7.10.4",
"@babel/types": "^7.10.4"
}
},
- "@babel/helpers": {
+ "node_modules/@babel/helpers": {
"version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz",
"integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==",
- "requires": {
+ "dependencies": {
"@babel/template": "^7.10.4",
"@babel/traverse": "^7.12.5",
"@babel/types": "^7.12.5"
}
},
- "@babel/highlight": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
- "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
+ "node_modules/@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.18.6",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "@babel/parser": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz",
- "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg=="
+ "node_modules/@babel/parser": {
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
+ "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
},
- "@babel/plugin-proposal-async-generator-functions": {
+ "node_modules/@babel/plugin-proposal-async-generator-functions": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz",
"integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/helper-remap-async-to-generator": "^7.12.1",
"@babel/plugin-syntax-async-generators": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-proposal-class-properties": {
+ "node_modules/@babel/plugin-proposal-class-properties": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz",
"integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-create-class-features-plugin": "^7.12.1",
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-proposal-dynamic-import": {
+ "node_modules/@babel/plugin-proposal-dynamic-import": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz",
"integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-dynamic-import": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-proposal-export-namespace-from": {
+ "node_modules/@babel/plugin-proposal-export-namespace-from": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz",
"integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-proposal-json-strings": {
+ "node_modules/@babel/plugin-proposal-json-strings": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz",
"integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-json-strings": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-proposal-logical-assignment-operators": {
+ "node_modules/@babel/plugin-proposal-logical-assignment-operators": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz",
"integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-proposal-nullish-coalescing-operator": {
+ "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz",
"integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-proposal-numeric-separator": {
+ "node_modules/@babel/plugin-proposal-numeric-separator": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz",
"integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-proposal-object-rest-spread": {
+ "node_modules/@babel/plugin-proposal-object-rest-spread": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz",
"integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-object-rest-spread": "^7.8.0",
"@babel/plugin-transform-parameters": "^7.12.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-proposal-optional-catch-binding": {
+ "node_modules/@babel/plugin-proposal-optional-catch-binding": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz",
"integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-proposal-optional-chaining": {
+ "node_modules/@babel/plugin-proposal-optional-chaining": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz",
"integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/helper-skip-transparent-expression-wrappers": "^7.12.1",
"@babel/plugin-syntax-optional-chaining": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-proposal-private-methods": {
+ "node_modules/@babel/plugin-proposal-private-methods": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz",
"integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-create-class-features-plugin": "^7.12.1",
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-proposal-unicode-property-regex": {
+ "node_modules/@babel/plugin-proposal-unicode-property-regex": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz",
"integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.12.1",
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-async-generators": {
+ "node_modules/@babel/plugin-syntax-async-generators": {
"version": "7.8.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
"integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-class-properties": {
+ "node_modules/@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-properties": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz",
"integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==",
- "dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-dynamic-import": {
+ "node_modules/@babel/plugin-syntax-dynamic-import": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
"integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-export-namespace-from": {
+ "node_modules/@babel/plugin-syntax-export-namespace-from": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
"integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-json-strings": {
+ "node_modules/@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-json-strings": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
"integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-jsx": {
+ "node_modules/@babel/plugin-syntax-jsx": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz",
"integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-logical-assignment-operators": {
+ "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
"integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-nullish-coalescing-operator": {
+ "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
"integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-numeric-separator": {
+ "node_modules/@babel/plugin-syntax-numeric-separator": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
"integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-object-rest-spread": {
+ "node_modules/@babel/plugin-syntax-object-rest-spread": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
"integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-optional-catch-binding": {
+ "node_modules/@babel/plugin-syntax-optional-catch-binding": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
"integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-optional-chaining": {
+ "node_modules/@babel/plugin-syntax-optional-chaining": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
"integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-syntax-top-level-await": {
+ "node_modules/@babel/plugin-syntax-top-level-await": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz",
"integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==",
- "dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-arrow-functions": {
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz",
+ "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz",
"integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-async-to-generator": {
+ "node_modules/@babel/plugin-transform-async-to-generator": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz",
"integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-module-imports": "^7.12.1",
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/helper-remap-async-to-generator": "^7.12.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-block-scoped-functions": {
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz",
"integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-block-scoping": {
+ "node_modules/@babel/plugin-transform-block-scoping": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz",
"integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-classes": {
+ "node_modules/@babel/plugin-transform-classes": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz",
"integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-annotate-as-pure": "^7.10.4",
"@babel/helper-define-map": "^7.10.4",
"@babel/helper-function-name": "^7.10.4",
@@ -641,345 +842,450 @@
"@babel/helper-replace-supers": "^7.12.1",
"@babel/helper-split-export-declaration": "^7.10.4",
"globals": "^11.1.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-computed-properties": {
+ "node_modules/@babel/plugin-transform-computed-properties": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz",
"integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-destructuring": {
+ "node_modules/@babel/plugin-transform-destructuring": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz",
"integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-dotall-regex": {
+ "node_modules/@babel/plugin-transform-dotall-regex": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz",
"integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.12.1",
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-duplicate-keys": {
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz",
"integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-exponentiation-operator": {
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz",
"integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-for-of": {
+ "node_modules/@babel/plugin-transform-for-of": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz",
"integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-function-name": {
+ "node_modules/@babel/plugin-transform-function-name": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz",
"integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-function-name": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-literals": {
+ "node_modules/@babel/plugin-transform-literals": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz",
"integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-member-expression-literals": {
+ "node_modules/@babel/plugin-transform-member-expression-literals": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz",
"integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-modules-amd": {
+ "node_modules/@babel/plugin-transform-modules-amd": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz",
"integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-module-transforms": "^7.12.1",
"@babel/helper-plugin-utils": "^7.10.4",
"babel-plugin-dynamic-import-node": "^2.3.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-modules-commonjs": {
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz",
"integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-module-transforms": "^7.12.1",
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/helper-simple-access": "^7.12.1",
"babel-plugin-dynamic-import-node": "^2.3.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-modules-systemjs": {
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz",
"integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-hoist-variables": "^7.10.4",
"@babel/helper-module-transforms": "^7.12.1",
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/helper-validator-identifier": "^7.10.4",
"babel-plugin-dynamic-import-node": "^2.3.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-modules-umd": {
+ "node_modules/@babel/plugin-transform-modules-umd": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz",
"integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-module-transforms": "^7.12.1",
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-named-capturing-groups-regex": {
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz",
"integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.12.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
- "@babel/plugin-transform-new-target": {
+ "node_modules/@babel/plugin-transform-new-target": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz",
"integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-object-super": {
+ "node_modules/@babel/plugin-transform-object-super": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz",
"integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/helper-replace-supers": "^7.12.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-parameters": {
+ "node_modules/@babel/plugin-transform-parameters": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz",
"integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-property-literals": {
+ "node_modules/@babel/plugin-transform-property-literals": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz",
"integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-react-display-name": {
+ "node_modules/@babel/plugin-transform-react-display-name": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz",
"integrity": "sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-react-jsx": {
+ "node_modules/@babel/plugin-transform-react-jsx": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.7.tgz",
"integrity": "sha512-YFlTi6MEsclFAPIDNZYiCRbneg1MFGao9pPG9uD5htwE0vDbPaMUMeYd6itWjw7K4kro4UbdQf3ljmFl9y48dQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-builder-react-jsx": "^7.10.4",
"@babel/helper-builder-react-jsx-experimental": "^7.12.4",
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-jsx": "^7.12.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-react-jsx-development": {
+ "node_modules/@babel/plugin-transform-react-jsx-development": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.7.tgz",
"integrity": "sha512-Rs3ETtMtR3VLXFeYRChle5SsP/P9Jp/6dsewBQfokDSzKJThlsuFcnzLTDRALiUmTC48ej19YD9uN1mupEeEDg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-builder-react-jsx-experimental": "^7.12.4",
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-jsx": "^7.12.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-react-jsx-self": {
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz",
"integrity": "sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-react-jsx-source": {
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz",
"integrity": "sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-react-pure-annotations": {
+ "node_modules/@babel/plugin-transform-react-pure-annotations": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz",
"integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-annotate-as-pure": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-regenerator": {
+ "node_modules/@babel/plugin-transform-regenerator": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz",
"integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==",
"dev": true,
- "requires": {
+ "dependencies": {
"regenerator-transform": "^0.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-reserved-words": {
+ "node_modules/@babel/plugin-transform-reserved-words": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz",
"integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-runtime": {
+ "node_modules/@babel/plugin-transform-runtime": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz",
"integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-module-imports": "^7.12.1",
"@babel/helper-plugin-utils": "^7.10.4",
"resolve": "^1.8.1",
"semver": "^5.5.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-shorthand-properties": {
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz",
"integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-spread": {
+ "node_modules/@babel/plugin-transform-spread": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz",
"integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/helper-skip-transparent-expression-wrappers": "^7.12.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-sticky-regex": {
+ "node_modules/@babel/plugin-transform-sticky-regex": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz",
"integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-template-literals": {
+ "node_modules/@babel/plugin-transform-template-literals": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz",
"integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-typeof-symbol": {
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz",
"integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-unicode-escapes": {
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz",
"integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/plugin-transform-unicode-regex": {
+ "node_modules/@babel/plugin-transform-unicode-regex": {
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz",
"integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.12.1",
"@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/preset-env": {
+ "node_modules/@babel/preset-env": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.7.tgz",
"integrity": "sha512-OnNdfAr1FUQg7ksb7bmbKoby4qFOHw6DKWWUNB9KqnnCldxhxJlP+21dpyaWFmf2h0rTbOkXJtAGevY3XW1eew==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/compat-data": "^7.12.7",
"@babel/helper-compilation-targets": "^7.12.5",
"@babel/helper-module-imports": "^7.12.5",
@@ -1046,27 +1352,33 @@
"@babel/types": "^7.12.7",
"core-js-compat": "^3.7.0",
"semver": "^5.5.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/preset-modules": {
+ "node_modules/@babel/preset-modules": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz",
"integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
"@babel/plugin-transform-dotall-regex": "^7.4.4",
"@babel/types": "^7.4.4",
"esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/preset-react": {
+ "node_modules/@babel/preset-react": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.7.tgz",
"integrity": "sha512-wKeTdnGUP5AEYCYQIMeXMMwU7j+2opxrG0WzuZfxuuW9nhKvvALBjl67653CWamZJVefuJGI219G591RSldrqQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-transform-react-display-name": "^7.12.1",
"@babel/plugin-transform-react-jsx": "^7.12.7",
@@ -1074,38 +1386,41 @@
"@babel/plugin-transform-react-jsx-self": "^7.12.1",
"@babel/plugin-transform-react-jsx-source": "^7.12.1",
"@babel/plugin-transform-react-pure-annotations": "^7.12.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "@babel/preset-stage-2": {
+ "node_modules/@babel/preset-stage-2": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/preset-stage-2/-/preset-stage-2-7.8.3.tgz",
"integrity": "sha512-dStnEQgejNYIHFNACdDCigK4BF7wgW6Zahv9Dc2un7rGjbeVtZhBfR3sy0I7ZJOhBexkFxVdMZ5hqmll7BFShw==",
"dev": true
},
- "@babel/runtime": {
+ "node_modules/@babel/runtime": {
"version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
"dev": true,
- "requires": {
+ "dependencies": {
"regenerator-runtime": "^0.13.4"
}
},
- "@babel/template": {
+ "node_modules/@babel/template": {
"version": "7.12.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
"integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
- "requires": {
+ "dependencies": {
"@babel/code-frame": "^7.10.4",
"@babel/parser": "^7.12.7",
"@babel/types": "^7.12.7"
}
},
- "@babel/traverse": {
+ "node_modules/@babel/traverse": {
"version": "7.12.9",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz",
"integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==",
- "requires": {
+ "dependencies": {
"@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.12.5",
"@babel/helper-function-name": "^7.10.4",
@@ -1115,2989 +1430,23872 @@
"debug": "^4.1.0",
"globals": "^11.1.0",
"lodash": "^4.17.19"
- },
+ }
+ },
+ "node_modules/@babel/traverse/node_modules/debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dependencies": {
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
}
}
},
- "@babel/types": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
- "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "lodash": "^4.17.19",
+ "node_modules/@babel/traverse/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/@babel/types": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
+ "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.19.4",
+ "@babel/helper-validator-identifier": "^7.19.1",
"to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "@cnakazawa/watch": {
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
+ },
+ "node_modules/@cnakazawa/watch": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz",
"integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==",
- "requires": {
+ "dev": true,
+ "dependencies": {
"exec-sh": "^0.3.2",
"minimist": "^1.2.0"
+ },
+ "bin": {
+ "watch": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.1.95"
}
},
- "@hapi/address": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
- "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ=="
+ "node_modules/@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
},
- "@hapi/bourne": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz",
- "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA=="
+ "node_modules/@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
},
- "@hapi/hoek": {
- "version": "8.5.1",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz",
- "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow=="
+ "node_modules/@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "@hapi/joi": {
- "version": "15.1.1",
- "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
- "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
- "requires": {
- "@hapi/address": "2.x.x",
- "@hapi/bourne": "1.x.x",
- "@hapi/hoek": "8.x.x",
- "@hapi/topo": "3.x.x"
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "engines": {
+ "node": ">=6"
}
},
- "@hapi/topo": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
- "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
- "requires": {
- "@hapi/hoek": "^8.3.0"
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "@jest/console": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz",
- "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==",
- "requires": {
- "@jest/source-map": "^24.9.0",
- "chalk": "^2.0.1",
- "slash": "^2.0.0"
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "@jest/core": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz",
- "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==",
- "requires": {
- "@jest/console": "^24.7.1",
- "@jest/reporters": "^24.9.0",
- "@jest/test-result": "^24.9.0",
- "@jest/transform": "^24.9.0",
- "@jest/types": "^24.9.0",
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.0.1",
- "exit": "^0.1.2",
- "graceful-fs": "^4.1.15",
- "jest-changed-files": "^24.9.0",
- "jest-config": "^24.9.0",
- "jest-haste-map": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-regex-util": "^24.3.0",
- "jest-resolve": "^24.9.0",
- "jest-resolve-dependencies": "^24.9.0",
- "jest-runner": "^24.9.0",
- "jest-runtime": "^24.9.0",
- "jest-snapshot": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-validate": "^24.9.0",
- "jest-watcher": "^24.9.0",
- "micromatch": "^3.1.10",
- "p-each-series": "^1.0.0",
- "realpath-native": "^1.1.0",
- "rimraf": "^2.5.4",
- "slash": "^2.0.0",
- "strip-ansi": "^5.0.0"
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "@jest/environment": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz",
- "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==",
- "requires": {
- "@jest/fake-timers": "^24.9.0",
- "@jest/transform": "^24.9.0",
- "@jest/types": "^24.9.0",
- "jest-mock": "^24.9.0"
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "engines": {
+ "node": ">=8"
}
},
- "@jest/fake-timers": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz",
- "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==",
- "requires": {
- "@jest/types": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-mock": "^24.9.0"
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "engines": {
+ "node": ">=8"
}
},
- "@jest/reporters": {
+ "node_modules/@jest/console": {
"version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz",
- "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==",
- "requires": {
- "@jest/environment": "^24.9.0",
- "@jest/test-result": "^24.9.0",
- "@jest/transform": "^24.9.0",
- "@jest/types": "^24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz",
+ "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/source-map": "^24.9.0",
"chalk": "^2.0.1",
- "exit": "^0.1.2",
- "glob": "^7.1.2",
- "istanbul-lib-coverage": "^2.0.2",
- "istanbul-lib-instrument": "^3.0.1",
- "istanbul-lib-report": "^2.0.4",
- "istanbul-lib-source-maps": "^3.0.1",
- "istanbul-reports": "^2.2.6",
- "jest-haste-map": "^24.9.0",
- "jest-resolve": "^24.9.0",
- "jest-runtime": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-worker": "^24.6.0",
- "node-notifier": "^5.4.2",
- "slash": "^2.0.0",
- "source-map": "^0.6.0",
- "string-length": "^2.0.0"
+ "slash": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "@jest/source-map": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz",
- "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==",
- "requires": {
- "callsites": "^3.0.0",
- "graceful-fs": "^4.1.15",
- "source-map": "^0.6.0"
+ "node_modules/@jest/core": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz",
+ "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==",
+ "dependencies": {
+ "@jest/console": "^27.5.1",
+ "@jest/reporters": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.8.1",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^27.5.1",
+ "jest-config": "^27.5.1",
+ "jest-haste-map": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-resolve-dependencies": "^27.5.1",
+ "jest-runner": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "jest-watcher": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "rimraf": "^3.0.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
}
},
- "@jest/test-result": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz",
- "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==",
- "requires": {
- "@jest/console": "^24.9.0",
- "@jest/types": "^24.9.0",
- "@types/istanbul-lib-coverage": "^2.0.0"
+ "node_modules/@jest/core/node_modules/@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "@jest/test-sequencer": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz",
- "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==",
- "requires": {
- "@jest/test-result": "^24.9.0",
- "jest-haste-map": "^24.9.0",
- "jest-runner": "^24.9.0",
- "jest-runtime": "^24.9.0"
+ "node_modules/@jest/core/node_modules/@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "dependencies": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "@jest/transform": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz",
- "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==",
- "requires": {
+ "node_modules/@jest/core/node_modules/@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
+ "dependencies": {
"@babel/core": "^7.1.0",
- "@jest/types": "^24.9.0",
- "babel-plugin-istanbul": "^5.1.0",
- "chalk": "^2.0.1",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
"convert-source-map": "^1.4.0",
"fast-json-stable-stringify": "^2.0.0",
- "graceful-fs": "^4.1.15",
- "jest-haste-map": "^24.9.0",
- "jest-regex-util": "^24.9.0",
- "jest-util": "^24.9.0",
- "micromatch": "^3.1.10",
- "pirates": "^4.0.1",
- "realpath-native": "^1.1.0",
- "slash": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
"source-map": "^0.6.1",
- "write-file-atomic": "2.4.1"
+ "write-file-atomic": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "@jest/types": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
- "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
- "requires": {
+ "node_modules/@jest/core/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
"@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^13.0.0"
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "@types/babel__core": {
- "version": "7.1.12",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz",
- "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==",
- "requires": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
+ "node_modules/@jest/core/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
}
},
- "@types/babel__generator": {
- "version": "7.6.2",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz",
- "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==",
- "requires": {
- "@babel/types": "^7.0.0"
- }
+ "node_modules/@jest/core/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
},
- "@types/babel__template": {
- "version": "7.4.0",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz",
- "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==",
- "requires": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
+ "node_modules/@jest/core/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
}
},
- "@types/babel__traverse": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz",
- "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==",
- "requires": {
- "@babel/types": "^7.3.0"
+ "node_modules/@jest/core/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"
}
},
- "@types/istanbul-lib-coverage": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
- "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw=="
- },
- "@types/istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
- "requires": {
- "@types/istanbul-lib-coverage": "*"
+ "node_modules/@jest/core/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"
}
},
- "@types/istanbul-reports": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
- "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==",
- "requires": {
- "@types/istanbul-lib-coverage": "*",
- "@types/istanbul-lib-report": "*"
+ "node_modules/@jest/core/node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
}
},
- "@types/json-schema": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz",
- "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==",
- "dev": true
- },
- "@types/stack-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
- "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw=="
- },
- "@types/yargs": {
- "version": "13.0.11",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz",
- "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==",
- "requires": {
- "@types/yargs-parser": "*"
+ "node_modules/@jest/core/node_modules/babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "@types/yargs-parser": {
- "version": "15.0.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz",
- "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw=="
- },
- "@typescript-eslint/experimental-utils": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz",
- "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.3",
- "@typescript-eslint/typescript-estree": "1.13.0",
- "eslint-scope": "^4.0.0"
+ "node_modules/@jest/core/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
},
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/core/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": {
- "eslint-scope": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
- "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
- }
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@jest/core/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
}
+ ],
+ "engines": {
+ "node": ">=8"
}
},
- "@typescript-eslint/typescript-estree": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz",
- "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==",
- "dev": true,
- "requires": {
- "lodash.unescape": "4.0.1",
- "semver": "5.5.0"
- },
+ "node_modules/@jest/core/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": {
- "semver": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
- "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
- "dev": true
- }
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
}
},
- "abab": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
- "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q=="
+ "node_modules/@jest/core/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=="
},
- "acorn": {
- "version": "5.7.4",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
- "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg=="
+ "node_modules/@jest/core/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
+ }
},
- "acorn-globals": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz",
- "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==",
- "requires": {
- "acorn": "^6.0.1",
- "acorn-walk": "^6.0.1"
- },
+ "node_modules/@jest/core/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dependencies": {
- "acorn": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
- "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ=="
- }
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "acorn-jsx": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
- "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
- "dev": true
- },
- "acorn-walk": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
- "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA=="
- },
- "agent-base": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
- "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
- "requires": {
- "es6-promisify": "^5.0.0"
+ "node_modules/@jest/core/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "node_modules/@jest/core/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"
}
},
- "ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "dev": true
+ "node_modules/@jest/core/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
},
- "ansi-escapes": {
+ "node_modules/@jest/core/node_modules/istanbul-lib-coverage": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
- "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="
- },
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
- },
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "^1.9.0"
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "engines": {
+ "node": ">=8"
}
},
- "anymatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
- "requires": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
+ "node_modules/@jest/core/node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "requires": {
- "sprintf-js": "~1.0.2"
+ "node_modules/@jest/core/node_modules/jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
}
},
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
- },
- "arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
+ "node_modules/@jest/core/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
},
- "arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+ "node_modules/@jest/core/node_modules/jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
},
- "array-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
- "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM="
+ "node_modules/@jest/core/node_modules/jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "dependencies": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
},
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ "node_modules/@jest/core/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
},
- "asn1": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
- "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
- "requires": {
- "safer-buffer": "~2.1.0"
+ "node_modules/@jest/core/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
}
},
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ "node_modules/@jest/core/node_modules/jest-worker/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"
+ }
},
- "assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
+ "node_modules/@jest/core/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
},
- "astral-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
- "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="
+ "node_modules/@jest/core/node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "async": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz",
- "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw=="
+ "node_modules/@jest/core/node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
- "async-limiter": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
- "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ "node_modules/@jest/core/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
},
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ "node_modules/@jest/core/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
},
- "atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+ "node_modules/@jest/core/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
},
- "aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+ "node_modules/@jest/core/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"
+ }
},
- "aws4": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
- "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
+ "node_modules/@jest/core/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"
+ }
},
- "babel-code-frame": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
- "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
- "dev": true,
- "requires": {
- "chalk": "^1.1.3",
- "esutils": "^2.0.2",
- "js-tokens": "^3.0.2"
+ "node_modules/@jest/core/node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
},
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/core/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true,
- "requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
- }
- },
- "js-tokens": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
- "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
- }
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
}
},
- "babel-eslint": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
- "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/parser": "^7.7.0",
- "@babel/traverse": "^7.7.0",
- "@babel/types": "^7.7.0",
- "eslint-visitor-keys": "^1.0.0",
- "resolve": "^1.12.0"
+ "node_modules/@jest/core/node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
}
},
- "babel-jest": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz",
- "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==",
- "requires": {
- "@jest/transform": "^24.9.0",
- "@jest/types": "^24.9.0",
- "@types/babel__core": "^7.1.0",
- "babel-plugin-istanbul": "^5.1.0",
- "babel-preset-jest": "^24.9.0",
- "chalk": "^2.4.2",
- "slash": "^2.0.0"
+ "node_modules/@jest/environment": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz",
+ "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==",
+ "dependencies": {
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "jest-mock": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "babel-loader": {
- "version": "8.2.1",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.1.tgz",
- "integrity": "sha512-dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw==",
- "dev": true,
- "requires": {
- "find-cache-dir": "^2.1.0",
- "loader-utils": "^1.4.0",
- "make-dir": "^2.1.0",
- "pify": "^4.0.1",
- "schema-utils": "^2.6.5"
+ "node_modules/@jest/environment/node_modules/@jest/fake-timers": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
+ "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@sinonjs/fake-timers": "^8.0.1",
+ "@types/node": "*",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
},
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/@jest/environment/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
"dependencies": {
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- }
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "babel-messages": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
- "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
+ "node_modules/@jest/environment/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
}
},
- "babel-plugin-dynamic-import-node": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
- "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
- "dev": true,
- "requires": {
- "object.assign": "^4.1.0"
+ "node_modules/@jest/environment/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "node_modules/@jest/environment/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
}
},
- "babel-plugin-istanbul": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz",
- "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "find-up": "^3.0.0",
- "istanbul-lib-instrument": "^3.3.0",
- "test-exclude": "^5.2.3"
+ "node_modules/@jest/environment/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"
}
},
- "babel-plugin-jest-hoist": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz",
- "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==",
- "requires": {
- "@types/babel__traverse": "^7.0.6"
+ "node_modules/@jest/environment/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "babel-plugin-syntax-decorators": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
- "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
- "dev": true
+ "node_modules/@jest/environment/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/@jest/environment/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
},
- "babel-plugin-transform-decorators-legacy": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.5.tgz",
- "integrity": "sha512-jYHwjzRXRelYQ1uGm353zNzf3QmtdCfvJbuYTZ4gKveK7M9H1fs3a5AKdY1JUDl0z97E30ukORW1dzhWvsabtA==",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-decorators": "^6.1.18",
- "babel-runtime": "^6.2.0",
- "babel-template": "^6.3.0"
+ "node_modules/@jest/environment/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"
}
},
- "babel-plugin-transform-object-assign": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz",
- "integrity": "sha1-+Z0vZvGgsNSY40bFNZaEdAyqILo=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
+ "node_modules/@jest/environment/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/@jest/environment/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
}
},
- "babel-plugin-transform-runtime": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
- "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
+ "node_modules/@jest/environment/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "babel-preset-jest": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz",
- "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==",
- "requires": {
- "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
- "babel-plugin-jest-hoist": "^24.9.0"
+ "node_modules/@jest/environment/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"
}
},
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "dev": true,
- "requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
- },
+ "node_modules/@jest/environment/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/@jest/environment/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
"dependencies": {
- "regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
- "dev": true
- }
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "babel-template": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
- "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "lodash": "^4.17.4"
+ "node_modules/@jest/environment/node_modules/jest-mock": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
+ "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "babel-traverse": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
- "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
- "dev": true,
- "requires": {
- "babel-code-frame": "^6.26.0",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "debug": "^2.6.8",
- "globals": "^9.18.0",
- "invariant": "^2.2.2",
- "lodash": "^4.17.4"
+ "node_modules/@jest/environment/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
},
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/@jest/environment/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dependencies": {
- "globals": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
- "dev": true
- }
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
}
},
- "babel-types": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
- "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "esutils": "^2.0.2",
- "lodash": "^4.17.4",
- "to-fast-properties": "^1.0.3"
+ "node_modules/@jest/environment/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/environment/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
},
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@jest/environment/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": {
- "to-fast-properties": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
- "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
- "dev": true
- }
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
- "dev": true
+ "node_modules/@jest/environment/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
},
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ "node_modules/@jest/fake-timers": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz",
+ "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-mock": "^24.9.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
},
- "base": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
- "requires": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
+ "node_modules/@jest/globals": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz",
+ "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==",
+ "dependencies": {
+ "@jest/environment": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "expect": "^27.5.1"
},
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/@jest/globals/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
"dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
- "requires": {
- "tweetnacl": "^0.14.3"
+ "node_modules/@jest/globals/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
}
},
- "big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
- "dev": true
+ "node_modules/@jest/globals/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
},
- "bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "optional": true,
- "requires": {
- "file-uri-to-path": "1.0.0"
+ "node_modules/@jest/globals/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"
}
},
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "node_modules/@jest/globals/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"
}
},
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
+ "node_modules/@jest/globals/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/@jest/globals/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/@jest/globals/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/@jest/globals/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/@jest/reporters": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz",
+ "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==",
"dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^5.1.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-haste-map": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.0",
+ "string-length": "^4.0.1",
+ "terminal-link": "^2.0.0",
+ "v8-to-istanbul": "^8.1.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
}
}
},
- "browser-process-hrtime": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
- "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
+ "node_modules/@jest/reporters/node_modules/@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
},
- "browser-resolve": {
- "version": "1.11.3",
- "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz",
- "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==",
- "requires": {
- "resolve": "1.1.7"
+ "node_modules/@jest/reporters/node_modules/@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "dependencies": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
},
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
"dependencies": {
- "resolve": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs="
- }
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "browserslist": {
- "version": "4.14.7",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz",
- "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==",
- "dev": true,
- "requires": {
- "caniuse-lite": "^1.0.30001157",
- "colorette": "^1.2.1",
- "electron-to-chromium": "^1.3.591",
- "escalade": "^3.1.1",
- "node-releases": "^1.1.66"
+ "node_modules/@jest/reporters/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
- "requires": {
- "node-int64": "^0.4.0"
+ "node_modules/@jest/reporters/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
}
},
- "buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
+ "node_modules/@jest/reporters/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
},
- "buffer-from": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
- "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ "node_modules/@jest/reporters/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
},
- "cache-base": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
- "requires": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
+ "node_modules/@jest/reporters/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"
}
},
- "call-bind": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
- "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.0"
+ "node_modules/@jest/reporters/node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
}
},
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+ "node_modules/@jest/reporters/node_modules/babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ "node_modules/@jest/reporters/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "caniuse-lite": {
- "version": "1.0.30001161",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001161.tgz",
- "integrity": "sha512-JharrCDxOqPLBULF9/SPa6yMcBRTjZARJ6sc3cuKrPfyIk64JN6kuMINWqA99Xc8uElMFcROliwtz0n9pYej+g==",
- "dev": true
+ "node_modules/@jest/reporters/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/@jest/reporters/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
},
- "capture-exit": {
+ "node_modules/@jest/reporters/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/@jest/reporters/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/@jest/reporters/node_modules/escape-string-regexp": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz",
- "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==",
- "requires": {
- "rsvp": "^4.8.4"
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
}
},
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ "node_modules/@jest/reporters/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "node_modules/@jest/reporters/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "chardet": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
- "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
- "dev": true
+ "node_modules/@jest/reporters/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"
+ }
},
- "ci": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/ci/-/ci-1.0.0.tgz",
- "integrity": "sha1-S8xb8S2CBgDxKxy7sdjNOz8PaMw=",
- "requires": {
- "events": "*",
- "gitwin": "*",
- "msbuild": "*"
+ "node_modules/@jest/reporters/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
}
},
- "ci-info": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
- "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ "node_modules/@jest/reporters/node_modules/istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "engines": {
+ "node": ">=8"
+ }
},
- "class-utils": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
- "requires": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
+ "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
},
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
"dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- }
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
}
},
- "cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
- "requires": {
- "restore-cursor": "^3.1.0"
+ "node_modules/@jest/reporters/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "cli-width": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
- "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
- "dev": true
+ "node_modules/@jest/reporters/node_modules/jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
},
- "cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
- "requires": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
+ "node_modules/@jest/reporters/node_modules/jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "dependencies": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "clone-deep": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz",
- "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=",
- "requires": {
- "for-own": "^0.1.3",
- "is-plain-object": "^2.0.1",
- "kind-of": "^3.0.2",
- "lazy-cache": "^1.0.3",
- "shallow-clone": "^0.1.2"
- },
+ "node_modules/@jest/reporters/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
"dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
- },
- "collection-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
- "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
- "requires": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
+ "node_modules/@jest/reporters/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
}
},
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "requires": {
- "color-name": "1.1.3"
+ "node_modules/@jest/reporters/node_modules/jest-worker/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"
}
},
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ "node_modules/@jest/reporters/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
},
- "colorette": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz",
- "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==",
- "dev": true
+ "node_modules/@jest/reporters/node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
+ "node_modules/@jest/reporters/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
},
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "requires": {
- "delayed-stream": "~1.0.0"
+ "node_modules/@jest/reporters/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
}
},
- "commander": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
- "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="
+ "node_modules/@jest/reporters/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
},
- "commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
- "dev": true
+ "node_modules/@jest/reporters/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"
+ }
},
- "component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
+ "node_modules/@jest/reporters/node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ "node_modules/@jest/reporters/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
},
- "concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
+ "node_modules/@jest/reporters/node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
}
},
- "convert-source-map": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
- "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
- "requires": {
- "safe-buffer": "~5.1.1"
+ "node_modules/@jest/source-map": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz",
+ "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.1.15",
+ "source-map": "^0.6.0"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "copy-descriptor": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
+ "node_modules/@jest/test-result": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz",
+ "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/istanbul-lib-coverage": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
},
- "core-js": {
- "version": "2.6.11",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
- "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
+ "node_modules/@jest/test-sequencer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz",
+ "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==",
+ "dependencies": {
+ "@jest/test-result": "^27.5.1",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-runtime": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
},
- "core-js-compat": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz",
- "integrity": "sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==",
- "dev": true,
- "requires": {
- "browserslist": "^4.14.6",
- "semver": "7.0.0"
+ "node_modules/@jest/test-sequencer/node_modules/@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
},
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/@jest/test-sequencer/node_modules/@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
"dependencies": {
- "semver": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
- "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
- "dev": true
- }
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ "node_modules/@jest/test-sequencer/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
},
- "cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
- "requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "node_modules/@jest/test-sequencer/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
}
},
- "cssom": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
+ "node_modules/@jest/test-sequencer/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
},
- "cssstyle": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz",
- "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==",
- "requires": {
- "cssom": "0.3.x"
+ "node_modules/@jest/test-sequencer/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
}
},
- "cwd": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz",
- "integrity": "sha1-FyQAaUBXwioTsM8WFix+S3p/5Wc=",
- "requires": {
- "find-pkg": "^0.1.2",
- "fs-exists-sync": "^0.1.0"
+ "node_modules/@jest/test-sequencer/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"
}
},
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "requires": {
- "assert-plus": "^1.0.0"
+ "node_modules/@jest/test-sequencer/node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
}
},
- "data-urls": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
- "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
- "requires": {
- "abab": "^2.0.0",
- "whatwg-mimetype": "^2.2.0",
- "whatwg-url": "^7.0.0"
+ "node_modules/@jest/test-sequencer/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
},
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/test-sequencer/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": {
- "whatwg-url": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
- "requires": {
- "lodash.sortby": "^4.7.0",
- "tr46": "^1.0.1",
- "webidl-conversions": "^4.0.2"
- }
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@jest/test-sequencer/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
}
+ ],
+ "engines": {
+ "node": ">=8"
}
},
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
+ "node_modules/@jest/test-sequencer/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"
}
},
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+ "node_modules/@jest/test-sequencer/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=="
},
- "decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+ "node_modules/@jest/test-sequencer/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
+ }
},
- "deep-is": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ "node_modules/@jest/test-sequencer/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "requires": {
- "object-keys": "^1.0.12"
+ "node_modules/@jest/test-sequencer/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
+ "node_modules/@jest/test-sequencer/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/@jest/test-sequencer/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/@jest/test-sequencer/node_modules/jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
"dependencies": {
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
}
},
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
- },
- "detect-newline": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
- "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I="
+ "node_modules/@jest/test-sequencer/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
},
- "diff-sequences": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz",
- "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew=="
+ "node_modules/@jest/test-sequencer/node_modules/jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
},
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
+ "node_modules/@jest/test-sequencer/node_modules/jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "dependencies": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "domexception": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
- "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
- "requires": {
- "webidl-conversions": "^4.0.2"
+ "node_modules/@jest/test-sequencer/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
- "requires": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
+ "node_modules/@jest/test-sequencer/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
}
},
- "electron-to-chromium": {
- "version": "1.3.607",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.607.tgz",
- "integrity": "sha512-h2SYNaBnlplGS0YyXl8oJWokfcNxVjJANQfMCsQefG6OSuAuNIeW+A8yGT/ci+xRoBb3k2zq1FrOvkgoKBol8g==",
- "dev": true
+ "node_modules/@jest/test-sequencer/node_modules/jest-worker/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"
+ }
},
- "emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ "node_modules/@jest/test-sequencer/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
},
- "emojis-list": {
+ "node_modules/@jest/test-sequencer/node_modules/normalize-path": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
- "dev": true
- },
- "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==",
- "requires": {
- "once": "^1.4.0"
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "requires": {
- "is-arrayish": "^0.2.1"
+ "node_modules/@jest/test-sequencer/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
}
},
- "es-abstract": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
- "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
+ "node_modules/@jest/test-sequencer/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "node_modules/@jest/test-sequencer/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"
}
},
- "es6-promise": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
- "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
- },
- "es6-promisify": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
- "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
- "requires": {
- "es6-promise": "^4.0.3"
+ "node_modules/@jest/test-sequencer/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
}
},
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "escodegen": {
- "version": "1.14.3",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
- "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
- "requires": {
- "esprima": "^4.0.1",
- "estraverse": "^4.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1",
- "source-map": "~0.6.1"
+ "node_modules/@jest/transform": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz",
+ "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^24.9.0",
+ "babel-plugin-istanbul": "^5.1.0",
+ "chalk": "^2.0.1",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.1.15",
+ "jest-haste-map": "^24.9.0",
+ "jest-regex-util": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "micromatch": "^3.1.10",
+ "pirates": "^4.0.1",
+ "realpath-native": "^1.1.0",
+ "slash": "^2.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "2.4.1"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "eslint": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
- "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
+ "node_modules/@jest/types": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
+ "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
"dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "ajv": "^6.10.0",
- "chalk": "^2.1.0",
- "cross-spawn": "^6.0.5",
- "debug": "^4.0.1",
- "doctrine": "^3.0.0",
- "eslint-scope": "^5.0.0",
- "eslint-utils": "^1.4.3",
- "eslint-visitor-keys": "^1.1.0",
- "espree": "^6.1.2",
- "esquery": "^1.0.1",
- "esutils": "^2.0.2",
- "file-entry-cache": "^5.0.1",
- "functional-red-black-tree": "^1.0.1",
- "glob-parent": "^5.0.0",
- "globals": "^12.1.0",
- "ignore": "^4.0.6",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "inquirer": "^7.0.0",
- "is-glob": "^4.0.0",
- "js-yaml": "^3.13.1",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.3.0",
- "lodash": "^4.17.14",
- "minimatch": "^3.0.4",
- "mkdirp": "^0.5.1",
- "natural-compare": "^1.4.0",
- "optionator": "^0.8.3",
- "progress": "^2.0.0",
- "regexpp": "^2.0.1",
- "semver": "^6.1.2",
- "strip-ansi": "^5.2.0",
- "strip-json-comments": "^3.0.1",
- "table": "^5.2.3",
- "text-table": "^0.2.0",
- "v8-compile-cache": "^2.0.3"
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^13.0.0"
},
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "globals": {
- "version": "12.4.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
- "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
- "dev": true,
- "requires": {
- "type-fest": "^0.8.1"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "eslint-plugin-jest": {
- "version": "22.21.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.21.0.tgz",
- "integrity": "sha512-OaqnSS7uBgcGiqXUiEnjoqxPNKvR4JWG5mSRkzVoR6+vDwlqqp11beeql1hYs0HTbdhiwrxWLxbX0Vx7roG3Ew==",
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
"dev": true,
- "requires": {
- "@typescript-eslint/experimental-utils": "^1.13.0"
+ "peer": true,
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
"dev": true,
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
+ "peer": true,
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "eslint-utils": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
- "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
"dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
}
},
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+ "dev": true,
+ "peer": true
},
- "espree": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
- "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
"dev": true,
- "requires": {
- "acorn": "^7.1.1",
- "acorn-jsx": "^5.2.0",
- "eslint-visitor-keys": "^1.1.0"
- },
+ "peer": true,
"dependencies": {
- "acorn": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
- "dev": true
- }
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
}
},
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
- },
- "esquery": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
- "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
- "dev": true,
- "requires": {
- "estraverse": "^5.1.0"
- },
+ "node_modules/@sideway/address": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
+ "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==",
"dependencies": {
- "estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
- "dev": true
- }
+ "@hapi/hoek": "^9.0.0"
}
},
- "esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "requires": {
- "estraverse": "^5.2.0"
- },
+ "node_modules/@sideway/formula": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
+ },
+ "node_modules/@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
"dependencies": {
- "estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
- "dev": true
- }
+ "type-detect": "4.0.8"
}
},
- "estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz",
+ "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==",
+ "dependencies": {
+ "@sinonjs/commons": "^1.7.0"
+ }
},
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+ "node_modules/@tootallnate/once": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
+ "engines": {
+ "node": ">= 6"
+ }
},
- "events": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz",
- "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg=="
+ "node_modules/@types/babel__core": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz",
+ "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
},
- "exec-sh": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz",
- "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A=="
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz",
+ "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
},
- "execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
- "requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
+ "node_modules/@types/babel__template": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz",
+ "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
}
},
- "exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw="
+ "node_modules/@types/babel__traverse": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz",
+ "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==",
+ "dependencies": {
+ "@babel/types": "^7.3.0"
+ }
},
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
+ "node_modules/@types/eslint": {
+ "version": "8.4.10",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz",
+ "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
+ "@types/estree": "*",
+ "@types/json-schema": "*"
}
},
- "expand-tilde": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
- "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=",
- "requires": {
- "os-homedir": "^1.0.1"
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.4",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
+ "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
}
},
- "expect": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz",
- "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==",
- "requires": {
- "@jest/types": "^24.9.0",
- "ansi-styles": "^3.2.0",
- "jest-get-type": "^24.9.0",
- "jest-matcher-utils": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-regex-util": "^24.9.0"
+ "node_modules/@types/estree": {
+ "version": "0.0.51",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz",
+ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@types/graceful-fs": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
+ "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==",
+ "dependencies": {
+ "@types/node": "*"
}
},
- "expect-puppeteer": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-4.4.0.tgz",
- "integrity": "sha512-6Ey4Xy2xvmuQu7z7YQtMsaMV0EHJRpVxIDOd5GRrm04/I3nkTKIutELfECsLp6le+b3SSa3cXhPiw6PgqzxYWA=="
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
+ "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw=="
},
- "extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
},
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
+ "node_modules/@types/istanbul-reports": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
+ "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==",
+ "dev": true,
"dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
+ "@types/istanbul-lib-coverage": "*",
+ "@types/istanbul-lib-report": "*"
}
},
- "external-editor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
- "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "node_modules/@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
+ "dev": true
+ },
+ "node_modules/@types/node": {
+ "version": "18.11.18",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
+ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
+ },
+ "node_modules/@types/prettier": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz",
+ "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg=="
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
+ "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==",
+ "dev": true
+ },
+ "node_modules/@types/yargs": {
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz",
+ "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==",
"dev": true,
- "requires": {
- "chardet": "^0.7.0",
- "iconv-lite": "^0.4.24",
- "tmp": "^0.0.33"
+ "dependencies": {
+ "@types/yargs-parser": "*"
}
},
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
+ "node_modules/@types/yargs-parser": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz",
+ "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw=="
+ },
+ "node_modules/@types/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
+ "optional": true,
"dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
+ "@types/node": "*"
}
},
- "extract-zip": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
- "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
- "requires": {
- "concat-stream": "^1.6.2",
- "debug": "^2.6.9",
- "mkdirp": "^0.5.4",
- "yauzl": "^2.10.0"
+ "node_modules/@typescript-eslint/experimental-utils": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz",
+ "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==",
+ "dev": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.3",
+ "@typescript-eslint/typescript-estree": "1.13.0",
+ "eslint-scope": "^4.0.0"
+ },
+ "engines": {
+ "node": "^6.14.0 || ^8.10.0 || >=9.10.0"
+ },
+ "peerDependencies": {
+ "eslint": "*"
}
},
- "extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
},
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz",
+ "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==",
+ "dev": true,
+ "dependencies": {
+ "lodash.unescape": "4.0.1",
+ "semver": "5.5.0"
+ },
+ "engines": {
+ "node": ">=6.14.0"
+ }
},
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
},
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
+ "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/helper-numbers": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
+ }
},
- "fb-watchman": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
- "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==",
- "requires": {
- "bser": "2.1.1"
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
+ "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
+ "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
+ "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
+ "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/floating-point-hex-parser": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@xtuc/long": "4.2.2"
}
},
- "fd-slicer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
- "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
- "requires": {
- "pend": "~1.2.0"
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
+ "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
+ "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1"
}
},
- "figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
+ "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
"dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5"
+ "peer": true,
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
}
},
- "file-entry-cache": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
- "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
+ "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
"dev": true,
- "requires": {
- "flat-cache": "^2.0.1"
+ "peer": true,
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
}
},
- "file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "optional": true
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
+ "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==",
+ "dev": true,
+ "peer": true
},
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
+ "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/helper-wasm-section": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-opt": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "@webassemblyjs/wast-printer": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
+ "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
}
},
- "find-cache-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
- "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
+ "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
"dev": true,
- "requires": {
- "commondir": "^1.0.1",
- "make-dir": "^2.0.0",
- "pkg-dir": "^3.0.0"
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1"
}
},
- "find-file-up": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz",
- "integrity": "sha1-z2gJG8+fMApA2kEbN9pczlovvqA=",
- "requires": {
- "fs-exists-sync": "^0.1.0",
- "resolve-dir": "^0.1.0"
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
+ "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
+ "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@xtuc/long": "4.2.2"
}
},
- "find-pkg": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz",
- "integrity": "sha1-G9wiwG42NlUy4qJIBGhUuXiNpVc=",
- "requires": {
- "find-file-up": "^0.1.2"
- }
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true,
+ "peer": true
},
- "find-process": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.4.tgz",
- "integrity": "sha512-rRSuT1LE4b+BFK588D2V8/VG9liW0Ark1XJgroxZXI0LtwmQJOb490DvDYvbm+Hek9ETFzTutGfJ90gumITPhQ==",
- "requires": {
- "chalk": "^4.0.0",
- "commander": "^5.1.0",
- "debug": "^4.1.1"
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/abab": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
+ },
+ "node_modules/acorn": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "bin": {
+ "acorn": "bin/acorn"
},
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-globals": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
+ "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "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==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "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=="
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "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==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ "acorn": "^7.1.1",
+ "acorn-walk": "^7.1.1"
}
},
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "requires": {
- "locate-path": "^3.0.0"
+ "node_modules/acorn-globals/node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
}
},
- "flat-cache": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
- "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "node_modules/acorn-import-assertions": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
+ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
"dev": true,
- "requires": {
- "flatted": "^2.0.0",
- "rimraf": "2.6.3",
- "write": "1.0.3"
- },
- "dependencies": {
- "rimraf": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
+ "peer": true,
+ "peerDependencies": {
+ "acorn": "^8"
}
},
- "flatted": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
- "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
- "dev": true
- },
- "for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
- },
- "for-own": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
- "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
- "requires": {
- "for-in": "^1.0.1"
+ "node_modules/acorn-jsx": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
+ "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
+ "dev": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ "node_modules/acorn-walk": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "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==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
+ "node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
}
},
- "fragment-cache": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
- "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
- "requires": {
- "map-cache": "^0.2.2"
+ "node_modules/agent-base/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
- "fs-exists-sync": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
- "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0="
+ "node_modules/agent-base/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=="
},
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
},
- "fsevents": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
- "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
- "optional": true,
- "requires": {
- "bindings": "^1.5.0",
- "nan": "^2.12.1"
+ "node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "peerDependencies": {
+ "ajv": "^6.9.1"
}
},
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ "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"
+ }
},
- "functional-red-black-tree": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
- "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
- "dev": true
+ "node_modules/ansi-escapes/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"
+ }
},
- "gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
+ "node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
},
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+ "node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
- "get-intrinsic": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz",
- "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==",
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
+ "node_modules/anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
+ "dependencies": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
}
},
- "get-stdin": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz",
- "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g="
+ "node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
},
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
- "requires": {
- "pump": "^3.0.0"
+ "node_modules/arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "get-value": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+ "node_modules/arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "requires": {
- "assert-plus": "^1.0.0"
+ "node_modules/arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "gitwin": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/gitwin/-/gitwin-0.2.0.tgz",
- "integrity": "sha1-i4BgJITNWW9/C5e5h2UdluixxuM=",
- "requires": {
- "colors": "*",
- "events": "*"
+ "node_modules/array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "node_modules/assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "glob-parent": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
- "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "node_modules/astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
"dev": true,
- "requires": {
- "is-glob": "^4.0.1"
+ "engines": {
+ "node": ">=4"
}
},
- "global-modules": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz",
- "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=",
- "requires": {
- "global-prefix": "^0.1.4",
- "is-windows": "^0.2.0"
+ "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/atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true,
+ "bin": {
+ "atob": "bin/atob.js"
},
+ "engines": {
+ "node": ">= 4.5.0"
+ }
+ },
+ "node_modules/axios": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz",
+ "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==",
"dependencies": {
- "is-windows": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
- "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw="
- }
+ "follow-redirects": "^1.14.7"
}
},
- "global-prefix": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz",
- "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=",
- "requires": {
- "homedir-polyfill": "^1.0.0",
- "ini": "^1.3.4",
- "is-windows": "^0.2.0",
- "which": "^1.2.12"
- },
+ "node_modules/babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
"dependencies": {
- "is-windows": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
- "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw="
- }
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
}
},
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
+ "node_modules/babel-code-frame/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "glur": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/glur/-/glur-1.1.2.tgz",
- "integrity": "sha1-8g6jbbEDv8KSNDkh8fkeg8NGdok="
+ "node_modules/babel-code-frame/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "graceful-fs": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
- "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
+ "node_modules/babel-code-frame/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "growly": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
- "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE="
+ "node_modules/babel-code-frame/node_modules/js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
},
- "har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+ "node_modules/babel-code-frame/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "requires": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
+ "node_modules/babel-code-frame/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
}
},
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "requires": {
- "function-bind": "^1.1.1"
+ "node_modules/babel-eslint": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
+ "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
+ "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0",
+ "eslint-visitor-keys": "^1.0.0",
+ "resolve": "^1.12.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "eslint": ">= 4.12.1"
}
},
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "requires": {
- "ansi-regex": "^2.0.0"
+ "node_modules/babel-jest": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz",
+ "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/babel__core": "^7.1.0",
+ "babel-plugin-istanbul": "^5.1.0",
+ "babel-preset-jest": "^24.9.0",
+ "chalk": "^2.4.2",
+ "slash": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
},
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/babel-loader": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.1.tgz",
+ "integrity": "sha512-dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw==",
+ "dev": true,
"dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
- }
+ "find-cache-dir": "^2.1.0",
+ "loader-utils": "^1.4.0",
+ "make-dir": "^2.1.0",
+ "pify": "^4.0.1",
+ "schema-utils": "^2.6.5"
+ },
+ "engines": {
+ "node": ">= 8.9"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0",
+ "webpack": ">=2"
}
},
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ "node_modules/babel-loader/node_modules/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
},
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
+ "node_modules/babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
},
- "has-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
- "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
- "requires": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
+ "node_modules/babel-plugin-dynamic-import-node": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+ "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
+ "dev": true,
+ "dependencies": {
+ "object.assign": "^4.1.0"
}
},
- "has-values": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
- "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
- "requires": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
+ "node_modules/babel-plugin-istanbul": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz",
+ "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==",
+ "dev": true,
"dependencies": {
- "kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "find-up": "^3.0.0",
+ "istanbul-lib-instrument": "^3.3.0",
+ "test-exclude": "^5.2.3"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "homedir-polyfill": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
- "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
- "requires": {
- "parse-passwd": "^1.0.0"
+ "node_modules/babel-plugin-jest-hoist": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz",
+ "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==",
+ "dev": true,
+ "dependencies": {
+ "@types/babel__traverse": "^7.0.6"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "hosted-git-info": {
- "version": "2.8.8",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
- "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg=="
+ "node_modules/babel-plugin-syntax-decorators": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
+ "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
+ "dev": true
},
- "html-encoding-sniffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
- "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
- "requires": {
- "whatwg-encoding": "^1.0.1"
+ "node_modules/babel-plugin-transform-decorators-legacy": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.5.tgz",
+ "integrity": "sha512-jYHwjzRXRelYQ1uGm353zNzf3QmtdCfvJbuYTZ4gKveK7M9H1fs3a5AKdY1JUDl0z97E30ukORW1dzhWvsabtA==",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-syntax-decorators": "^6.1.18",
+ "babel-runtime": "^6.2.0",
+ "babel-template": "^6.3.0"
}
},
- "html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
+ "node_modules/babel-plugin-transform-object-assign": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz",
+ "integrity": "sha1-+Z0vZvGgsNSY40bFNZaEdAyqILo=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
},
- "http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
- "requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
+ "node_modules/babel-plugin-transform-runtime": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
+ "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
+ "dev": true,
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
}
},
- "https-proxy-agent": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
- "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
- "requires": {
- "agent-base": "^4.3.0",
- "debug": "^3.1.0"
+ "node_modules/babel-preset-current-node-syntax": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
+ "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
+ "dependencies": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-top-level-await": "^7.8.3"
},
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/babel-preset-jest": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz",
+ "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==",
+ "dev": true,
"dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "babel-plugin-jest-hoist": "^24.9.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "node_modules/babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "dependencies": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
}
},
- "ignore": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "node_modules/babel-runtime/node_modules/regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
"dev": true
},
- "import-fresh": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz",
- "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==",
+ "node_modules/babel-template": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
"dev": true,
- "requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
"dependencies": {
- "resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true
- }
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
}
},
- "import-local": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
- "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
- "requires": {
- "pkg-dir": "^3.0.0",
- "resolve-cwd": "^2.0.0"
+ "node_modules/babel-traverse": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true,
+ "dependencies": {
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
}
},
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "node_modules/babel-traverse/node_modules/globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "ini": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
- "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
- },
- "inquirer": {
- "version": "7.3.3",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
- "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
+ "node_modules/babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
"dev": true,
- "requires": {
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.1.0",
- "cli-cursor": "^3.1.0",
- "cli-width": "^3.0.0",
- "external-editor": "^3.0.3",
- "figures": "^3.0.0",
- "lodash": "^4.17.19",
- "mute-stream": "0.0.8",
- "run-async": "^2.4.0",
- "rxjs": "^6.6.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "through": "^2.3.6"
- },
"dependencies": {
- "ansi-escapes": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
- "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
- "dev": true,
- "requires": {
- "type-fest": "^0.11.0"
- }
- },
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "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==",
- "dev": true
- },
- "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==",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "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==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "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==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "type-fest": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
- "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
- "dev": true
- }
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
}
},
- "invariant": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
- "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
- "requires": {
- "loose-envify": "^1.0.0"
+ "node_modules/babel-types/node_modules/to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
+ "node_modules/babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true,
+ "bin": {
+ "babylon": "bin/babylon.js"
}
},
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
- },
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
- },
- "is-callable": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
- "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA=="
+ "node_modules/balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
- "is-ci": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
- "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
- "requires": {
- "ci-info": "^2.0.0"
+ "node_modules/base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "dependencies": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "is-core-module": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz",
- "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==",
- "requires": {
- "has": "^1.0.3"
+ "node_modules/base/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "requires": {
- "kind-of": "^3.0.2"
+ "node_modules/base/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
},
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
"dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "is-date-object": {
+ "node_modules/base/node_modules/is-descriptor": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
- "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
"dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
}
},
- "is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
},
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
},
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
},
- "is-generator-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="
+ "node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "requires": {
- "kind-of": "^3.0.2"
+ "node_modules/browser-process-hrtime": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
+ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
+ },
+ "node_modules/browserslist": {
+ "version": "4.16.6",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
+ "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
+ "dev": true,
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001219",
+ "colorette": "^1.2.2",
+ "electron-to-chromium": "^1.3.723",
+ "escalade": "^3.1.1",
+ "node-releases": "^1.1.71"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ }
+ },
+ "node_modules/browserslist/node_modules/caniuse-lite": {
+ "version": "1.0.30001237",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz",
+ "integrity": "sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ }
+ },
+ "node_modules/browserslist/node_modules/colorette": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
+ "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
+ "dev": true
+ },
+ "node_modules/browserslist/node_modules/electron-to-chromium": {
+ "version": "1.3.752",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz",
+ "integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==",
+ "dev": true
+ },
+ "node_modules/browserslist/node_modules/node-releases": {
+ "version": "1.1.73",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
+ "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
+ "dev": true
+ },
+ "node_modules/bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
"dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
+ "node-int64": "^0.4.0"
+ }
+ },
+ "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"
}
},
- "is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "requires": {
- "isobject": "^3.0.1"
+ "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": "*"
}
},
- "is-regex": {
+ "node_modules/buffer-from": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
- "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
- "requires": {
- "has-symbols": "^1.0.1"
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ },
+ "node_modules/cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "dependencies": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ "node_modules/call-bind": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
+ "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "is-symbol": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
- "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
- "requires": {
- "has-symbols": "^1.0.1"
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "engines": {
+ "node": ">=6"
}
},
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "is-windows": {
+ "node_modules/capture-exit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz",
+ "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==",
+ "dev": true,
+ "dependencies": {
+ "rsvp": "^4.8.4"
+ },
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/char-regex": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "engines": {
+ "node": ">=10"
+ }
},
- "is-wsl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
+ "node_modules/chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+ "dev": true
},
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ "node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
},
- "isexe": {
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/ci-info": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
},
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ "node_modules/cjs-module-lexer": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
+ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA=="
},
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ "node_modules/class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "istanbul-lib-coverage": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
- "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA=="
+ "node_modules/class-utils/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "istanbul-lib-instrument": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
- "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
- "requires": {
- "@babel/generator": "^7.4.0",
- "@babel/parser": "^7.4.3",
- "@babel/template": "^7.4.0",
- "@babel/traverse": "^7.4.3",
- "@babel/types": "^7.4.0",
- "istanbul-lib-coverage": "^2.0.5",
- "semver": "^6.0.0"
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-width": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/cliui/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/cliui/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/cliui/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/cliui/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/cliui/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/clone-deep": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz",
+ "integrity": "sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==",
"dependencies": {
+ "for-own": "^0.1.3",
+ "is-plain-object": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "lazy-cache": "^1.0.3",
+ "shallow-clone": "^0.1.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/clone-deep/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/collect-v8-coverage": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
+ "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg=="
+ },
+ "node_modules/collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "dependencies": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "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": "5.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "node_modules/component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "dependencies": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "node_modules/copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/core-js": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
+ "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
+ "dev": true,
+ "hasInstallScript": true
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz",
+ "integrity": "sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==",
+ "dev": true,
+ "dependencies": {
+ "browserslist": "^4.14.6",
+ "semver": "7.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-compat/node_modules/semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/cross-fetch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
+ "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
+ "dependencies": {
+ "node-fetch": "2.6.7"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/cssom": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
+ "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw=="
+ },
+ "node_modules/cssstyle": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
+ "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
+ "dependencies": {
+ "cssom": "~0.3.6"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cssstyle/node_modules/cssom": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
+ },
+ "node_modules/cwd": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz",
+ "integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==",
+ "dependencies": {
+ "find-pkg": "^0.1.2",
+ "fs-exists-sync": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/data-urls": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
+ "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
+ "dependencies": {
+ "abab": "^2.0.3",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^8.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/decimal.js": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ },
+ "node_modules/deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "dependencies": {
+ "object-keys": "^1.0.12"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/devtools-protocol": {
+ "version": "0.0.981744",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz",
+ "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg=="
+ },
+ "node_modules/diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/domexception": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
+ "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
+ "dependencies": {
+ "webidl-conversions": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/domexception/node_modules/webidl-conversions": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
+ "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/emittery": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz",
+ "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
+ }
+ },
+ "node_modules/emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "node_modules/emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "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/enhanced-resolve": {
+ "version": "5.12.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz",
+ "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
+ "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
+ "dev": true,
+ "dependencies": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.2",
+ "is-regex": "^1.1.1",
+ "object-inspect": "^1.8.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.1",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
+ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/escodegen": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz",
+ "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/escodegen/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
+ "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.10.0",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^1.4.3",
+ "eslint-visitor-keys": "^1.1.0",
+ "espree": "^6.1.2",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^7.0.0",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.14",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.3",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^6.1.2",
+ "strip-ansi": "^5.2.0",
+ "strip-json-comments": "^3.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-plugin-jest": {
+ "version": "22.21.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.21.0.tgz",
+ "integrity": "sha512-OaqnSS7uBgcGiqXUiEnjoqxPNKvR4JWG5mSRkzVoR6+vDwlqqp11beeql1hYs0HTbdhiwrxWLxbX0Vx7roG3Ew==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/experimental-utils": "^1.13.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "eslint": ">=5"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint/node_modules/debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dev": true
+ },
+ "node_modules/eslint/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/espree": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
+ "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^7.1.1",
+ "acorn-jsx": "^5.2.0",
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/espree/node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
+ "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esquery/node_modules/estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/exec-sh": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz",
+ "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==",
+ "dev": true
+ },
+ "node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "dependencies": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-tilde": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
+ "integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==",
+ "dependencies": {
+ "os-homedir": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expect": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz",
+ "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/expect-puppeteer": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-6.1.1.tgz",
+ "integrity": "sha512-cnQF96qdoEcOD63j5NQMc0RtW9WRMW/WHKXEKsuDQ2tszhVH3qC7zkXXS4D0LTt9qCB3DEExioqylsQXvqPrUw=="
+ },
+ "node_modules/expect/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/expect/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/expect/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "node_modules/expect/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/expect/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/expect/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/expect/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/expect/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/expect/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/expect/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/expect/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/expect/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/expect/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/expect/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/expect/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/expect/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/expect/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/expect/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/expect/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extend-shallow/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "dev": true,
+ "dependencies": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "dependencies": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/extract-zip/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/extract-zip/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/extract-zip/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/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
+ "node_modules/fb-watchman": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
+ "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==",
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "dependencies": {
+ "flat-cache": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "dev": true,
+ "optional": true
+ },
+ "node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dev": true,
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-file-up": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz",
+ "integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==",
+ "dependencies": {
+ "fs-exists-sync": "^0.1.0",
+ "resolve-dir": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/find-pkg": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz",
+ "integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==",
+ "dependencies": {
+ "find-file-up": "^0.1.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/find-process": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz",
+ "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "commander": "^5.1.0",
+ "debug": "^4.1.1"
+ },
+ "bin": {
+ "find-process": "bin/find-process.js"
+ }
+ },
+ "node_modules/find-process/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/find-process/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/find-process/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/find-process/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/find-process/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/find-process/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/find-process/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/find-process/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/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/flat-cache/node_modules/rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "dev": true
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==",
+ "dependencies": {
+ "for-in": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
+ "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "dependencies": {
+ "map-cache": "^0.2.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
+ },
+ "node_modules/fs-exists-sync": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
+ "integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "node_modules/fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ },
+ "engines": {
+ "node": ">= 4.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "node_modules/functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz",
+ "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/get-stdin": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz",
+ "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/global-modules": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz",
+ "integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==",
+ "dependencies": {
+ "global-prefix": "^0.1.4",
+ "is-windows": "^0.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/global-modules/node_modules/is-windows": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
+ "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/global-prefix": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz",
+ "integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==",
+ "dependencies": {
+ "homedir-polyfill": "^1.0.0",
+ "ini": "^1.3.4",
+ "is-windows": "^0.2.0",
+ "which": "^1.2.12"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/global-prefix/node_modules/is-windows": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
+ "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/glur": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/glur/-/glur-1.1.2.tgz",
+ "integrity": "sha1-8g6jbbEDv8KSNDkh8fkeg8NGdok="
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-ansi/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "dependencies": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "dependencies": {
+ "parse-passwd": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
+ },
+ "node_modules/html-encoding-sniffer": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
+ "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
+ "dependencies": {
+ "whatwg-encoding": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
+ },
+ "node_modules/http-proxy-agent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
+ "dependencies": {
+ "@tootallnate/once": "1",
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/http-proxy-agent/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/http-proxy-agent/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/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/https-proxy-agent/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/https-proxy-agent/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/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.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/ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz",
+ "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==",
+ "dev": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-fresh/node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/import-local": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
+ "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
+ "dependencies": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-local/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/import-local/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/import-local/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/import-local/node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/import-local/node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
+ "node_modules/inquirer": {
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
+ "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^3.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.19",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.4.0",
+ "rxjs": "^6.6.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inquirer/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==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/inquirer/node_modules/chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "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/inquirer/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==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/inquirer/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==",
+ "dev": true
+ },
+ "node_modules/inquirer/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==",
+ "dev": true
+ },
+ "node_modules/inquirer/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inquirer/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==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inquirer/node_modules/string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inquirer/node_modules/strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inquirer/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==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dev": true,
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "node_modules/is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
+ "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "dev": true,
+ "dependencies": {
+ "ci-info": "^2.0.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-data-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
+ "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-descriptor/node_modules/kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
+ },
+ "node_modules/is-regex": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
+ "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
+ "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/istanbul-lib-instrument": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
+ "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/generator": "^7.4.0",
+ "@babel/parser": "^7.4.3",
+ "@babel/template": "^7.4.0",
+ "@babel/traverse": "^7.4.3",
+ "@babel/types": "^7.4.0",
+ "istanbul-lib-coverage": "^2.0.5",
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/istanbul-lib-instrument/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^3.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-report/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/istanbul-lib-report/node_modules/istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dependencies": {
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/istanbul-lib-report/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/istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-source-maps/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-source-maps/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/istanbul-reports": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
+ "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz",
+ "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==",
+ "dependencies": {
+ "@jest/core": "^27.5.1",
+ "import-local": "^3.0.2",
+ "jest-cli": "^27.5.1"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-changed-files": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz",
+ "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "execa": "^5.0.0",
+ "throat": "^6.0.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-changed-files/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-changed-files/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-changed-files/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-changed-files/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/jest-changed-files/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/jest-changed-files/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/jest-changed-files/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/jest-changed-files/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/jest-changed-files/node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/jest-changed-files/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-changed-files/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/jest-changed-files/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/jest-changed-files/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/jest-changed-files/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/jest-changed-files/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/jest-changed-files/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/jest-changed-files/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/jest-changed-files/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/jest-circus": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz",
+ "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==",
+ "dependencies": {
+ "@jest/environment": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^0.7.0",
+ "expect": "^27.5.1",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3",
+ "throat": "^6.0.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-circus/node_modules/@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-circus/node_modules/@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "dependencies": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-circus/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-circus/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-circus/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "node_modules/jest-circus/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-circus/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/jest-circus/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-circus/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/jest-circus/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-circus/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/jest-circus/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/jest-circus/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-circus/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-circus/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/jest-circus/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jest-circus/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-circus/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-circus/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/jest-circus/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-circus/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-circus/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/jest-circus/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/jest-cli": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz",
+ "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==",
+ "dependencies": {
+ "@jest/core": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "import-local": "^3.0.2",
+ "jest-config": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "prompts": "^2.0.1",
+ "yargs": "^16.2.0"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-cli/node_modules/@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-cli/node_modules/@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "dependencies": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-cli/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-cli/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-cli/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "node_modules/jest-cli/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-cli/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/jest-cli/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-cli/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/jest-cli/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-cli/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/jest-cli/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/jest-cli/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-cli/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-cli/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/jest-cli/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jest-cli/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-cli/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-cli/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/jest-cli/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-cli/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-cli/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/jest-cli/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/jest-config": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz",
+ "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==",
+ "dependencies": {
+ "@babel/core": "^7.8.0",
+ "@jest/test-sequencer": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "babel-jest": "^27.5.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.1",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^27.5.1",
+ "jest-environment-jsdom": "^27.5.1",
+ "jest-environment-node": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "jest-jasmine2": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-runner": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "peerDependencies": {
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-config/node_modules/@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
+ "dependencies": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-config/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-config/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/jest-config/node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/jest-config/node_modules/babel-jest": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz",
+ "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==",
+ "dependencies": {
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^27.5.1",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.8.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-config/node_modules/babel-plugin-jest-hoist": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz",
+ "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==",
+ "dependencies": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.0.0",
+ "@types/babel__traverse": "^7.0.6"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/babel-preset-jest": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz",
+ "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==",
+ "dependencies": {
+ "babel-plugin-jest-hoist": "^27.5.1",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-config/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/jest-config/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-config/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/jest-config/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/jest-config/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-config/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/jest-config/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/jest-config/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-config/node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-config/node_modules/jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-config/node_modules/jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "dependencies": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/jest-worker/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/jest-config/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/jest-config/node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-config/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/jest-config/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-config/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/jest-config/node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-config/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/jest-config/node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "node_modules/jest-dev-server": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-6.2.0.tgz",
+ "integrity": "sha512-ZWh8CuvxwjhYfvw4tGeftziqIvw/26R6AG3OTgNTQeXul8aZz48RQjDpnlDwnWX53jxJJl9fcigqIdSU5lYZuw==",
+ "dependencies": {
+ "chalk": "^4.1.2",
+ "cwd": "^0.10.0",
+ "find-process": "^1.4.7",
+ "prompts": "^2.4.2",
+ "spawnd": "^6.2.0",
+ "tree-kill": "^1.2.2",
+ "wait-on": "^6.0.1"
+ }
+ },
+ "node_modules/jest-dev-server/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/jest-dev-server/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/jest-dev-server/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/jest-dev-server/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/jest-dev-server/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/jest-dev-server/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/jest-diff": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/jest-docblock": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz",
+ "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==",
+ "dependencies": {
+ "detect-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-each": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz",
+ "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-each/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-each/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-each/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-each/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/jest-each/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/jest-each/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-each/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/jest-each/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/jest-each/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/jest-each/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-each/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/jest-environment-jsdom": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz",
+ "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==",
+ "dependencies": {
+ "@jest/environment": "^27.5.1",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jsdom": "^16.6.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@jest/fake-timers": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
+ "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@sinonjs/fake-timers": "^8.0.1",
+ "@types/node": "*",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-environment-jsdom/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/jest-environment-jsdom/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-jsdom/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/jest-environment-jsdom/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-jsdom/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/jest-environment-jsdom/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/jest-environment-jsdom/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-jsdom/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/jest-environment-jsdom/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/jest-mock": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
+ "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-environment-jsdom/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/jest-environment-jsdom/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz",
+ "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==",
+ "dependencies": {
+ "@jest/environment": "^27.5.1",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-environment-node/node_modules/@jest/fake-timers": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
+ "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@sinonjs/fake-timers": "^8.0.1",
+ "@types/node": "*",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-environment-node/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-environment-node/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-environment-node/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "node_modules/jest-environment-node/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-environment-node/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/jest-environment-node/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-node/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/jest-environment-node/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-node/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/jest-environment-node/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/jest-environment-node/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-node/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-node/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/jest-environment-node/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jest-environment-node/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-environment-node/node_modules/jest-mock": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
+ "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-environment-node/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-environment-node/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/jest-environment-node/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-node/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-environment-node/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/jest-environment-node/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/jest-environment-puppeteer": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-puppeteer/-/jest-environment-puppeteer-6.2.0.tgz",
+ "integrity": "sha512-a/oSu6dO9D+XoDDe3ZY/0Sk79Jl2FcJl7Q0D+3x22l1eWNOYe4ikXnPGhtmNZ3mJIpuAVIX6LytA8EraOk/aqQ==",
+ "dependencies": {
+ "chalk": "^4.1.2",
+ "cwd": "^0.10.0",
+ "jest-dev-server": "^6.2.0",
+ "jest-environment-node": "^27.5.1",
+ "merge-deep": "^3.0.3"
+ }
+ },
+ "node_modules/jest-environment-puppeteer/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/jest-environment-puppeteer/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/jest-environment-puppeteer/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/jest-environment-puppeteer/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/jest-environment-puppeteer/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/jest-environment-puppeteer/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/jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-haste-map": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz",
+ "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^24.9.0",
+ "anymatch": "^2.0.0",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.1.15",
+ "invariant": "^2.2.4",
+ "jest-serializer": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-worker": "^24.9.0",
+ "micromatch": "^3.1.10",
+ "sane": "^4.0.3",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "optionalDependencies": {
+ "fsevents": "^1.2.7"
+ }
+ },
+ "node_modules/jest-image-snapshot": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/jest-image-snapshot/-/jest-image-snapshot-4.5.1.tgz",
+ "integrity": "sha512-0YkgupgkkCx0wIZkxvqs/oNiUT0X0d2WTpUhaAp+Dy6CpqBUZMRTIZo4KR1f+dqmx6WXrLCvecjnHLIsLkI+gQ==",
+ "dependencies": {
+ "chalk": "^1.1.3",
+ "get-stdin": "^5.0.1",
+ "glur": "^1.1.2",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "pixelmatch": "^5.1.0",
+ "pngjs": "^3.4.0",
+ "rimraf": "^2.6.2",
+ "ssim.js": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ },
+ "peerDependencies": {
+ "jest": ">=20 <=27"
+ }
+ },
+ "node_modules/jest-image-snapshot/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-image-snapshot/node_modules/ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-image-snapshot/node_modules/chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dependencies": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-image-snapshot/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-image-snapshot/node_modules/supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/jest-jasmine2": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz",
+ "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==",
+ "dependencies": {
+ "@jest/environment": "^27.5.1",
+ "@jest/source-map": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "expect": "^27.5.1",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "pretty-format": "^27.5.1",
+ "throat": "^6.0.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/@jest/source-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz",
+ "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==",
+ "dependencies": {
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9",
+ "source-map": "^0.6.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "dependencies": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "node_modules/jest-jasmine2/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-jasmine2/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/jest-jasmine2/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-jasmine2/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/jest-jasmine2/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-jasmine2/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/jest-jasmine2/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/jest-jasmine2/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-jasmine2/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/jest-jasmine2/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-jasmine2/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-jasmine2/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/jest-jasmine2/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/jest-leak-detector": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz",
+ "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==",
+ "dependencies": {
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-message-util": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz",
+ "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^2.0.1",
+ "micromatch": "^3.1.10",
+ "slash": "^2.0.0",
+ "stack-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/jest-mock": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz",
+ "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^24.9.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-puppeteer": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/jest-puppeteer/-/jest-puppeteer-6.2.0.tgz",
+ "integrity": "sha512-4Ynkgcf9FkHlTNEpdsojGLb3KtsToWqjO6SCigxb9Qj3HzIqhzJzNbDJ/XhiciNDpqDe6KHW9sZ6fjHphNLr6g==",
+ "dependencies": {
+ "expect-puppeteer": "^6.1.1",
+ "jest-environment-puppeteer": "^6.2.0"
+ },
+ "peerDependencies": {
+ "puppeteer": ">= 1.5.0"
+ }
+ },
+ "node_modules/jest-regex-util": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz",
+ "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/jest-resolve": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz",
+ "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^1.1.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-resolve-dependencies": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz",
+ "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-snapshot": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-resolve-dependencies/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-resolve-dependencies/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-resolve-dependencies/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-resolve-dependencies/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/jest-resolve-dependencies/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/jest-resolve-dependencies/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/jest-resolve-dependencies/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/jest-resolve-dependencies/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/jest-resolve-dependencies/node_modules/jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-resolve-dependencies/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/jest-resolve/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-resolve/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/jest-resolve/node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-resolve/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/jest-resolve/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-resolve/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/jest-resolve/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/jest-resolve/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/jest-resolve/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/jest-resolve/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "dependencies": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/jest-worker/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/jest-resolve/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-resolve/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/jest-resolve/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/jest-runner": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz",
+ "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==",
+ "dependencies": {
+ "@jest/console": "^27.5.1",
+ "@jest/environment": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.8.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^27.5.1",
+ "jest-environment-jsdom": "^27.5.1",
+ "jest-environment-node": "^27.5.1",
+ "jest-haste-map": "^27.5.1",
+ "jest-leak-detector": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "source-map-support": "^0.5.6",
+ "throat": "^6.0.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "dependencies": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
+ "dependencies": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-runner/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "node_modules/jest-runner/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-runner/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/jest-runner/node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/jest-runner/node_modules/babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runner/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runner/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/jest-runner/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runner/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/jest-runner/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/jest-runner/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runner/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runner/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/jest-runner/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/jest-runner/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runner/node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runner/node_modules/jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-runner/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "dependencies": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/jest-worker/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/jest-runner/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/jest-runner/node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/jest-runner/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runner/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-runner/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/jest-runner/node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runner/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "node_modules/jest-runtime": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz",
+ "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==",
+ "dependencies": {
+ "@jest/environment": "^27.5.1",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/globals": "^27.5.1",
+ "@jest/source-map": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^1.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "execa": "^5.0.0",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/@jest/fake-timers": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
+ "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@sinonjs/fake-timers": "^8.0.1",
+ "@types/node": "*",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/@jest/source-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz",
+ "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==",
+ "dependencies": {
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9",
+ "source-map": "^0.6.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "dependencies": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
+ "dependencies": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "node_modules/jest-runtime/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-runtime/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/jest-runtime/node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/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/jest-runtime/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-runtime/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/jest-runtime/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jest-runtime/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/jest-runtime/node_modules/istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/jest-mock": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
+ "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "dependencies": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/jest-worker/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/jest-runtime/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/strip-bom": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/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/jest-runtime/node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/jest-runtime/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/jest-runtime/node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "node_modules/jest-serializer": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz",
+ "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/jest-snapshot": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz",
+ "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==",
+ "dependencies": {
+ "@babel/core": "^7.7.2",
+ "@babel/generator": "^7.7.2",
+ "@babel/plugin-syntax-typescript": "^7.7.2",
+ "@babel/traverse": "^7.7.2",
+ "@babel/types": "^7.0.0",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/babel__traverse": "^7.0.4",
+ "@types/prettier": "^2.1.5",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^27.5.1",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "jest-haste-map": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^27.5.1",
+ "semver": "^7.3.2"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
+ "dependencies": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "node_modules/jest-snapshot/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-snapshot/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/jest-snapshot/node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-snapshot/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/jest-snapshot/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-snapshot/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/jest-snapshot/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/jest-snapshot/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/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/jest-snapshot/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/istanbul-lib-instrument/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "dependencies": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/jest-worker/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/jest-snapshot/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-snapshot/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/jest-snapshot/node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "node_modules/jest-util": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz",
+ "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^24.9.0",
+ "@jest/fake-timers": "^24.9.0",
+ "@jest/source-map": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "callsites": "^3.0.0",
+ "chalk": "^2.0.1",
+ "graceful-fs": "^4.1.15",
+ "is-ci": "^2.0.0",
+ "mkdirp": "^0.5.1",
+ "slash": "^2.0.0",
+ "source-map": "^0.6.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/jest-validate": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz",
+ "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^27.5.1",
+ "leven": "^3.1.0",
+ "pretty-format": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-validate/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-validate/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-validate/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/jest-watcher": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz",
+ "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==",
+ "dependencies": {
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "jest-util": "^27.5.1",
+ "string-length": "^4.0.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "dependencies": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "node_modules/jest-watcher/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/jest-watcher/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/jest-watcher/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-watcher/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/jest-watcher/node_modules/ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-watcher/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/jest-watcher/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/jest-watcher/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-watcher/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/jest-watcher/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-watcher/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/jest-watcher/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
+ "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
+ "dev": true,
+ "dependencies": {
+ "merge-stream": "^2.0.0",
+ "supports-color": "^6.1.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/joi": {
+ "version": "17.7.0",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz",
+ "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0",
+ "@hapi/topo": "^5.0.0",
+ "@sideway/address": "^4.1.3",
+ "@sideway/formula": "^3.0.0",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "node_modules/js-yaml": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
+ "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsdom": {
+ "version": "16.7.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz",
+ "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==",
+ "dependencies": {
+ "abab": "^2.0.5",
+ "acorn": "^8.2.4",
+ "acorn-globals": "^6.0.0",
+ "cssom": "^0.4.4",
+ "cssstyle": "^2.3.0",
+ "data-urls": "^2.0.0",
+ "decimal.js": "^10.2.1",
+ "domexception": "^2.0.1",
+ "escodegen": "^2.0.0",
+ "form-data": "^3.0.0",
+ "html-encoding-sniffer": "^2.0.1",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "is-potential-custom-element-name": "^1.0.1",
+ "nwsapi": "^2.2.0",
+ "parse5": "6.0.1",
+ "saxes": "^5.0.1",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^4.0.0",
+ "w3c-hr-time": "^1.0.2",
+ "w3c-xmlserializer": "^2.0.0",
+ "webidl-conversions": "^6.1.0",
+ "whatwg-encoding": "^1.0.5",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^8.5.0",
+ "ws": "^7.4.6",
+ "xml-name-validator": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "canvas": "^2.5.0"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
+ "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
+ "dependencies": {
+ "minimist": "^1.2.5"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dependencies": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
+ },
+ "node_modules/load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6.11.5"
+ }
+ },
+ "node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/loader-utils/node_modules/json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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.unescape": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz",
+ "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=",
+ "dev": true
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/make-dir/node_modules/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/makeerror": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
+ "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=",
+ "dependencies": {
+ "tmpl": "1.0.x"
+ }
+ },
+ "node_modules/map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "dependencies": {
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/merge-deep": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz",
+ "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==",
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "clone-deep": "^0.2.4",
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/merge-deep/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.44.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+ "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.27",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+ "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
+ "dependencies": {
+ "mime-db": "1.44.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/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
+ },
+ "node_modules/mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dev": true,
+ "dependencies": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mixin-deep/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mixin-object": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
+ "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==",
+ "dependencies": {
+ "for-in": "^0.1.3",
+ "is-extendable": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mixin-object/node_modules/for-in": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
+ "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "dependencies": {
+ "minimist": "^1.2.5"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+ },
+ "node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "node_modules/mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
+ "dev": true
+ },
+ "node_modules/nan": {
+ "version": "2.14.2",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
+ "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==",
+ "dev": true,
+ "optional": true
+ },
+ "node_modules/nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true
+ },
+ "node_modules/node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-fetch/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "node_modules/node-fetch/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "node_modules/node-fetch/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs="
+ },
+ "node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "dependencies": {
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/nwsapi": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz",
+ "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw=="
+ },
+ "node_modules/object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "dependencies": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+ "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.getownpropertydescriptors": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz",
+ "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "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/optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dependencies": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/parse-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
+ },
+ "node_modules/pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ },
+ "node_modules/path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
+ "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pixelmatch": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz",
+ "integrity": "sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==",
+ "dependencies": {
+ "pngjs": "^4.0.1"
+ },
+ "bin": {
+ "pixelmatch": "bin/pixelmatch"
+ }
+ },
+ "node_modules/pixelmatch/node_modules/pngjs": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-4.0.1.tgz",
+ "integrity": "sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg==",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pngjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
+ "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
+ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/pretty-format/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/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
+ "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.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/puppeteer": {
+ "version": "13.7.0",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz",
+ "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==",
+ "deprecated": "< 18.1.0 is no longer supported",
+ "hasInstallScript": true,
+ "dependencies": {
+ "cross-fetch": "3.1.5",
+ "debug": "4.3.4",
+ "devtools-protocol": "0.0.981744",
+ "extract-zip": "2.0.1",
+ "https-proxy-agent": "5.0.1",
+ "pkg-dir": "4.2.0",
+ "progress": "2.0.3",
+ "proxy-from-env": "1.1.0",
+ "rimraf": "3.0.2",
+ "tar-fs": "2.1.1",
+ "unbzip2-stream": "1.4.3",
+ "ws": "8.5.0"
+ },
+ "engines": {
+ "node": ">=10.18.1"
+ }
+ },
+ "node_modules/puppeteer/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/puppeteer/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/puppeteer/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/puppeteer/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/puppeteer/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/puppeteer/node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/puppeteer/node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/puppeteer/node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/puppeteer/node_modules/ws": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
+ "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "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/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
+ },
+ "node_modules/read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
+ "dependencies": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
+ "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^3.0.0",
+ "read-pkg": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/realpath-native": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz",
+ "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==",
+ "dev": true,
+ "dependencies": {
+ "util.promisify": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+ "dev": true
+ },
+ "node_modules/regenerate-unicode-properties": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
+ "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
+ "dev": true,
+ "dependencies": {
+ "regenerate": "^1.4.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+ "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==",
+ "dev": true
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
+ "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regexpp": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.5.0"
+ }
+ },
+ "node_modules/regexpu-core": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz",
+ "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==",
+ "dev": true,
+ "dependencies": {
+ "regenerate": "^1.4.0",
+ "regenerate-unicode-properties": "^8.2.0",
+ "regjsgen": "^0.5.1",
+ "regjsparser": "^0.6.4",
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regjsgen": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
+ "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==",
+ "dev": true
+ },
+ "node_modules/regjsparser": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
+ "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
+ "dev": true,
+ "dependencies": {
+ "jsesc": "~0.5.0"
+ },
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
+ "node_modules/regjsparser/node_modules/jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "node_modules/repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "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/resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "dependencies": {
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-dir": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz",
+ "integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==",
+ "dependencies": {
+ "expand-tilde": "^1.2.2",
+ "global-modules": "^0.2.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "deprecated": "https://github.com/lydell/resolve-url#deprecated",
+ "dev": true
+ },
+ "node_modules/resolve.exports": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz",
+ "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/rsvp": {
+ "version": "4.8.5",
+ "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz",
+ "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || >= 7.*"
+ }
+ },
+ "node_modules/run-async": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "6.6.3",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz",
+ "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.9.0"
+ },
+ "engines": {
+ "npm": ">=2.0.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "dependencies": {
+ "ret": "~0.1.10"
+ }
+ },
+ "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/sane": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz",
+ "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==",
+ "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added",
+ "dev": true,
+ "dependencies": {
+ "@cnakazawa/watch": "^1.0.3",
+ "anymatch": "^2.0.0",
+ "capture-exit": "^2.0.0",
+ "exec-sh": "^0.3.2",
+ "execa": "^1.0.0",
+ "fb-watchman": "^2.0.0",
+ "micromatch": "^3.1.4",
+ "minimist": "^1.1.1",
+ "walker": "~1.0.5"
+ },
+ "bin": {
+ "sane": "src/cli.js"
+ },
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/saxes": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
+ "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
+ "dependencies": {
+ "xmlchars": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/schema-utils": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
+ "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
+ "dev": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.5",
+ "ajv": "^6.12.4",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 8.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
+ "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/set-value/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shallow-clone": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz",
+ "integrity": "sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==",
+ "dependencies": {
+ "is-extendable": "^0.1.1",
+ "kind-of": "^2.0.1",
+ "lazy-cache": "^0.2.3",
+ "mixin-object": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shallow-clone/node_modules/kind-of": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz",
+ "integrity": "sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==",
+ "dependencies": {
+ "is-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shallow-clone/node_modules/lazy-cache": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz",
+ "integrity": "sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
+ },
+ "node_modules/slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "dependencies": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "dependencies": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
+ "dev": true,
+ "dependencies": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "deprecated": "See https://github.com/lydell/source-map-url#deprecated",
+ "dev": true
+ },
+ "node_modules/spawnd": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-6.2.0.tgz",
+ "integrity": "sha512-qX/I4lQy4KgVEcNle0kuc4FxFWHISzBhZW1YemPfwmrmQjyZmfTK/OhBKkhrD2ooAaFZEm1maEBLE6/6enwt+g==",
+ "dependencies": {
+ "exit": "^0.1.2",
+ "signal-exit": "^3.0.7",
+ "tree-kill": "^1.2.2"
+ }
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "dev": true,
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "dev": true
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz",
+ "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==",
+ "dev": true
+ },
+ "node_modules/split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "dependencies": {
+ "extend-shallow": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "node_modules/ssim.js": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/ssim.js/-/ssim.js-3.5.0.tgz",
+ "integrity": "sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g=="
+ },
+ "node_modules/stack-utils": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.3.tgz",
+ "integrity": "sha512-WldO+YmqhEpjp23eHZRhOT1NQF51STsbxZ+/AdpFD+EhheFxAe5d0WoK4DQVJkSHacPrJJX3OqRAl9CgHf78pg==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/stack-utils/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "dependencies": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/static-extend/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string_decoder/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/string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "dependencies": {
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/string-length/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/string-length/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/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz",
+ "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz",
+ "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/supports-hyperlinks": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "dependencies": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-hyperlinks/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/supports-hyperlinks/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/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/symbol-tree": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
+ },
+ "node_modules/table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "node_modules/tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "dependencies": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terminal-link": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
+ "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
+ "dependencies": {
+ "ansi-escapes": "^4.2.1",
+ "supports-hyperlinks": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.16.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz",
+ "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser-webpack-plugin": {
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz",
+ "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.14",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^3.1.1",
+ "serialize-javascript": "^6.0.0",
+ "terser": "^5.14.1"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "uglify-js": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/terser-webpack-plugin/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==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/terser-webpack-plugin/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==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/test-exclude": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
+ "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3",
+ "minimatch": "^3.0.4",
+ "read-pkg-up": "^4.0.0",
+ "require-main-filename": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "node_modules/throat": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz",
+ "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ=="
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-object-path/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "dependencies": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/tough-cookie": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz",
+ "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==",
+ "dependencies": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+ "dependencies": {
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tree-kill": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
+ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
+ "bin": {
+ "tree-kill": "cli.js"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dependencies": {
+ "prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "dependencies": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "node_modules/unbzip2-stream": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
+ "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
+ "dependencies": {
+ "buffer": "^5.2.1",
+ "through": "^2.3.8"
+ }
+ },
+ "node_modules/unicode-canonical-property-names-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
+ "dev": true,
+ "dependencies": {
+ "unicode-canonical-property-names-ecmascript": "^1.0.4",
+ "unicode-property-aliases-ecmascript": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-value-ecmascript": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
+ "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
+ "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dev": true,
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "dependencies": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "dependencies": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "dependencies": {
+ "isarray": "1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
+ "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "deprecated": "Please see https://github.com/lydell/urix#deprecated",
+ "dev": true
+ },
+ "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/use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/util.promisify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
+ "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.2",
+ "has-symbols": "^1.0.1",
+ "object.getownpropertydescriptors": "^2.1.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/v8-compile-cache": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz",
+ "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==",
+ "dev": true
+ },
+ "node_modules/v8-to-istanbul": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz",
+ "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0",
+ "source-map": "^0.7.3"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
+ "node_modules/v8-to-istanbul/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/w3c-hr-time": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
+ "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
+ "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.",
+ "dependencies": {
+ "browser-process-hrtime": "^1.0.0"
+ }
+ },
+ "node_modules/w3c-xmlserializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
+ "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
+ "dependencies": {
+ "xml-name-validator": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/wait-on": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz",
+ "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==",
+ "dependencies": {
+ "axios": "^0.25.0",
+ "joi": "^17.6.0",
+ "lodash": "^4.17.21",
+ "minimist": "^1.2.5",
+ "rxjs": "^7.5.4"
+ },
+ "bin": {
+ "wait-on": "bin/wait-on"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/wait-on/node_modules/rxjs": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz",
+ "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/wait-on/node_modules/tslib": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
+ },
+ "node_modules/walker": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
+ "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=",
+ "dependencies": {
+ "makeerror": "1.0.x"
+ }
+ },
+ "node_modules/watchpack": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
+ "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
+ "engines": {
+ "node": ">=10.4"
+ }
+ },
+ "node_modules/webpack": {
+ "version": "5.75.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz",
+ "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/eslint-scope": "^3.7.3",
+ "@types/estree": "^0.0.51",
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/wasm-edit": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "acorn": "^8.7.1",
+ "acorn-import-assertions": "^1.7.6",
+ "browserslist": "^4.14.5",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.10.0",
+ "es-module-lexer": "^0.9.0",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.9",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.1.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.1.3",
+ "watchpack": "^2.4.0",
+ "webpack-sources": "^3.2.3"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/webpack/node_modules/schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/whatwg-encoding": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
+ "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
+ "dependencies": {
+ "iconv-lite": "0.4.24"
+ }
+ },
+ "node_modules/whatwg-mimetype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
+ "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
+ },
+ "node_modules/whatwg-url": {
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
+ "dependencies": {
+ "lodash": "^4.7.0",
+ "tr46": "^2.1.0",
+ "webidl-conversions": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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/wrap-ansi/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/wrap-ansi/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/wrap-ansi/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/wrap-ansi/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/wrap-ansi/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/wrap-ansi/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/wrap-ansi/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/wrap-ansi/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/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "node_modules/write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+ "dev": true,
+ "dependencies": {
+ "mkdirp": "^0.5.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/write-file-atomic": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz",
+ "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xml-name-validator": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
+ },
+ "node_modules/xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs/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/yargs/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/yargs/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/yargs/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/yargs/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/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"
+ }
+ }
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "requires": {
+ "@babel/highlight": "^7.18.6"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.12.7",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz",
+ "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==",
+ "dev": true
+ },
+ "@babel/core": {
+ "version": "7.12.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz",
+ "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.12.5",
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helpers": "^7.12.5",
+ "@babel/parser": "^7.12.7",
+ "@babel/template": "^7.12.7",
+ "@babel/traverse": "^7.12.9",
+ "@babel/types": "^7.12.7",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.1",
+ "json5": "^2.1.2",
+ "lodash": "^4.17.19",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ }
+ }
+ },
+ "@babel/generator": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz",
+ "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==",
+ "requires": {
+ "@babel/types": "^7.12.5",
+ "jsesc": "^2.5.1",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ }
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz",
+ "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz",
+ "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-builder-react-jsx": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz",
+ "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-builder-react-jsx-experimental": {
+ "version": "7.12.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz",
+ "integrity": "sha512-AjEa0jrQqNk7eDQOo0pTfUOwQBMF+xVqrausQwT9/rTKy0g04ggFNaJpaE09IQMn9yExluigWMJcj0WC7bq+Og==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-module-imports": "^7.12.1",
+ "@babel/types": "^7.12.1"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz",
+ "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.12.5",
+ "@babel/helper-validator-option": "^7.12.1",
+ "browserslist": "^4.14.5",
+ "semver": "^5.5.0"
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz",
+ "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-member-expression-to-functions": "^7.12.1",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.12.1",
+ "@babel/helper-split-export-declaration": "^7.10.4"
+ }
+ },
+ "@babel/helper-create-regexp-features-plugin": {
+ "version": "7.12.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz",
+ "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "regexpu-core": "^4.7.1"
+ }
+ },
+ "@babel/helper-define-map": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz",
+ "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/types": "^7.10.5",
+ "lodash": "^4.17.19"
+ }
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz",
+ "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.12.1"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+ "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+ "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz",
+ "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.12.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz",
+ "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==",
+ "requires": {
+ "@babel/types": "^7.12.7"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz",
+ "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==",
+ "requires": {
+ "@babel/types": "^7.12.5"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz",
+ "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.12.1",
+ "@babel/helper-replace-supers": "^7.12.1",
+ "@babel/helper-simple-access": "^7.12.1",
+ "@babel/helper-split-export-declaration": "^7.11.0",
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.12.1",
+ "@babel/types": "^7.12.1",
+ "lodash": "^4.17.19"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.12.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz",
+ "integrity": "sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw==",
+ "requires": {
+ "@babel/types": "^7.12.7"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
+ "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ=="
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz",
+ "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-wrap-function": "^7.10.4",
+ "@babel/types": "^7.12.1"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz",
+ "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==",
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.12.1",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/traverse": "^7.12.5",
+ "@babel/types": "^7.12.5"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz",
+ "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==",
+ "requires": {
+ "@babel/types": "^7.12.1"
+ }
+ },
+ "@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz",
+ "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.12.1"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
+ "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
+ "requires": {
+ "@babel/types": "^7.11.0"
+ }
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.19.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
+ "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw=="
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz",
+ "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==",
+ "dev": true
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.12.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz",
+ "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz",
+ "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==",
+ "requires": {
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.12.5",
+ "@babel/types": "^7.12.5"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
+ "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw=="
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz",
+ "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-remap-async-to-generator": "^7.12.1",
+ "@babel/plugin-syntax-async-generators": "^7.8.0"
+ }
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz",
+ "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-dynamic-import": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz",
+ "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.0"
+ }
+ },
+ "@babel/plugin-proposal-export-namespace-from": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz",
+ "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz",
+ "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-json-strings": "^7.8.0"
+ }
+ },
+ "@babel/plugin-proposal-logical-assignment-operators": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz",
+ "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz",
+ "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
+ }
+ },
+ "@babel/plugin-proposal-numeric-separator": {
+ "version": "7.12.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz",
+ "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz",
+ "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+ "@babel/plugin-transform-parameters": "^7.12.1"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz",
+ "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
+ }
+ },
+ "@babel/plugin-proposal-optional-chaining": {
+ "version": "7.12.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz",
+ "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.0"
+ }
+ },
+ "@babel/plugin-proposal-private-methods": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz",
+ "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz",
+ "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-class-properties": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz",
+ "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ }
+ },
+ "@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz",
+ "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-top-level-await": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz",
+ "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-typescript": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz",
+ "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz",
+ "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz",
+ "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-remap-async-to-generator": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz",
+ "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz",
+ "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz",
+ "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-define-map": "^7.10.4",
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.12.1",
+ "@babel/helper-split-export-declaration": "^7.10.4",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz",
+ "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz",
+ "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz",
+ "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz",
+ "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz",
+ "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz",
+ "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz",
+ "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz",
+ "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-member-expression-literals": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz",
+ "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz",
+ "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz",
+ "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-simple-access": "^7.12.1",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz",
+ "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.10.4",
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz",
+ "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz",
+ "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz",
+ "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz",
+ "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz",
+ "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-property-literals": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz",
+ "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-react-display-name": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz",
+ "integrity": "sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-react-jsx": {
+ "version": "7.12.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.7.tgz",
+ "integrity": "sha512-YFlTi6MEsclFAPIDNZYiCRbneg1MFGao9pPG9uD5htwE0vDbPaMUMeYd6itWjw7K4kro4UbdQf3ljmFl9y48dQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-react-jsx": "^7.10.4",
+ "@babel/helper-builder-react-jsx-experimental": "^7.12.4",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-jsx": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-development": {
+ "version": "7.12.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.7.tgz",
+ "integrity": "sha512-Rs3ETtMtR3VLXFeYRChle5SsP/P9Jp/6dsewBQfokDSzKJThlsuFcnzLTDRALiUmTC48ej19YD9uN1mupEeEDg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-react-jsx-experimental": "^7.12.4",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-jsx": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-self": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz",
+ "integrity": "sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-source": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz",
+ "integrity": "sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz",
+ "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz",
+ "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.14.2"
+ }
+ },
+ "@babel/plugin-transform-reserved-words": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz",
+ "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-runtime": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz",
+ "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "resolve": "^1.8.1",
+ "semver": "^5.5.1"
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz",
+ "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz",
+ "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.12.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz",
+ "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz",
+ "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz",
+ "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-unicode-escapes": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz",
+ "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz",
+ "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.12.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.7.tgz",
+ "integrity": "sha512-OnNdfAr1FUQg7ksb7bmbKoby4qFOHw6DKWWUNB9KqnnCldxhxJlP+21dpyaWFmf2h0rTbOkXJtAGevY3XW1eew==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.12.7",
+ "@babel/helper-compilation-targets": "^7.12.5",
+ "@babel/helper-module-imports": "^7.12.5",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-validator-option": "^7.12.1",
+ "@babel/plugin-proposal-async-generator-functions": "^7.12.1",
+ "@babel/plugin-proposal-class-properties": "^7.12.1",
+ "@babel/plugin-proposal-dynamic-import": "^7.12.1",
+ "@babel/plugin-proposal-export-namespace-from": "^7.12.1",
+ "@babel/plugin-proposal-json-strings": "^7.12.1",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
+ "@babel/plugin-proposal-numeric-separator": "^7.12.7",
+ "@babel/plugin-proposal-object-rest-spread": "^7.12.1",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.12.1",
+ "@babel/plugin-proposal-optional-chaining": "^7.12.7",
+ "@babel/plugin-proposal-private-methods": "^7.12.1",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.12.1",
+ "@babel/plugin-syntax-async-generators": "^7.8.0",
+ "@babel/plugin-syntax-class-properties": "^7.12.1",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.0",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.0",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.0",
+ "@babel/plugin-syntax-top-level-await": "^7.12.1",
+ "@babel/plugin-transform-arrow-functions": "^7.12.1",
+ "@babel/plugin-transform-async-to-generator": "^7.12.1",
+ "@babel/plugin-transform-block-scoped-functions": "^7.12.1",
+ "@babel/plugin-transform-block-scoping": "^7.12.1",
+ "@babel/plugin-transform-classes": "^7.12.1",
+ "@babel/plugin-transform-computed-properties": "^7.12.1",
+ "@babel/plugin-transform-destructuring": "^7.12.1",
+ "@babel/plugin-transform-dotall-regex": "^7.12.1",
+ "@babel/plugin-transform-duplicate-keys": "^7.12.1",
+ "@babel/plugin-transform-exponentiation-operator": "^7.12.1",
+ "@babel/plugin-transform-for-of": "^7.12.1",
+ "@babel/plugin-transform-function-name": "^7.12.1",
+ "@babel/plugin-transform-literals": "^7.12.1",
+ "@babel/plugin-transform-member-expression-literals": "^7.12.1",
+ "@babel/plugin-transform-modules-amd": "^7.12.1",
+ "@babel/plugin-transform-modules-commonjs": "^7.12.1",
+ "@babel/plugin-transform-modules-systemjs": "^7.12.1",
+ "@babel/plugin-transform-modules-umd": "^7.12.1",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1",
+ "@babel/plugin-transform-new-target": "^7.12.1",
+ "@babel/plugin-transform-object-super": "^7.12.1",
+ "@babel/plugin-transform-parameters": "^7.12.1",
+ "@babel/plugin-transform-property-literals": "^7.12.1",
+ "@babel/plugin-transform-regenerator": "^7.12.1",
+ "@babel/plugin-transform-reserved-words": "^7.12.1",
+ "@babel/plugin-transform-shorthand-properties": "^7.12.1",
+ "@babel/plugin-transform-spread": "^7.12.1",
+ "@babel/plugin-transform-sticky-regex": "^7.12.7",
+ "@babel/plugin-transform-template-literals": "^7.12.1",
+ "@babel/plugin-transform-typeof-symbol": "^7.12.1",
+ "@babel/plugin-transform-unicode-escapes": "^7.12.1",
+ "@babel/plugin-transform-unicode-regex": "^7.12.1",
+ "@babel/preset-modules": "^0.1.3",
+ "@babel/types": "^7.12.7",
+ "core-js-compat": "^3.7.0",
+ "semver": "^5.5.0"
+ }
+ },
+ "@babel/preset-modules": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz",
+ "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ }
+ },
+ "@babel/preset-react": {
+ "version": "7.12.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.7.tgz",
+ "integrity": "sha512-wKeTdnGUP5AEYCYQIMeXMMwU7j+2opxrG0WzuZfxuuW9nhKvvALBjl67653CWamZJVefuJGI219G591RSldrqQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-transform-react-display-name": "^7.12.1",
+ "@babel/plugin-transform-react-jsx": "^7.12.7",
+ "@babel/plugin-transform-react-jsx-development": "^7.12.7",
+ "@babel/plugin-transform-react-jsx-self": "^7.12.1",
+ "@babel/plugin-transform-react-jsx-source": "^7.12.1",
+ "@babel/plugin-transform-react-pure-annotations": "^7.12.1"
+ }
+ },
+ "@babel/preset-stage-2": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-stage-2/-/preset-stage-2-7.8.3.tgz",
+ "integrity": "sha512-dStnEQgejNYIHFNACdDCigK4BF7wgW6Zahv9Dc2un7rGjbeVtZhBfR3sy0I7ZJOhBexkFxVdMZ5hqmll7BFShw==",
+ "dev": true
+ },
+ "@babel/runtime": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
+ "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
+ "dev": true,
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@babel/template": {
+ "version": "7.12.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
+ "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/parser": "^7.12.7",
+ "@babel/types": "^7.12.7"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.12.9",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz",
+ "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.12.5",
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.11.0",
+ "@babel/parser": "^7.12.7",
+ "@babel/types": "^7.12.7",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.19"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "@babel/types": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
+ "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.19.4",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
+ },
+ "@cnakazawa/watch": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz",
+ "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==",
+ "dev": true,
+ "requires": {
+ "exec-sh": "^0.3.2",
+ "minimist": "^1.2.0"
+ }
+ },
+ "@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
+ },
+ "@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "requires": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "requires": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+ }
+ }
+ },
+ "@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA=="
+ },
+ "@jest/console": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz",
+ "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==",
+ "dev": true,
+ "requires": {
+ "@jest/source-map": "^24.9.0",
+ "chalk": "^2.0.1",
+ "slash": "^2.0.0"
+ }
+ },
+ "@jest/core": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz",
+ "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/reporters": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.8.1",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^27.5.1",
+ "jest-config": "^27.5.1",
+ "jest-haste-map": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-resolve-dependencies": "^27.5.1",
+ "jest-runner": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "jest-watcher": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "rimraf": "^3.0.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
+ },
+ "istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "requires": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ }
+ },
+ "jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.3.2",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ }
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="
+ },
+ "jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "requires": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "requires": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ }
+ }
+ },
+ "@jest/environment": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz",
+ "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==",
+ "requires": {
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "jest-mock": "^27.5.1"
+ },
+ "dependencies": {
+ "@jest/fake-timers": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
+ "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@sinonjs/fake-timers": "^8.0.1",
+ "@types/node": "*",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-mock": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
+ "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "@jest/fake-timers": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz",
+ "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-mock": "^24.9.0"
+ }
+ },
+ "@jest/globals": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz",
+ "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==",
+ "requires": {
+ "@jest/environment": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "expect": "^27.5.1"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "@jest/reporters": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz",
+ "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==",
+ "requires": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^5.1.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-haste-map": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.0",
+ "string-length": "^4.0.1",
+ "terminal-link": "^2.0.0",
+ "v8-to-istanbul": "^8.1.0"
+ },
+ "dependencies": {
+ "@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
+ },
+ "istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "requires": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ }
+ },
+ "jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.3.2",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ }
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="
+ },
+ "jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "requires": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "requires": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ }
+ }
+ },
+ "@jest/source-map": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz",
+ "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.1.15",
+ "source-map": "^0.6.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz",
+ "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/istanbul-lib-coverage": "^2.0.0"
+ }
+ },
+ "@jest/test-sequencer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz",
+ "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==",
+ "requires": {
+ "@jest/test-result": "^27.5.1",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-runtime": "^27.5.1"
+ },
+ "dependencies": {
+ "@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.3.2",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ }
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="
+ },
+ "jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "requires": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "@jest/transform": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz",
+ "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^24.9.0",
+ "babel-plugin-istanbul": "^5.1.0",
+ "chalk": "^2.0.1",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.1.15",
+ "jest-haste-map": "^24.9.0",
+ "jest-regex-util": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "micromatch": "^3.1.10",
+ "pirates": "^4.0.1",
+ "realpath-native": "^1.1.0",
+ "slash": "^2.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "2.4.1"
+ }
+ },
+ "@jest/types": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
+ "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^13.0.0"
+ }
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "dev": true,
+ "peer": true
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "dev": true,
+ "peer": true
+ },
+ "@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+ "dev": true,
+ "peer": true
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ }
+ },
+ "@sideway/address": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
+ "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==",
+ "requires": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "@sideway/formula": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
+ },
+ "@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+ },
+ "@sinonjs/commons": {
+ "version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/fake-timers": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz",
+ "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==",
+ "requires": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "@tootallnate/once": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw=="
+ },
+ "@types/babel__core": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz",
+ "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==",
+ "requires": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "@types/babel__generator": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz",
+ "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==",
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__template": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz",
+ "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==",
+ "requires": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__traverse": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz",
+ "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==",
+ "requires": {
+ "@babel/types": "^7.3.0"
+ }
+ },
+ "@types/eslint": {
+ "version": "8.4.10",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz",
+ "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "@types/eslint-scope": {
+ "version": "3.7.4",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
+ "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
+ "@types/estree": {
+ "version": "0.0.51",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz",
+ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
+ "dev": true,
+ "peer": true
+ },
+ "@types/graceful-fs": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
+ "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/istanbul-lib-coverage": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
+ "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw=="
+ },
+ "@types/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
+ "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "*",
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "18.11.18",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
+ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
+ },
+ "@types/prettier": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz",
+ "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg=="
+ },
+ "@types/stack-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
+ "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==",
+ "dev": true
+ },
+ "@types/yargs": {
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz",
+ "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==",
+ "dev": true,
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "@types/yargs-parser": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz",
+ "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw=="
+ },
+ "@types/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
+ "optional": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@typescript-eslint/experimental-utils": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz",
+ "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.3",
+ "@typescript-eslint/typescript-estree": "1.13.0",
+ "eslint-scope": "^4.0.0"
+ },
+ "dependencies": {
+ "eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz",
+ "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==",
+ "dev": true,
+ "requires": {
+ "lodash.unescape": "4.0.1",
+ "semver": "5.5.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
+ "dev": true
+ }
+ }
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
+ "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/helper-numbers": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
+ "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==",
+ "dev": true,
+ "peer": true
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
+ "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==",
+ "dev": true,
+ "peer": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
+ "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==",
+ "dev": true,
+ "peer": true
+ },
+ "@webassemblyjs/helper-numbers": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
+ "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/floating-point-hex-parser": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
+ "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==",
+ "dev": true,
+ "peer": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
+ "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
+ "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
+ "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
+ "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==",
+ "dev": true,
+ "peer": true
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
+ "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/helper-wasm-section": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-opt": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "@webassemblyjs/wast-printer": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
+ "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
+ "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
+ "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
+ "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true,
+ "peer": true
+ },
+ "@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "dev": true,
+ "peer": true
+ },
+ "abab": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
+ },
+ "acorn": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw=="
+ },
+ "acorn-globals": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
+ "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
+ "requires": {
+ "acorn": "^7.1.1",
+ "acorn-walk": "^7.1.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
+ }
+ }
+ },
+ "acorn-import-assertions": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
+ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
+ "dev": true,
+ "peer": true,
+ "requires": {}
+ },
+ "acorn-jsx": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
+ "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
+ "dev": true,
+ "requires": {}
+ },
+ "acorn-walk": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
+ },
+ "agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "requires": {
+ "debug": "4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "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==",
+ "requires": {
+ "type-fest": "^0.21.3"
+ },
+ "dependencies": {
+ "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=="
+ }
+ }
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
+ "requires": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true
+ },
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true
+ },
+ "axios": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz",
+ "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==",
+ "requires": {
+ "follow-redirects": "^1.14.7"
+ }
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "babel-eslint": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
+ "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0",
+ "eslint-visitor-keys": "^1.0.0",
+ "resolve": "^1.12.0"
+ }
+ },
+ "babel-jest": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz",
+ "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==",
+ "dev": true,
+ "requires": {
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/babel__core": "^7.1.0",
+ "babel-plugin-istanbul": "^5.1.0",
+ "babel-preset-jest": "^24.9.0",
+ "chalk": "^2.4.2",
+ "slash": "^2.0.0"
+ }
+ },
+ "babel-loader": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.1.tgz",
+ "integrity": "sha512-dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw==",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "^2.1.0",
+ "loader-utils": "^1.4.0",
+ "make-dir": "^2.1.0",
+ "pify": "^4.0.1",
+ "schema-utils": "^2.6.5"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ }
+ }
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+ "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
+ "dev": true,
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz",
+ "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "find-up": "^3.0.0",
+ "istanbul-lib-instrument": "^3.3.0",
+ "test-exclude": "^5.2.3"
+ }
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz",
+ "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==",
+ "dev": true,
+ "requires": {
+ "@types/babel__traverse": "^7.0.6"
+ }
+ },
+ "babel-plugin-syntax-decorators": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
+ "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
+ "dev": true
+ },
+ "babel-plugin-transform-decorators-legacy": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.5.tgz",
+ "integrity": "sha512-jYHwjzRXRelYQ1uGm353zNzf3QmtdCfvJbuYTZ4gKveK7M9H1fs3a5AKdY1JUDl0z97E30ukORW1dzhWvsabtA==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-decorators": "^6.1.18",
+ "babel-runtime": "^6.2.0",
+ "babel-template": "^6.3.0"
+ }
+ },
+ "babel-plugin-transform-object-assign": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz",
+ "integrity": "sha1-+Z0vZvGgsNSY40bFNZaEdAyqILo=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-runtime": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
+ "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-preset-current-node-syntax": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
+ "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
+ "requires": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-top-level-await": "^7.8.3"
+ }
+ },
+ "babel-preset-jest": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz",
+ "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "babel-plugin-jest-hoist": "^24.9.0"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ },
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
+ }
+ }
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true
+ }
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
+ },
+ "dependencies": {
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
+ }
+ }
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+ },
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true
+ },
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "browser-process-hrtime": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
+ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
+ },
+ "browserslist": {
+ "version": "4.16.6",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
+ "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001219",
+ "colorette": "^1.2.2",
+ "electron-to-chromium": "^1.3.723",
+ "escalade": "^3.1.1",
+ "node-releases": "^1.1.71"
+ },
+ "dependencies": {
+ "caniuse-lite": {
+ "version": "1.0.30001237",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz",
+ "integrity": "sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw==",
+ "dev": true
+ },
+ "colorette": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
+ "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.752",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz",
+ "integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==",
+ "dev": true
+ },
+ "node-releases": {
+ "version": "1.1.73",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
+ "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
+ "dev": true
+ }
+ }
+ },
+ "bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "requires": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ }
+ },
+ "call-bind": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
+ "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.0"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+ },
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
+ },
+ "capture-exit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz",
+ "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==",
+ "dev": true,
+ "requires": {
+ "rsvp": "^4.8.4"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="
+ },
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+ "dev": true
+ },
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ },
+ "chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "dev": true,
+ "peer": true
+ },
+ "ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
+ },
+ "cjs-module-lexer": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
+ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA=="
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "cli-width": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "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==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
+ }
+ },
+ "clone-deep": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz",
+ "integrity": "sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==",
+ "requires": {
+ "for-own": "^0.1.3",
+ "is-plain-object": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "lazy-cache": "^1.0.3",
+ "shallow-clone": "^0.1.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="
+ },
+ "collect-v8-coverage": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
+ "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg=="
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true
+ },
+ "core-js": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
+ "dev": true
+ },
+ "core-js-compat": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz",
+ "integrity": "sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.14.6",
+ "semver": "7.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+ "dev": true
+ }
+ }
+ },
+ "cross-fetch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
+ "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
+ "requires": {
+ "node-fetch": "2.6.7"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "cssom": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
+ "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw=="
+ },
+ "cssstyle": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
+ "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
+ "requires": {
+ "cssom": "~0.3.6"
+ },
+ "dependencies": {
+ "cssom": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
+ }
+ }
+ },
+ "cwd": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz",
+ "integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==",
+ "requires": {
+ "find-pkg": "^0.1.2",
+ "fs-exists-sync": "^0.1.0"
+ }
+ },
+ "data-urls": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
+ "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
+ "requires": {
+ "abab": "^2.0.3",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^8.0.0"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decimal.js": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
+ },
+ "decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "dev": true
+ },
+ "dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ },
+ "deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ },
+ "detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="
+ },
+ "devtools-protocol": {
+ "version": "0.0.981744",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz",
+ "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg=="
+ },
+ "diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ=="
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "domexception": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
+ "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
+ "requires": {
+ "webidl-conversions": "^5.0.0"
+ },
+ "dependencies": {
+ "webidl-conversions": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
+ "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA=="
+ }
+ }
+ },
+ "emittery": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz",
+ "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg=="
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "dev": true
+ },
+ "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==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "5.12.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz",
+ "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
+ "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.2",
+ "is-regex": "^1.1.1",
+ "object-inspect": "^1.8.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.1",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
+ }
+ },
+ "es-module-lexer": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
+ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
+ "dev": true,
+ "peer": true
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "escodegen": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz",
+ "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
+ "requires": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
+ }
+ }
+ },
+ "eslint": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
+ "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.10.0",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^1.4.3",
+ "eslint-visitor-keys": "^1.1.0",
+ "espree": "^6.1.2",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^7.0.0",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.14",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.3",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^6.1.2",
+ "strip-ansi": "^5.2.0",
+ "strip-json-comments": "^3.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.8.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-jest": {
+ "version": "22.21.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.21.0.tgz",
+ "integrity": "sha512-OaqnSS7uBgcGiqXUiEnjoqxPNKvR4JWG5mSRkzVoR6+vDwlqqp11beeql1hYs0HTbdhiwrxWLxbX0Vx7roG3Ew==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/experimental-utils": "^1.13.0"
+ }
+ },
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true
+ },
+ "espree": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
+ "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+ "dev": true,
+ "requires": {
+ "acorn": "^7.1.1",
+ "acorn-jsx": "^5.2.0",
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true
+ }
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "esquery": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
+ "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true
+ }
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+ },
+ "events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "peer": true
+ },
+ "exec-sh": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz",
+ "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==",
+ "dev": true
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ=="
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "expand-tilde": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
+ "integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==",
+ "requires": {
+ "os-homedir": "^1.0.1"
+ }
+ },
+ "expect": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz",
+ "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "expect-puppeteer": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-6.1.1.tgz",
+ "integrity": "sha512-cnQF96qdoEcOD63j5NQMc0RtW9WRMW/WHKXEKsuDQ2tszhVH3qC7zkXXS4D0LTt9qCB3DEExioqylsQXvqPrUw=="
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "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==",
+ "requires": {
+ "@types/yauzl": "^2.9.1",
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "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==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
+ "fb-watchman": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
+ "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==",
+ "requires": {
+ "bser": "2.1.1"
+ }
+ },
+ "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==",
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
+ "file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "dev": true,
+ "optional": true
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ }
+ },
+ "find-file-up": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz",
+ "integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==",
+ "requires": {
+ "fs-exists-sync": "^0.1.0",
+ "resolve-dir": "^0.1.0"
+ }
+ },
+ "find-pkg": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz",
+ "integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==",
+ "requires": {
+ "find-file-up": "^0.1.2"
+ }
+ },
+ "find-process": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz",
+ "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==",
+ "requires": {
+ "chalk": "^4.0.0",
+ "commander": "^5.1.0",
+ "debug": "^4.1.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "dev": true
+ },
+ "follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==",
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ },
+ "form-data": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
+ "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
+ },
+ "fs-exists-sync": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
+ "integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg=="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+ },
+ "get-intrinsic": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz",
+ "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="
+ },
+ "get-stdin": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz",
+ "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g="
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "dev": true,
+ "peer": true
+ },
+ "global-modules": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz",
+ "integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==",
+ "requires": {
+ "global-prefix": "^0.1.4",
+ "is-windows": "^0.2.0"
+ },
+ "dependencies": {
+ "is-windows": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
+ "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q=="
+ }
+ }
+ },
+ "global-prefix": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz",
+ "integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==",
+ "requires": {
+ "homedir-polyfill": "^1.0.0",
+ "ini": "^1.3.4",
+ "is-windows": "^0.2.0",
+ "which": "^1.2.12"
+ },
+ "dependencies": {
+ "is-windows": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
+ "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q=="
+ }
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
+ },
+ "glur": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/glur/-/glur-1.1.2.tgz",
+ "integrity": "sha1-8g6jbbEDv8KSNDkh8fkeg8NGdok="
+ },
+ "graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ }
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "requires": {
+ "parse-passwd": "^1.0.0"
+ }
+ },
+ "hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
+ },
+ "html-encoding-sniffer": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
+ "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
+ "requires": {
+ "whatwg-encoding": "^1.0.5"
+ }
+ },
+ "html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
+ },
+ "http-proxy-agent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
+ "requires": {
+ "@tootallnate/once": "1",
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "requires": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz",
+ "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ }
+ }
+ },
+ "import-local": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
+ "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
+ "requires": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ }
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
+ "inquirer": {
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
+ "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^3.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.19",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.4.0",
+ "rxjs": "^6.6.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "is-callable": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
+ "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
+ "dev": true
+ },
+ "is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "dev": true,
+ "requires": {
+ "ci-info": "^2.0.0"
+ }
+ },
+ "is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
+ "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
+ },
+ "is-regex": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
+ "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "istanbul-lib-coverage": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
+ "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+ "dev": true
+ },
+ "istanbul-lib-instrument": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
+ "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
+ "dev": true,
+ "requires": {
+ "@babel/generator": "^7.4.0",
+ "@babel/parser": "^7.4.3",
+ "@babel/template": "^7.4.0",
+ "@babel/traverse": "^7.4.3",
+ "@babel/types": "^7.4.0",
+ "istanbul-lib-coverage": "^2.0.5",
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
+ "requires": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^3.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
+ },
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "requires": {
+ "semver": "^6.0.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "requires": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "istanbul-reports": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
+ "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
+ "requires": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ }
+ },
+ "jest": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz",
+ "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==",
+ "requires": {
+ "@jest/core": "^27.5.1",
+ "import-local": "^3.0.2",
+ "jest-cli": "^27.5.1"
+ }
+ },
+ "jest-changed-files": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz",
+ "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "execa": "^5.0.0",
+ "throat": "^6.0.1"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ },
+ "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==",
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+ },
+ "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==",
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "jest-circus": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz",
+ "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==",
+ "requires": {
+ "@jest/environment": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^0.7.0",
+ "expect": "^27.5.1",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3",
+ "throat": "^6.0.1"
+ },
+ "dependencies": {
+ "@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "jest-cli": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz",
+ "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==",
+ "requires": {
+ "@jest/core": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "import-local": "^3.0.2",
+ "jest-config": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "prompts": "^2.0.1",
+ "yargs": "^16.2.0"
+ },
+ "dependencies": {
+ "@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "jest-config": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz",
+ "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==",
+ "requires": {
+ "@babel/core": "^7.8.0",
+ "@jest/test-sequencer": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "babel-jest": "^27.5.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.1",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^27.5.1",
+ "jest-environment-jsdom": "^27.5.1",
+ "jest-environment-node": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "jest-jasmine2": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-runner": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "babel-jest": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz",
+ "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==",
+ "requires": {
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^27.5.1",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^3.0.0"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ }
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz",
+ "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==",
+ "requires": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.0.0",
+ "@types/babel__traverse": "^7.0.6"
+ }
+ },
+ "babel-preset-jest": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz",
+ "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==",
+ "requires": {
+ "babel-plugin-jest-hoist": "^27.5.1",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
+ },
+ "istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "requires": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ }
+ },
+ "jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.3.2",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ }
+ },
+ "jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="
+ },
+ "jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "requires": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "requires": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ }
+ }
+ },
+ "jest-dev-server": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-6.2.0.tgz",
+ "integrity": "sha512-ZWh8CuvxwjhYfvw4tGeftziqIvw/26R6AG3OTgNTQeXul8aZz48RQjDpnlDwnWX53jxJJl9fcigqIdSU5lYZuw==",
+ "requires": {
+ "chalk": "^4.1.2",
+ "cwd": "^0.10.0",
+ "find-process": "^1.4.7",
+ "prompts": "^2.4.2",
+ "spawnd": "^6.2.0",
+ "tree-kill": "^1.2.2",
+ "wait-on": "^6.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "jest-diff": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
+ "requires": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "jest-docblock": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz",
+ "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==",
+ "requires": {
+ "detect-newline": "^3.0.0"
+ }
+ },
+ "jest-each": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz",
+ "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "jest-environment-jsdom": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz",
+ "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==",
+ "requires": {
+ "@jest/environment": "^27.5.1",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jsdom": "^16.6.0"
+ },
+ "dependencies": {
+ "@jest/fake-timers": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
+ "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@sinonjs/fake-timers": "^8.0.1",
+ "@types/node": "*",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-mock": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
+ "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "jest-environment-node": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz",
+ "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==",
+ "requires": {
+ "@jest/environment": "^27.5.1",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
+ },
+ "dependencies": {
+ "@jest/fake-timers": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
+ "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@sinonjs/fake-timers": "^8.0.1",
+ "@types/node": "*",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-mock": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
+ "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "jest-environment-puppeteer": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-puppeteer/-/jest-environment-puppeteer-6.2.0.tgz",
+ "integrity": "sha512-a/oSu6dO9D+XoDDe3ZY/0Sk79Jl2FcJl7Q0D+3x22l1eWNOYe4ikXnPGhtmNZ3mJIpuAVIX6LytA8EraOk/aqQ==",
+ "requires": {
+ "chalk": "^4.1.2",
+ "cwd": "^0.10.0",
+ "jest-dev-server": "^6.2.0",
+ "jest-environment-node": "^27.5.1",
+ "merge-deep": "^3.0.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="
+ },
+ "jest-haste-map": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz",
+ "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^24.9.0",
+ "anymatch": "^2.0.0",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^1.2.7",
+ "graceful-fs": "^4.1.15",
+ "invariant": "^2.2.4",
+ "jest-serializer": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-worker": "^24.9.0",
+ "micromatch": "^3.1.10",
+ "sane": "^4.0.3",
+ "walker": "^1.0.7"
+ }
+ },
+ "jest-image-snapshot": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/jest-image-snapshot/-/jest-image-snapshot-4.5.1.tgz",
+ "integrity": "sha512-0YkgupgkkCx0wIZkxvqs/oNiUT0X0d2WTpUhaAp+Dy6CpqBUZMRTIZo4KR1f+dqmx6WXrLCvecjnHLIsLkI+gQ==",
+ "requires": {
+ "chalk": "^1.1.3",
+ "get-stdin": "^5.0.1",
+ "glur": "^1.1.2",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "pixelmatch": "^5.1.0",
+ "pngjs": "^3.4.0",
+ "rimraf": "^2.6.2",
+ "ssim.js": "^3.1.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ }
+ }
+ },
+ "jest-jasmine2": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz",
+ "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==",
+ "requires": {
+ "@jest/environment": "^27.5.1",
+ "@jest/source-map": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "expect": "^27.5.1",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "pretty-format": "^27.5.1",
+ "throat": "^6.0.1"
+ },
+ "dependencies": {
+ "@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/source-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz",
+ "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==",
+ "requires": {
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9",
+ "source-map": "^0.6.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "jest-leak-detector": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz",
+ "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==",
+ "requires": {
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
+ "requires": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "jest-message-util": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz",
+ "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^2.0.1",
+ "micromatch": "^3.1.10",
+ "slash": "^2.0.0",
+ "stack-utils": "^1.0.1"
+ }
+ },
+ "jest-mock": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz",
+ "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^24.9.0"
+ }
+ },
+ "jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "requires": {}
+ },
+ "jest-puppeteer": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/jest-puppeteer/-/jest-puppeteer-6.2.0.tgz",
+ "integrity": "sha512-4Ynkgcf9FkHlTNEpdsojGLb3KtsToWqjO6SCigxb9Qj3HzIqhzJzNbDJ/XhiciNDpqDe6KHW9sZ6fjHphNLr6g==",
+ "requires": {
+ "expect-puppeteer": "^6.1.1",
+ "jest-environment-puppeteer": "^6.2.0"
+ }
+ },
+ "jest-regex-util": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz",
+ "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==",
+ "dev": true
+ },
+ "jest-resolve": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz",
+ "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^1.1.0",
+ "slash": "^3.0.0"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.3.2",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ }
+ },
+ "jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="
+ },
+ "jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "requires": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "jest-resolve-dependencies": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz",
+ "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-snapshot": "^27.5.1"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "jest-runner": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz",
+ "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/environment": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.8.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^27.5.1",
+ "jest-environment-jsdom": "^27.5.1",
+ "jest-environment-node": "^27.5.1",
+ "jest-haste-map": "^27.5.1",
+ "jest-leak-detector": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "source-map-support": "^0.5.6",
+ "throat": "^6.0.1"
+ },
+ "dependencies": {
+ "@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
+ },
+ "istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "requires": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ }
+ },
+ "jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.3.2",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ }
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="
+ },
+ "jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "requires": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
- }
- }
- },
- "istanbul-lib-report": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
- "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
- "requires": {
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "supports-color": "^6.1.0"
- },
- "dependencies": {
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
"supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"requires": {
- "has-flag": "^3.0.0"
+ "has-flag": "^4.0.0"
}
- }
- }
- },
- "istanbul-lib-source-maps": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
- "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
- "requires": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "rimraf": "^2.6.3",
- "source-map": "^0.6.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ },
+ "test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"requires": {
- "ms": "2.1.2"
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
}
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "istanbul-reports": {
- "version": "2.2.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz",
- "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==",
- "requires": {
- "html-escaper": "^2.0.0"
- }
- },
- "jest": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz",
- "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==",
- "requires": {
- "import-local": "^2.0.0",
- "jest-cli": "^24.9.0"
- },
- "dependencies": {
- "jest-cli": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz",
- "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==",
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
"requires": {
- "@jest/core": "^24.9.0",
- "@jest/test-result": "^24.9.0",
- "@jest/types": "^24.9.0",
- "chalk": "^2.0.1",
- "exit": "^0.1.2",
- "import-local": "^2.0.0",
- "is-ci": "^2.0.0",
- "jest-config": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-validate": "^24.9.0",
- "prompts": "^2.0.1",
- "realpath-native": "^1.1.0",
- "yargs": "^13.3.0"
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
}
}
}
},
- "jest-changed-files": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz",
- "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==",
- "requires": {
- "@jest/types": "^24.9.0",
- "execa": "^1.0.0",
- "throat": "^4.0.0"
- }
- },
- "jest-config": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz",
- "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==",
- "requires": {
- "@babel/core": "^7.1.0",
- "@jest/test-sequencer": "^24.9.0",
- "@jest/types": "^24.9.0",
- "babel-jest": "^24.9.0",
- "chalk": "^2.0.1",
- "glob": "^7.1.1",
- "jest-environment-jsdom": "^24.9.0",
- "jest-environment-node": "^24.9.0",
- "jest-get-type": "^24.9.0",
- "jest-jasmine2": "^24.9.0",
- "jest-regex-util": "^24.3.0",
- "jest-resolve": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-validate": "^24.9.0",
- "micromatch": "^3.1.10",
- "pretty-format": "^24.9.0",
- "realpath-native": "^1.1.0"
- }
- },
- "jest-dev-server": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-4.4.0.tgz",
- "integrity": "sha512-STEHJ3iPSC8HbrQ3TME0ozGX2KT28lbT4XopPxUm2WimsX3fcB3YOptRh12YphQisMhfqNSNTZUmWyT3HEXS2A==",
- "requires": {
- "chalk": "^3.0.0",
- "cwd": "^0.10.0",
- "find-process": "^1.4.3",
- "prompts": "^2.3.0",
- "spawnd": "^4.4.0",
- "tree-kill": "^1.2.2",
- "wait-on": "^3.3.0"
+ "jest-runtime": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz",
+ "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==",
+ "requires": {
+ "@jest/environment": "^27.5.1",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/globals": "^27.5.1",
+ "@jest/source-map": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^1.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "execa": "^5.0.0",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
},
"dependencies": {
+ "@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/fake-timers": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
+ "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@sinonjs/fake-timers": "^8.0.1",
+ "@types/node": "*",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
+ }
+ },
+ "@jest/source-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz",
+ "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==",
+ "requires": {
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9",
+ "source-map": "^0.6.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -4106,15 +25304,49 @@
"color-convert": "^2.0.1"
}
},
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
"chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -4128,122 +25360,242 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
+ "get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
+ },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
- "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==",
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
+ },
+ "istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
"requires": {
- "has-flag": "^4.0.0"
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
}
- }
- }
- },
- "jest-diff": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz",
- "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==",
- "requires": {
- "chalk": "^2.0.1",
- "diff-sequences": "^24.9.0",
- "jest-get-type": "^24.9.0",
- "pretty-format": "^24.9.0"
- }
- },
- "jest-docblock": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz",
- "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==",
- "requires": {
- "detect-newline": "^2.1.0"
- }
- },
- "jest-each": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz",
- "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==",
- "requires": {
- "@jest/types": "^24.9.0",
- "chalk": "^2.0.1",
- "jest-get-type": "^24.9.0",
- "jest-util": "^24.9.0",
- "pretty-format": "^24.9.0"
- }
- },
- "jest-environment-jsdom": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz",
- "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==",
- "requires": {
- "@jest/environment": "^24.9.0",
- "@jest/fake-timers": "^24.9.0",
- "@jest/types": "^24.9.0",
- "jest-mock": "^24.9.0",
- "jest-util": "^24.9.0",
- "jsdom": "^11.5.1"
- }
- },
- "jest-environment-node": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz",
- "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==",
- "requires": {
- "@jest/environment": "^24.9.0",
- "@jest/fake-timers": "^24.9.0",
- "@jest/types": "^24.9.0",
- "jest-mock": "^24.9.0",
- "jest-util": "^24.9.0"
- }
- },
- "jest-environment-puppeteer": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/jest-environment-puppeteer/-/jest-environment-puppeteer-4.4.0.tgz",
- "integrity": "sha512-iV8S8+6qkdTM6OBR/M9gKywEk8GDSOe05hspCs5D8qKSwtmlUfdtHfB4cakdc68lC6YfK3AUsLirpfgodCHjzQ==",
- "requires": {
- "chalk": "^3.0.0",
- "cwd": "^0.10.0",
- "jest-dev-server": "^4.4.0",
- "merge-deep": "^3.0.2"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ },
+ "jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.3.2",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ }
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-mock": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
+ "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*"
+ }
+ },
+ "jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="
+ },
+ "jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "requires": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "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==",
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "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==",
"requires": {
- "color-convert": "^2.0.1"
+ "shebang-regex": "^3.0.0"
}
},
- "chalk": {
+ "shebang-regex": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
},
- "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==",
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
"requires": {
- "color-name": "~1.1.4"
+ "escape-string-regexp": "^2.0.0"
}
},
- "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=="
- },
- "has-flag": {
+ "strip-bom": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="
},
"supports-color": {
"version": "7.2.0",
@@ -4252,278 +25604,407 @@
"requires": {
"has-flag": "^4.0.0"
}
- }
- }
- },
- "jest-get-type": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz",
- "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q=="
- },
- "jest-haste-map": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz",
- "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==",
- "requires": {
- "@jest/types": "^24.9.0",
- "anymatch": "^2.0.0",
- "fb-watchman": "^2.0.0",
- "fsevents": "^1.2.7",
- "graceful-fs": "^4.1.15",
- "invariant": "^2.2.4",
- "jest-serializer": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-worker": "^24.9.0",
- "micromatch": "^3.1.10",
- "sane": "^4.0.3",
- "walker": "^1.0.7"
- }
- },
- "jest-image-snapshot": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/jest-image-snapshot/-/jest-image-snapshot-4.2.0.tgz",
- "integrity": "sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ==",
- "requires": {
- "chalk": "^1.1.3",
- "get-stdin": "^5.0.1",
- "glur": "^1.1.2",
- "lodash": "^4.17.4",
- "mkdirp": "^0.5.1",
- "pixelmatch": "^5.1.0",
- "pngjs": "^3.4.0",
- "rimraf": "^2.6.2",
- "ssim.js": "^3.1.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ "test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "requires": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ }
},
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
+ "is-number": "^7.0.0"
}
},
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"requires": {
- "ansi-regex": "^2.0.0"
+ "isexe": "^2.0.0"
}
},
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
}
}
},
- "jest-jasmine2": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz",
- "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==",
- "requires": {
- "@babel/traverse": "^7.1.0",
- "@jest/environment": "^24.9.0",
- "@jest/test-result": "^24.9.0",
- "@jest/types": "^24.9.0",
- "chalk": "^2.0.1",
- "co": "^4.6.0",
- "expect": "^24.9.0",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^24.9.0",
- "jest-matcher-utils": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-runtime": "^24.9.0",
- "jest-snapshot": "^24.9.0",
- "jest-util": "^24.9.0",
- "pretty-format": "^24.9.0",
- "throat": "^4.0.0"
- }
- },
- "jest-leak-detector": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz",
- "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==",
- "requires": {
- "jest-get-type": "^24.9.0",
- "pretty-format": "^24.9.0"
- }
- },
- "jest-matcher-utils": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz",
- "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==",
- "requires": {
- "chalk": "^2.0.1",
- "jest-diff": "^24.9.0",
- "jest-get-type": "^24.9.0",
- "pretty-format": "^24.9.0"
- }
- },
- "jest-message-util": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz",
- "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==",
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "@jest/test-result": "^24.9.0",
- "@jest/types": "^24.9.0",
- "@types/stack-utils": "^1.0.1",
- "chalk": "^2.0.1",
- "micromatch": "^3.1.10",
- "slash": "^2.0.0",
- "stack-utils": "^1.0.1"
- }
- },
- "jest-mock": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz",
- "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==",
- "requires": {
- "@jest/types": "^24.9.0"
- }
- },
- "jest-pnp-resolver": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
- "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w=="
- },
- "jest-puppeteer": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/jest-puppeteer/-/jest-puppeteer-4.4.0.tgz",
- "integrity": "sha512-ZaiCTlPZ07B9HW0erAWNX6cyzBqbXMM7d2ugai4epBDKpKvRDpItlRQC6XjERoJELKZsPziFGS0OhhUvTvQAXA==",
- "requires": {
- "expect-puppeteer": "^4.4.0",
- "jest-environment-puppeteer": "^4.4.0"
- }
- },
- "jest-regex-util": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz",
- "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA=="
- },
- "jest-resolve": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz",
- "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==",
- "requires": {
- "@jest/types": "^24.9.0",
- "browser-resolve": "^1.11.3",
- "chalk": "^2.0.1",
- "jest-pnp-resolver": "^1.2.1",
- "realpath-native": "^1.1.0"
- }
- },
- "jest-resolve-dependencies": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz",
- "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==",
- "requires": {
- "@jest/types": "^24.9.0",
- "jest-regex-util": "^24.3.0",
- "jest-snapshot": "^24.9.0"
- }
- },
- "jest-runner": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz",
- "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==",
- "requires": {
- "@jest/console": "^24.7.1",
- "@jest/environment": "^24.9.0",
- "@jest/test-result": "^24.9.0",
- "@jest/types": "^24.9.0",
- "chalk": "^2.4.2",
- "exit": "^0.1.2",
- "graceful-fs": "^4.1.15",
- "jest-config": "^24.9.0",
- "jest-docblock": "^24.3.0",
- "jest-haste-map": "^24.9.0",
- "jest-jasmine2": "^24.9.0",
- "jest-leak-detector": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-resolve": "^24.9.0",
- "jest-runtime": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-worker": "^24.6.0",
- "source-map-support": "^0.5.6",
- "throat": "^4.0.0"
- }
- },
- "jest-runtime": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz",
- "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==",
- "requires": {
- "@jest/console": "^24.7.1",
- "@jest/environment": "^24.9.0",
- "@jest/source-map": "^24.3.0",
- "@jest/transform": "^24.9.0",
- "@jest/types": "^24.9.0",
- "@types/yargs": "^13.0.0",
- "chalk": "^2.0.1",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.1.15",
- "jest-config": "^24.9.0",
- "jest-haste-map": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-mock": "^24.9.0",
- "jest-regex-util": "^24.3.0",
- "jest-resolve": "^24.9.0",
- "jest-snapshot": "^24.9.0",
- "jest-util": "^24.9.0",
- "jest-validate": "^24.9.0",
- "realpath-native": "^1.1.0",
- "slash": "^2.0.0",
- "strip-bom": "^3.0.0",
- "yargs": "^13.3.0"
- }
- },
"jest-serializer": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz",
- "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ=="
+ "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==",
+ "dev": true
},
"jest-snapshot": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz",
- "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==",
- "requires": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz",
+ "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==",
+ "requires": {
+ "@babel/core": "^7.7.2",
+ "@babel/generator": "^7.7.2",
+ "@babel/plugin-syntax-typescript": "^7.7.2",
+ "@babel/traverse": "^7.7.2",
"@babel/types": "^7.0.0",
- "@jest/types": "^24.9.0",
- "chalk": "^2.0.1",
- "expect": "^24.9.0",
- "jest-diff": "^24.9.0",
- "jest-get-type": "^24.9.0",
- "jest-matcher-utils": "^24.9.0",
- "jest-message-util": "^24.9.0",
- "jest-resolve": "^24.9.0",
- "mkdirp": "^0.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/babel__traverse": "^7.0.4",
+ "@types/prettier": "^2.1.5",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^27.5.1",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "jest-haste-map": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
"natural-compare": "^1.4.0",
- "pretty-format": "^24.9.0",
- "semver": "^6.2.0"
+ "pretty-format": "^27.5.1",
+ "semver": "^7.3.2"
},
"dependencies": {
+ "@jest/transform": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^27.5.1",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "^3.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
+ },
+ "istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "requires": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "jest-haste-map": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/graceful-fs": "^4.1.2",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.3.2",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ }
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="
+ },
+ "jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "requires": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
"semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "requires": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
}
}
},
@@ -4531,6 +26012,7 @@
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz",
"integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==",
+ "dev": true,
"requires": {
"@jest/console": "^24.9.0",
"@jest/fake-timers": "^24.9.0",
@@ -4547,36 +26029,302 @@
}
},
"jest-validate": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz",
- "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz",
+ "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==",
"requires": {
- "@jest/types": "^24.9.0",
- "camelcase": "^5.3.1",
- "chalk": "^2.0.1",
- "jest-get-type": "^24.9.0",
+ "@jest/types": "^27.5.1",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^27.5.1",
"leven": "^3.1.0",
- "pretty-format": "^24.9.0"
+ "pretty-format": "^27.5.1"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
}
},
"jest-watcher": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz",
- "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz",
+ "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==",
"requires": {
- "@jest/test-result": "^24.9.0",
- "@jest/types": "^24.9.0",
- "@types/yargs": "^13.0.0",
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.0.1",
- "jest-util": "^24.9.0",
- "string-length": "^2.0.0"
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "jest-util": "^27.5.1",
+ "string-length": "^4.0.1"
+ },
+ "dependencies": {
+ "@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/test-result": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
+ "requires": {
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ },
+ "@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "ci-info": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w=="
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "jest-message-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^27.5.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "requires": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
}
},
"jest-worker": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
"integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
+ "dev": true,
"requires": {
"merge-stream": "^2.0.0",
"supports-color": "^6.1.0"
@@ -4586,12 +26334,25 @@
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
"integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
"requires": {
"has-flag": "^3.0.0"
}
}
}
},
+ "joi": {
+ "version": "17.7.0",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz",
+ "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==",
+ "requires": {
+ "@hapi/hoek": "^9.0.0",
+ "@hapi/topo": "^5.0.0",
+ "@sideway/address": "^4.1.3",
+ "@sideway/formula": "^3.0.0",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -4601,47 +26362,42 @@
"version": "3.14.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
"integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
- "dev": true,
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
},
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
- },
"jsdom": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz",
- "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==",
- "requires": {
- "abab": "^2.0.0",
- "acorn": "^5.5.3",
- "acorn-globals": "^4.1.0",
- "array-equal": "^1.0.0",
- "cssom": ">= 0.3.2 < 0.4.0",
- "cssstyle": "^1.0.0",
- "data-urls": "^1.0.0",
- "domexception": "^1.0.1",
- "escodegen": "^1.9.1",
- "html-encoding-sniffer": "^1.0.2",
- "left-pad": "^1.3.0",
- "nwsapi": "^2.0.7",
- "parse5": "4.0.0",
- "pn": "^1.1.0",
- "request": "^2.87.0",
- "request-promise-native": "^1.0.5",
- "sax": "^1.2.4",
- "symbol-tree": "^3.2.2",
- "tough-cookie": "^2.3.4",
- "w3c-hr-time": "^1.0.1",
- "webidl-conversions": "^4.0.2",
- "whatwg-encoding": "^1.0.3",
- "whatwg-mimetype": "^2.1.0",
- "whatwg-url": "^6.4.1",
- "ws": "^5.2.0",
+ "version": "16.7.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz",
+ "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==",
+ "requires": {
+ "abab": "^2.0.5",
+ "acorn": "^8.2.4",
+ "acorn-globals": "^6.0.0",
+ "cssom": "^0.4.4",
+ "cssstyle": "^2.3.0",
+ "data-urls": "^2.0.0",
+ "decimal.js": "^10.2.1",
+ "domexception": "^2.0.1",
+ "escodegen": "^2.0.0",
+ "form-data": "^3.0.0",
+ "html-encoding-sniffer": "^2.0.1",
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "is-potential-custom-element-name": "^1.0.1",
+ "nwsapi": "^2.2.0",
+ "parse5": "6.0.1",
+ "saxes": "^5.0.1",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^4.0.0",
+ "w3c-hr-time": "^1.0.2",
+ "w3c-xmlserializer": "^2.0.0",
+ "webidl-conversions": "^6.1.0",
+ "whatwg-encoding": "^1.0.5",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^8.5.0",
+ "ws": "^7.4.6",
"xml-name-validator": "^3.0.0"
}
},
@@ -4653,52 +26409,36 @@
"json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
},
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
},
"json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
"integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
- "dev": true
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
- },
- "json5": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
- "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
- "requires": {
- "minimist": "^1.2.5"
- }
+ "dev": true
},
- "jsprim": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.2.3",
- "verror": "1.10.0"
- }
+ "json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
},
"kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
},
"kleur": {
"version": "3.0.3",
@@ -4708,12 +26448,7 @@
"lazy-cache": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
- },
- "left-pad": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
- "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA=="
+ "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ=="
},
"leven": {
"version": "3.1.0",
@@ -4729,10 +26464,16 @@
"type-check": "~0.3.2"
}
},
+ "lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
+ },
"load-json-file": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
"integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
"requires": {
"graceful-fs": "^4.1.2",
"parse-json": "^4.0.0",
@@ -4740,10 +26481,17 @@
"strip-bom": "^3.0.0"
}
},
+ "loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "dev": true,
+ "peer": true
+ },
"loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
@@ -4752,9 +26500,9 @@
},
"dependencies": {
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
@@ -4766,20 +26514,16 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
}
},
"lodash": {
- "version": "4.17.20",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
- "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
- },
- "lodash.sortby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"lodash.unescape": {
"version": "4.0.1",
@@ -4791,14 +26535,24 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
"requires": {
"js-tokens": "^3.0.0 || ^4.0.0"
}
},
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
"make-dir": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
"integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
"requires": {
"pify": "^4.0.1",
"semver": "^5.6.0"
@@ -4807,7 +26561,8 @@
"pify": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
}
}
},
@@ -4822,20 +26577,22 @@
"map-cache": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true
},
"map-visit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
"integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
"requires": {
"object-visit": "^1.0.0"
}
},
"merge-deep": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz",
- "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz",
+ "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==",
"requires": {
"arr-union": "^3.1.0",
"clone-deep": "^0.2.4",
@@ -4845,7 +26602,7 @@
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
"requires": {
"is-buffer": "^1.1.5"
}
@@ -4861,6 +26618,7 @@
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
"requires": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -4877,11 +26635,6 @@
"to-regex": "^3.0.2"
}
},
- "mime": {
- "version": "2.4.6",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
- "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA=="
- },
"mime-db": {
"version": "1.44.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
@@ -4898,26 +26651,26 @@
"mimic-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
},
"minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"mixin-deep": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
"integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dev": true,
"requires": {
"for-in": "^1.0.2",
"is-extendable": "^1.0.1"
@@ -4927,6 +26680,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
"requires": {
"is-plain-object": "^2.0.4"
}
@@ -4936,7 +26690,7 @@
"mixin-object": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
- "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
+ "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==",
"requires": {
"for-in": "^0.1.3",
"is-extendable": "^0.1.1"
@@ -4945,7 +26699,7 @@
"for-in": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
- "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE="
+ "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g=="
}
}
},
@@ -4957,20 +26711,16 @@
"minimist": "^1.2.5"
}
},
+ "mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+ },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "msbuild": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/msbuild/-/msbuild-1.1.3.tgz",
- "integrity": "sha512-oRQkgexmys69ox0gTRc4KdecFtzMBRNMwMyaJhwQggCnYQRjdecI1tyEdiI3KiDOBwtFVFcjpUCbYtiLQGsIHQ==",
- "requires": {
- "async": "*",
- "colors": "*",
- "events": "*"
- }
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
},
"mute-stream": {
"version": "0.0.8",
@@ -4982,12 +26732,14 @@
"version": "2.14.2",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
"integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==",
+ "dev": true,
"optional": true
},
"nanomatch": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
"integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
"requires": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -5007,43 +26759,58 @@
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
},
+ "neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true,
+ "peer": true
+ },
"nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true
+ },
+ "node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "requires": {
+ "whatwg-url": "^5.0.0"
+ },
+ "dependencies": {
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "requires": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ }
+ }
},
"node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
"integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs="
},
- "node-modules-regexp": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz",
- "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA="
- },
- "node-notifier": {
- "version": "5.4.3",
- "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz",
- "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==",
- "requires": {
- "growly": "^1.3.0",
- "is-wsl": "^1.1.0",
- "semver": "^5.5.0",
- "shellwords": "^0.1.1",
- "which": "^1.3.0"
- }
- },
- "node-releases": {
- "version": "1.1.67",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz",
- "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==",
- "dev": true
- },
"normalize-package-data": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
"requires": {
"hosted-git-info": "^2.1.4",
"resolve": "^1.10.0",
@@ -5055,6 +26822,7 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
"requires": {
"remove-trailing-separator": "^1.0.1"
}
@@ -5063,24 +26831,21 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
"requires": {
"path-key": "^2.0.0"
}
},
"nwsapi": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
- "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ=="
- },
- "oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz",
+ "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw=="
},
"object-copy": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
"integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
"requires": {
"copy-descriptor": "^0.1.0",
"define-property": "^0.2.5",
@@ -5091,6 +26856,7 @@
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
"requires": {
"is-descriptor": "^0.1.0"
}
@@ -5099,6 +26865,7 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -5108,17 +26875,20 @@
"object-inspect": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
- "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA=="
+ "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==",
+ "dev": true
},
"object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
},
"object-visit": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
"integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
"requires": {
"isobject": "^3.0.0"
}
@@ -5127,6 +26897,7 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
"integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.0",
"define-properties": "^1.1.3",
@@ -5138,6 +26909,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz",
"integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==",
+ "dev": true,
"requires": {
"define-properties": "^1.1.3",
"es-abstract": "^1.17.0-next.1"
@@ -5147,6 +26919,7 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
"requires": {
"isobject": "^3.0.1"
}
@@ -5163,7 +26936,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
"requires": {
"mimic-fn": "^2.1.0"
}
@@ -5184,7 +26956,7 @@
"os-homedir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ=="
},
"os-tmpdir": {
"version": "1.0.2",
@@ -5192,18 +26964,11 @@
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true
},
- "p-each-series": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz",
- "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=",
- "requires": {
- "p-reduce": "^1.0.0"
- }
- },
"p-finally": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
},
"p-limit": {
"version": "2.3.0",
@@ -5217,15 +26982,11 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
"requires": {
"p-limit": "^2.0.0"
}
},
- "p-reduce": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz",
- "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo="
- },
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
@@ -5244,6 +27005,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
"requires": {
"error-ex": "^1.3.1",
"json-parse-better-errors": "^1.0.1"
@@ -5252,22 +27014,24 @@
"parse-passwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
- "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY="
+ "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q=="
},
"parse5": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
- "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA=="
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
},
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
},
"path-is-absolute": {
"version": "1.0.1",
@@ -5277,17 +27041,19 @@
"path-key": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
},
"path-parse": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"path-type": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
"integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
"requires": {
"pify": "^3.0.0"
}
@@ -5295,25 +27061,23 @@
"pend": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="
},
- "performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
},
"pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
},
"pirates": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz",
- "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==",
- "requires": {
- "node-modules-regexp": "^1.0.0"
- }
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
+ "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ=="
},
"pixelmatch": {
"version": "5.2.1",
@@ -5334,15 +27098,11 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
"integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
"requires": {
"find-up": "^3.0.0"
}
},
- "pn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
- "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA=="
- },
"pngjs": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
@@ -5351,7 +27111,8 @@
"posix-character-classes": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true
},
"prelude-ls": {
"version": "1.1.2",
@@ -5359,30 +27120,36 @@
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
},
"pretty-format": {
- "version": "24.9.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
- "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
+ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
"requires": {
- "@jest/types": "^24.9.0",
- "ansi-regex": "^4.0.0",
- "ansi-styles": "^3.2.0",
- "react-is": "^16.8.4"
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^17.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="
+ }
}
},
- "process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
"progress": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
},
"prompts": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz",
- "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==",
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
"requires": {
"kleur": "^3.0.3",
"sisteransi": "^1.0.5"
@@ -5394,9 +27161,9 @@
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"psl": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
- "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
},
"pump": {
"version": "3.0.0",
@@ -5413,57 +27180,116 @@
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"puppeteer": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.20.0.tgz",
- "integrity": "sha512-bt48RDBy2eIwZPrkgbcwHtb51mj2nKvHOPMaSH2IsWiv7lOG9k9zhaRzpDZafrk05ajMc3cu+lSQYYOfH2DkVQ==",
- "requires": {
- "debug": "^4.1.0",
- "extract-zip": "^1.6.6",
- "https-proxy-agent": "^2.2.1",
- "mime": "^2.0.3",
- "progress": "^2.0.1",
- "proxy-from-env": "^1.0.0",
- "rimraf": "^2.6.1",
- "ws": "^6.1.0"
+ "version": "13.7.0",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz",
+ "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==",
+ "requires": {
+ "cross-fetch": "3.1.5",
+ "debug": "4.3.4",
+ "devtools-protocol": "0.0.981744",
+ "extract-zip": "2.0.1",
+ "https-proxy-agent": "5.0.1",
+ "pkg-dir": "4.2.0",
+ "progress": "2.0.3",
+ "proxy-from-env": "1.1.0",
+ "rimraf": "3.0.2",
+ "tar-fs": "2.1.1",
+ "unbzip2-stream": "1.4.3",
+ "ws": "8.5.0"
},
"dependencies": {
"debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"requires": {
"ms": "2.1.2"
}
},
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
- "ws": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
- "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"requires": {
- "async-limiter": "~1.0.0"
+ "glob": "^7.1.3"
}
+ },
+ "ws": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
+ "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+ "requires": {}
}
}
},
- "qs": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ "querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
},
"react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
},
"read-pkg": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
"integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
"requires": {
"load-json-file": "^4.0.0",
"normalize-package-data": "^2.3.2",
@@ -5474,29 +27300,27 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
"integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
+ "dev": true,
"requires": {
"find-up": "^3.0.0",
"read-pkg": "^3.0.0"
}
},
"readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
}
},
"realpath-native": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz",
"integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==",
+ "dev": true,
"requires": {
"util.promisify": "^1.0.0"
}
@@ -5535,6 +27359,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
"integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
"requires": {
"extend-shallow": "^3.0.2",
"safe-regex": "^1.1.0"
@@ -5586,108 +27411,79 @@
"remove-trailing-separator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
},
"repeat-element": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "dev": true
},
"repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
- },
- "request": {
- "version": "2.88.2",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "requires": {
- "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",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- }
- },
- "request-promise-core": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz",
- "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==",
- "requires": {
- "lodash": "^4.17.19"
- }
- },
- "request-promise-native": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz",
- "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==",
- "requires": {
- "request-promise-core": "1.1.4",
- "stealthy-require": "^1.1.1",
- "tough-cookie": "^2.3.3"
- }
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
},
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
},
"require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
},
"resolve": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
- "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
"requires": {
- "is-core-module": "^2.1.0",
- "path-parse": "^1.0.6"
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
}
},
"resolve-cwd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
- "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
"requires": {
- "resolve-from": "^3.0.0"
+ "resolve-from": "^5.0.0"
}
},
"resolve-dir": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz",
- "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=",
+ "integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==",
"requires": {
"expand-tilde": "^1.2.2",
"global-modules": "^0.2.3"
}
},
"resolve-from": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
- "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
},
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "resolve.exports": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz",
+ "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ=="
},
"restore-cursor": {
"version": "3.1.0",
@@ -5702,7 +27498,8 @@
"ret": {
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
},
"rimraf": {
"version": "2.7.1",
@@ -5715,7 +27512,8 @@
"rsvp": {
"version": "4.8.5",
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz",
- "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA=="
+ "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==",
+ "dev": true
},
"run-async": {
"version": "2.4.1",
@@ -5723,11 +27521,6 @@
"integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
"dev": true
},
- "rx": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
- "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
- },
"rxjs": {
"version": "6.6.3",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz",
@@ -5746,6 +27539,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
"requires": {
"ret": "~0.1.10"
}
@@ -5759,6 +27553,7 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz",
"integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==",
+ "dev": true,
"requires": {
"@cnakazawa/watch": "^1.0.3",
"anymatch": "^2.0.0",
@@ -5771,10 +27566,13 @@
"walker": "~1.0.5"
}
},
- "sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ "saxes": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
+ "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
+ "requires": {
+ "xmlchars": "^2.2.0"
+ }
},
"schema-utils": {
"version": "2.7.1",
@@ -5792,15 +27590,21 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
},
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ "serialize-javascript": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
+ "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
},
"set-value": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
"integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dev": true,
"requires": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
@@ -5812,6 +27616,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
"requires": {
"is-extendable": "^0.1.0"
}
@@ -5821,7 +27626,7 @@
"shallow-clone": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz",
- "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=",
+ "integrity": "sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==",
"requires": {
"is-extendable": "^0.1.1",
"kind-of": "^2.0.1",
@@ -5832,7 +27637,7 @@
"kind-of": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz",
- "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=",
+ "integrity": "sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==",
"requires": {
"is-buffer": "^1.0.2"
}
@@ -5840,7 +27645,7 @@
"lazy-cache": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz",
- "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U="
+ "integrity": "sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ=="
}
}
},
@@ -5848,6 +27653,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
"requires": {
"shebang-regex": "^1.0.0"
}
@@ -5855,17 +27661,13 @@
"shebang-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
- },
- "shellwords": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
- "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww=="
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
},
"signal-exit": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
- "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"sisteransi": {
"version": "1.0.5",
@@ -5875,7 +27677,8 @@
"slash": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true
},
"slice-ansi": {
"version": "2.1.0",
@@ -5892,6 +27695,7 @@
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
"integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
"requires": {
"base": "^0.11.1",
"debug": "^2.2.0",
@@ -5907,6 +27711,7 @@
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
"requires": {
"is-descriptor": "^0.1.0"
}
@@ -5915,6 +27720,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
"requires": {
"is-extendable": "^0.1.0"
}
@@ -5922,7 +27728,8 @@
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
}
}
},
@@ -5930,6 +27737,7 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
"integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
"requires": {
"define-property": "^1.0.0",
"isobject": "^3.0.0",
@@ -5940,6 +27748,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
"requires": {
"is-descriptor": "^1.0.0"
}
@@ -5948,6 +27757,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -5956,6 +27766,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
"requires": {
"kind-of": "^6.0.0"
}
@@ -5964,6 +27775,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
"requires": {
"is-accessor-descriptor": "^1.0.0",
"is-data-descriptor": "^1.0.0",
@@ -5976,6 +27788,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
"integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
"requires": {
"kind-of": "^3.2.0"
},
@@ -5984,6 +27797,7 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -5999,6 +27813,7 @@
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
"integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "dev": true,
"requires": {
"atob": "^2.1.2",
"decode-uri-component": "^0.2.0",
@@ -6008,9 +27823,9 @@
}
},
"source-map-support": {
- "version": "0.5.19",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
- "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -6019,23 +27834,24 @@
"source-map-url": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
- "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true
},
"spawnd": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-4.4.0.tgz",
- "integrity": "sha512-jLPOfB6QOEgMOQY15Z6+lwZEhH3F5ncXxIaZ7WHPIapwNNLyjrs61okj3VJ3K6tmP5TZ6cO0VAu9rEY4MD4YQg==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-6.2.0.tgz",
+ "integrity": "sha512-qX/I4lQy4KgVEcNle0kuc4FxFWHISzBhZW1YemPfwmrmQjyZmfTK/OhBKkhrD2ooAaFZEm1maEBLE6/6enwt+g==",
"requires": {
"exit": "^0.1.2",
- "signal-exit": "^3.0.2",
- "tree-kill": "^1.2.2",
- "wait-port": "^0.2.7"
+ "signal-exit": "^3.0.7",
+ "tree-kill": "^1.2.2"
}
},
"spdx-correct": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
"integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "dev": true,
"requires": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
@@ -6044,12 +27860,14 @@
"spdx-exceptions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "dev": true
},
"spdx-expression-parse": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
"requires": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
@@ -6058,12 +27876,14 @@
"spdx-license-ids": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz",
- "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw=="
+ "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==",
+ "dev": true
},
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
"integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
"requires": {
"extend-shallow": "^3.0.0"
}
@@ -6071,24 +27891,7 @@
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
- "dev": true
- },
- "sshpk": {
- "version": "1.16.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
- "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
- "requires": {
- "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"
- }
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
},
"ssim.js": {
"version": "3.5.0",
@@ -6099,6 +27902,7 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.3.tgz",
"integrity": "sha512-WldO+YmqhEpjp23eHZRhOT1NQF51STsbxZ+/AdpFD+EhheFxAe5d0WoK4DQVJkSHacPrJJX3OqRAl9CgHf78pg==",
+ "dev": true,
"requires": {
"escape-string-regexp": "^2.0.0"
},
@@ -6106,7 +27910,8 @@
"escape-string-regexp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "dev": true
}
}
},
@@ -6114,6 +27919,7 @@
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
"integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
"requires": {
"define-property": "^0.2.5",
"object-copy": "^0.1.0"
@@ -6123,37 +27929,48 @@
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
"requires": {
"is-descriptor": "^0.1.0"
}
}
}
},
- "stealthy-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
- "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks="
+ "string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ },
+ "dependencies": {
+ "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=="
+ }
+ }
},
"string-length": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz",
- "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
"requires": {
- "astral-regex": "^1.0.0",
- "strip-ansi": "^4.0.0"
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
},
"dependencies": {
"ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "^5.0.1"
}
}
}
@@ -6162,6 +27979,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
"requires": {
"emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
@@ -6172,6 +27990,7 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz",
"integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.0",
"define-properties": "^1.1.3"
@@ -6181,23 +28000,17 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz",
"integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==",
+ "dev": true,
"requires": {
"call-bind": "^1.0.0",
"define-properties": "^1.1.3"
}
},
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
"requires": {
"ansi-regex": "^4.1.0"
}
@@ -6205,18 +28018,24 @@
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
},
"strip-eof": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "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=="
},
"strip-json-comments": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
},
"supports-color": {
"version": "5.5.0",
@@ -6226,6 +28045,35 @@
"has-flag": "^3.0.0"
}
},
+ "supports-hyperlinks": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "requires": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "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==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
+ },
"symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -6243,10 +28091,129 @@
"string-width": "^3.0.0"
}
},
+ "tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "dev": true,
+ "peer": true
+ },
+ "tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "requires": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "requires": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ }
+ },
+ "terminal-link": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
+ "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "supports-hyperlinks": "^2.0.0"
+ }
+ },
+ "terser": {
+ "version": "5.16.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz",
+ "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true,
+ "peer": true
+ }
+ }
+ },
+ "terser-webpack-plugin": {
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz",
+ "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.14",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^3.1.1",
+ "serialize-javascript": "^6.0.0",
+ "terser": "^5.14.1"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "peer": true
+ },
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ }
+ },
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
"test-exclude": {
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
"integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
+ "dev": true,
"requires": {
"glob": "^7.1.3",
"minimatch": "^3.0.4",
@@ -6261,15 +28228,14 @@
"dev": true
},
"throat": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz",
- "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo="
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz",
+ "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ=="
},
"through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
- "dev": true
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
},
"tmp": {
"version": "0.0.33",
@@ -6281,9 +28247,9 @@
}
},
"tmpl": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
- "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE="
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="
},
"to-fast-properties": {
"version": "2.0.0",
@@ -6294,6 +28260,7 @@
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
"integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
"requires": {
"kind-of": "^3.0.2"
},
@@ -6302,6 +28269,7 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -6312,6 +28280,7 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
"integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
"requires": {
"define-property": "^2.0.2",
"extend-shallow": "^3.0.2",
@@ -6323,26 +28292,29 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
"integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
"requires": {
"is-number": "^3.0.0",
"repeat-string": "^1.6.1"
}
},
"tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz",
+ "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==",
"requires": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
}
},
"tr46": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
- "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
"requires": {
- "punycode": "^2.1.0"
+ "punycode": "^2.1.1"
}
},
"tree-kill": {
@@ -6356,19 +28328,6 @@
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
},
- "tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
- },
"type-check": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
@@ -6377,16 +28336,33 @@
"prelude-ls": "~1.1.2"
}
},
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="
+ },
"type-fest": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true
},
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "unbzip2-stream": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
+ "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
+ "requires": {
+ "buffer": "^5.2.1",
+ "through": "^2.3.8"
+ }
},
"unicode-canonical-property-names-ecmascript": {
"version": "1.0.4",
@@ -6420,6 +28396,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
"integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dev": true,
"requires": {
"arr-union": "^3.1.0",
"get-value": "^2.0.6",
@@ -6427,10 +28404,16 @@
"set-value": "^2.0.1"
}
},
+ "universalify": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="
+ },
"unset-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
"integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
"requires": {
"has-value": "^0.3.1",
"isobject": "^3.0.0"
@@ -6440,6 +28423,7 @@
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
"integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
"requires": {
"get-value": "^2.0.3",
"has-values": "^0.1.4",
@@ -6450,6 +28434,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
"requires": {
"isarray": "1.0.0"
}
@@ -6459,7 +28444,8 @@
"has-values": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
}
}
},
@@ -6467,6 +28453,7 @@
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
"integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
+ "dev": true,
"requires": {
"punycode": "^2.1.0"
}
@@ -6474,22 +28461,34 @@
"urix": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
+ "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==",
+ "requires": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
},
"use": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"util.promisify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
"integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
+ "dev": true,
"requires": {
"define-properties": "^1.1.3",
"es-abstract": "^1.17.2",
@@ -6497,36 +28496,39 @@
"object.getownpropertydescriptors": "^2.1.0"
}
},
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
- },
"v8-compile-cache": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz",
"integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==",
"dev": true
},
+ "v8-to-istanbul": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz",
+ "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0",
+ "source-map": "^0.7.3"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="
+ }
+ }
+ },
"validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
"requires": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
}
},
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "requires": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- },
"w3c-hr-time": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
@@ -6535,45 +28537,38 @@
"browser-process-hrtime": "^1.0.0"
}
},
- "wait-on": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-3.3.0.tgz",
- "integrity": "sha512-97dEuUapx4+Y12aknWZn7D25kkjMk16PbWoYzpSdA8bYpVfS6hpl2a2pOWZ3c+Tyt3/i4/pglyZctG3J4V1hWQ==",
+ "w3c-xmlserializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
+ "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
"requires": {
- "@hapi/joi": "^15.0.3",
- "core-js": "^2.6.5",
- "minimist": "^1.2.0",
- "request": "^2.88.0",
- "rx": "^4.1.0"
+ "xml-name-validator": "^3.0.0"
}
},
- "wait-port": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-0.2.9.tgz",
- "integrity": "sha512-hQ/cVKsNqGZ/UbZB/oakOGFqic00YAMM5/PEj3Bt4vKarv2jWIWzDbqlwT94qMs/exAQAsvMOq99sZblV92zxQ==",
- "requires": {
- "chalk": "^2.4.2",
- "commander": "^3.0.2",
- "debug": "^4.1.1"
+ "wait-on": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz",
+ "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==",
+ "requires": {
+ "axios": "^0.25.0",
+ "joi": "^17.6.0",
+ "lodash": "^4.17.21",
+ "minimist": "^1.2.5",
+ "rxjs": "^7.5.4"
},
"dependencies": {
- "commander": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
- "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow=="
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "rxjs": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz",
+ "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==",
"requires": {
- "ms": "2.1.2"
+ "tslib": "^2.1.0"
}
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ "tslib": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
}
}
},
@@ -6585,10 +28580,75 @@
"makeerror": "1.0.x"
}
},
+ "watchpack": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
+ "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ }
+ },
"webidl-conversions": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
- "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="
+ },
+ "webpack": {
+ "version": "5.75.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz",
+ "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@types/eslint-scope": "^3.7.3",
+ "@types/estree": "^0.0.51",
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/wasm-edit": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "acorn": "^8.7.1",
+ "acorn-import-assertions": "^1.7.6",
+ "browserslist": "^4.14.5",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.10.0",
+ "es-module-lexer": "^0.9.0",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.9",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.1.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.1.3",
+ "watchpack": "^2.4.0",
+ "webpack-sources": "^3.2.3"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ }
+ }
+ },
+ "webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "dev": true,
+ "peer": true
},
"whatwg-encoding": {
"version": "1.0.5",
@@ -6604,13 +28664,13 @@
"integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
},
"whatwg-url": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz",
- "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==",
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
"requires": {
- "lodash.sortby": "^4.7.0",
- "tr46": "^1.0.1",
- "webidl-conversions": "^4.0.2"
+ "lodash": "^4.7.0",
+ "tr46": "^2.1.0",
+ "webidl-conversions": "^6.1.0"
}
},
"which": {
@@ -6621,24 +28681,75 @@
"isexe": "^2.0.0"
}
},
- "which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
- },
"word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
},
"wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"requires": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "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==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "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==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
}
},
"wrappy": {
@@ -6659,6 +28770,7 @@
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz",
"integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==",
+ "dev": true,
"requires": {
"graceful-fs": "^4.1.11",
"imurmurhash": "^0.1.4",
@@ -6666,57 +28778,93 @@
}
},
"ws": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
- "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
- "requires": {
- "async-limiter": "~1.0.0"
- }
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "requires": {}
},
"xml-name-validator": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
"integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
},
+ "xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
+ },
"y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
+ },
+ "yallist": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"yargs": {
- "version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"requires": {
- "cliui": "^5.0.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^2.0.1",
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
"require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^3.0.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^13.1.2"
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "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==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
}
},
"yargs-parser": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
},
"yauzl": {
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
"requires": {
"buffer-crc32": "~0.2.3",
"fd-slicer": "~1.1.0"
}
}
}
-}
+}
\ No newline at end of file
diff --git a/tests/frontend/e2e/package.json b/tests/frontend/e2e/package.json
index 78fac8eb..aa2a0a6b 100644
--- a/tests/frontend/e2e/package.json
+++ b/tests/frontend/e2e/package.json
@@ -4,14 +4,29 @@
"description": "NetPyNe UI tests",
"license": "unlicensed",
"scripts": {
- "test": "jest --verbose",
+ "test": "sleep 60 && npm run simple_tutorials_test && npm run complex_tutorials_test && npm run features_test",
+ "puppeteer_test": "jest --verbose",
+ "simple_tutorials_test": "sleep 60 && jest --verbose Tut#1_smoke Tut#2_smoke Tut#4_smoke",
+ "complex_tutorials_test": "jest --verbose Tut#3a_smoke Tut#3b_smoke Tut#3c_smoke",
+ "features_test": "jest --verbose ControlPanel SaveOpenFile RxD EEG_and_Dipole_Tut#1 ExperimentManager_Tut#1",
+ "EEG_Dipole_test": "jest --verbose EEG_and_Dipole_Tut#1 ",
+ "Experiment_Manager_test": "jest --verbose ExperimentManager_Tut#1 ",
+ "Tutorial_1_test": "jest --verbose Tut#1_smoke ",
+ "Tutorial_2_test": "jest --verbose Tut#2_smoke ",
+ "Tutorial_3A_test": "jest --verbose Tut#3a_smoke ",
+ "Tutorial_3B_test": "jest --verbose Tut#3b_smoke ",
+ "Tutorial_3C_test": "jest --verbose Tut#3c_smoke ",
+ "Tutorial_4_test": "jest --verbose Tut#4_smoke ",
+ "Control_Panel_test": "jest --verbose ControlPanel ",
+ "Save_Open_File_test": "jest --verbose SaveOpenFile",
+ "RxD_test": "jest --verbose RxD",
"lint": "eslint --fix --ext .js,.jsx ."
},
"dependencies": {
- "jest": "^24.9.0",
- "jest-image-snapshot": "^4.2.0",
- "jest-puppeteer": "^4.4.0",
- "puppeteer": "^1.20.0"
+ "jest": "^27.5.1",
+ "jest-image-snapshot": "^4.5.1",
+ "jest-puppeteer": "^6.1.0",
+ "puppeteer": "^13.5.1"
},
"devDependencies": {
"@babel/core": "^7.4.5",
@@ -23,13 +38,13 @@
"@babel/preset-stage-2": "^7.0.0",
"@babel/runtime": "^7.4.5",
"babel-eslint": "^10.0.1",
- "eslint": "^6.0.1",
- "eslint-plugin-jest": "^22.21.0",
"babel-jest": "^24.9.0",
"babel-loader": "^8.0.6",
"babel-plugin-transform-decorators-legacy": "^1.3.5",
"babel-plugin-transform-object-assign": "^6.8.0",
- "babel-plugin-transform-runtime": "^6.15.0"
+ "babel-plugin-transform-runtime": "^6.15.0",
+ "eslint": "^6.0.1",
+ "eslint-plugin-jest": "^22.21.0"
},
"buildOptions": {
"emitEntryPoint": true,
@@ -39,4 +54,4 @@
]
}
}
-}
+}
\ No newline at end of file
diff --git a/tests/frontend/e2e/tests/ControlPanel.test.js b/tests/frontend/e2e/tests/ControlPanel.test.js
new file mode 100644
index 00000000..9f3f0a84
--- /dev/null
+++ b/tests/frontend/e2e/tests/ControlPanel.test.js
@@ -0,0 +1,337 @@
+//IMPORTS:
+import 'expect-puppeteer';
+import puppeteer from 'puppeteer';
+import { click } from './utils';
+import { toMatchImageSnapshot } from 'jest-image-snapshot'
+expect.extend({ toMatchImageSnapshot })
+const path = require('path');
+var scriptName = path.basename(__filename, '.js');
+import * as selectors from './selectors'
+
+
+//PAGE INFO:
+const baseURL = process.env.url || 'https://test.netpyne.metacell.us/'
+const PAGE_WAIT = 3000;
+const TIMEOUT = 60000;
+
+//SNAPSHOT:
+const SNAPSHOT_OPTIONS = {
+ customSnapshotsDir: `./tests/snapshots/Tut#2_smoke.test/`,
+ comparisonMethod: 'ssim',
+ failureThresholdType: 'percent',
+ failureThreshold: 0.25
+};
+
+let r = (Math.random() + 1).toString(36).substring(2);
+
+//USERS:
+const USERNAME = `TestUser${r}`
+const PASSWORD = 'testpassword'
+
+//TESTS:
+
+jest.setTimeout(3000000);
+let browser_control_panel;
+let control_panel_page;
+
+
+describe('Test for the Control Panel - color picker', () => {
+
+ beforeAll(async () => {
+ browser_control_panel = await puppeteer.launch(
+ {
+ headless: 'new',
+ args: ['--no-sandbox', '--disable-setuid-sandbox'],
+ defaultViewport: {
+ width: 1300,
+ height: 1024
+ },
+ }
+ );
+ control_panel_page = await browser_control_panel.newPage();
+ await control_panel_page.goto(baseURL);
+ if (baseURL.includes('test.netpyne.metacell.us')) {
+ console.log('Logging in as test user ...')
+ await control_panel_page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR);
+ await control_panel_page.waitForSelector(selectors.USERNAME_SELECTOR)
+ await expect(control_panel_page)
+ .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT });
+
+ await control_panel_page.waitForSelector(selectors.PASSWORD_SELECTOR)
+ await expect(control_panel_page)
+ .toFill(selectors.PASSWORD_SELECTOR, PASSWORD, { timeout: TIMEOUT });
+
+ await control_panel_page.click(selectors.LOGIN_BUTTON_SELECTOR)
+ // Wait for initial loading spinner to disappear
+ await control_panel_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+ console.log('Logged in successfully')
+ }
+ });
+
+ afterAll(async () => {
+ // Close the browser instance after all tests have run
+ await browser_control_panel.close();
+ });
+
+ it('Open new page', async () => {
+
+ console.log('Opening a new NetPyNE page')
+
+ await control_panel_page.on("dialog", dialog =>
+ dialog.accept());
+
+ await control_panel_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true })
+ await control_panel_page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+ await control_panel_page.click(selectors.FILE_TAB_SELECTOR)
+ await control_panel_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+ await control_panel_page.click(selectors.NEW_FILE_SELECTOR)
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+ await control_panel_page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await control_panel_page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await control_panel_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await control_panel_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+
+ await control_panel_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 })
+
+ console.log('Page opened successfully')
+
+ })
+
+ it('Load Tutorial#2', async () => {
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT * 2)
+ await control_panel_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+ await control_panel_page.waitForSelector(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await control_panel_page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('Loading Tutorial #2')
+ await control_panel_page.waitForSelector(selectors.TUTORIAL_2_SELECTOR, { timeout: TIMEOUT })
+ await control_panel_page.click(selectors.TUTORIAL_2_SELECTOR, { timeout: TIMEOUT })
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+ await control_panel_page.waitForSelector(selectors.PYR_2_CELL_SELECTOR)
+ await control_panel_page.waitForSelector(selectors.INT_CELL_SELECTOR)
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+
+ console.log('Tutorial #2 loaded successfully')
+
+ })
+
+
+ it('Create network', async () => {
+
+ await control_panel_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR)
+ await control_panel_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await control_panel_page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR)
+ await control_panel_page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Create network')
+
+ await control_panel_page.waitForSelector(selectors.DISABLED_RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 })
+
+ console.log('Network created successfully')
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+
+ console.log('... taking snapshot ...');
+ await control_panel_page.waitForTimeout(PAGE_WAIT);
+ expect(await control_panel_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Tutorial#2 Network'
+ });
+ })
+
+ it('Open Color Picker Menu', async () => {
+
+ console.log('Opening Control Panel')
+
+ await control_panel_page.waitForSelector(selectors.CONTROL_PANEL_TAB_SELECTOR)
+ await control_panel_page.click(selectors.CONTROL_PANEL_TAB_SELECTOR)
+ await control_panel_page.waitForSelector(selectors.NETWORKS_IN_CONTROL_PANEL_SELECTOR)
+
+ const network_items = (await control_panel_page.$$(selectors.NETWORK_ITEMS_CONTROL_PANEL_SELECTOR)).length;
+ await expect(network_items).toEqual(3)
+
+ console.log('Control Panel displayed successfully')
+
+ })
+
+ it('Randomize Main Level network color', async () => {
+
+ console.log('Randomize Main Level network color')
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT * 3)
+ await control_panel_page.waitForSelector(selectors.CONTROL_PANEL_TABLE_SELECTOR)
+
+ const primary_level_colors = await control_panel_page.$$eval(selectors.COLOR_RECT_SELECTOR, primary_level_colors => {
+ return primary_level_colors.map(primary_level_color => primary_level_color.outerHTML);
+ });
+
+ expect(primary_level_colors[0]).toContain('fill="#FF7F99"')
+ expect(primary_level_colors[0]).toEqual(primary_level_colors[1])
+ expect(primary_level_colors[1]).toEqual(primary_level_colors[2])
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+
+ const rows = await control_panel_page.$$(selectors.CONTROL_PANEL_NETWORK_ROWS_SELECTOR)
+ for (var i = 0; i < rows.length; i++) {
+ await rows[0].hover()
+ }
+
+ const buttons = await control_panel_page.$$(selectors.COLOR_CONTROL_BUTTONS_SELECTOR)
+
+ for (var i = 0; i < buttons.length; i++) {
+ await buttons[1].click()
+ }
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+
+ const rndm_primary_level_colors = await control_panel_page.$$eval(selectors.COLOR_RECT_SELECTOR, rndm_primary_level_colors => {
+ return rndm_primary_level_colors.map(rndm_primary_level_color => rndm_primary_level_color.outerHTML);
+ });
+
+ expect(rndm_primary_level_colors[0]).toContain('fill="#989898"')
+ expect(rndm_primary_level_colors[2]).not.toEqual(rndm_primary_level_colors[1])
+
+ console.log('Main Network color randomized successfully')
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+
+ })
+
+ it('Randomize Sub level E network color', async () => {
+
+ console.log('Randomize Sub Level E network color')
+ await control_panel_page.waitForSelector(selectors.CONTROL_PANEL_NETWORK_ROWS_SELECTOR, { timeout: TIMEOUT })
+ const rows = await control_panel_page.$$(selectors.CONTROL_PANEL_NETWORK_ROWS_SELECTOR)
+ for (var i = 0; i < rows.length; i++) {
+ await rows[1].click()
+ await rows[1].hover()
+ }
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+
+ const second_level_colors = await control_panel_page.$$eval(selectors.COLOR_RECT_SELECTOR, second_level_colors => {
+ return second_level_colors.map(second_level_color => second_level_color.outerHTML);
+ });
+
+
+ expect(second_level_colors[1]).toEqual(second_level_colors[2])
+ expect(second_level_colors[2]).toEqual(second_level_colors[3])
+
+
+ const buttons = await control_panel_page.$$(selectors.COLOR_CONTROL_BUTTONS_SELECTOR)
+
+ for (var i = 0; i < buttons.length; i++) {
+ await buttons[2].click()
+ }
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT * 2)
+
+ const second_level_colors_after_rndm = await control_panel_page.$$eval(selectors.COLOR_RECT_SELECTOR, second_level_colors_after_rndm => {
+ return second_level_colors_after_rndm.map(second_level_color_after_rndm => second_level_color_after_rndm.outerHTML);
+ });
+
+ expect(second_level_colors_after_rndm[1]).toContain('fill="#989898"')
+ expect(second_level_colors_after_rndm[2]).not.toEqual(second_level_colors_after_rndm[3])
+ expect(second_level_colors_after_rndm[2]).not.toEqual(second_level_colors_after_rndm[1])
+
+ console.log('E Network color randomized successfully')
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT * 3)
+
+ })
+
+
+ it('Pick a color for the sublevel I netowrk', async () => {
+
+ console.log('Selecting a color for the I network')
+ await control_panel_page.waitForSelector(selectors.CONTROL_PANEL_NETWORK_ROWS_SELECTOR, { timeout: TIMEOUT })
+ const rows = await control_panel_page.$$(selectors.CONTROL_PANEL_NETWORK_ROWS_SELECTOR)
+ for (var i = 0; i < rows.length; i++) {
+ await rows[1].click()
+ }
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+
+ const rows_ = await control_panel_page.$$(selectors.CONTROL_PANEL_NETWORK_ROWS_SELECTOR)
+
+ for (var i = 0; i < rows_.length; i++) {
+ await rows_[2].click()
+ }
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+
+ const network_colors = await control_panel_page.$$eval(selectors.COLOR_RECT_SELECTOR, network_colors => {
+ return network_colors.map(network_color => network_color.outerHTML);
+ });
+
+ expect(network_colors[3]).toEqual(network_colors[4])
+ expect(network_colors[3]).toEqual(network_colors[2])
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT * 3)
+
+ const buttons = await control_panel_page.$$(selectors.COLOR_CONTROL_BUTTONS_SELECTOR)
+
+ for (var i = 0; i < buttons.length; i++) {
+ await buttons[4].click()
+ }
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+
+ const list_bounds = await control_panel_page.$(selectors.NETWORKS_IN_CONTROL_PANEL_SELECTOR);
+ const rect = await control_panel_page.evaluate((list_bounds) => {
+ const { top, left, bottom, right } = list_bounds.getBoundingClientRect();
+ return { top, left, bottom, right };
+ }, list_bounds);
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+ await control_panel_page.mouse.click(Math.round(rect.right) - 40, Math.round(rect.bottom) + 40)
+ await control_panel_page.waitForTimeout(PAGE_WAIT * 2)
+
+ const rows_after_colouring_I = await control_panel_page.$$(selectors.CONTROL_PANEL_NETWORK_ROWS_SELECTOR)
+ for (var i = 0; i < rows_after_colouring_I.length; i++) {
+ await rows_after_colouring_I[2].click()
+ }
+
+ const network_colors_after_colouring_I = await control_panel_page.$$eval(selectors.COLOR_RECT_SELECTOR, network_colors_after_colouring_I => {
+ return network_colors_after_colouring_I.map(network_color_after_colouring_I => network_color_after_colouring_I.outerHTML);
+ });
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+
+ expect(network_colors_after_colouring_I[2]).toEqual(network_colors_after_colouring_I[3])
+ expect(network_colors_after_colouring_I[2]).toEqual(network_colors_after_colouring_I[4])
+
+ console.log('I network color selected successfully')
+
+ })
+
+ it('Filter results from the Control panel', async () => {
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+ console.log('Filtering results')
+
+ await control_panel_page.waitForSelector(selectors.CONTROL_PANEL_FILTER_SELECTOR, {timeout: PAGE_WAIT})
+ await control_panel_page.type(selectors.CONTROL_PANEL_FILTER_SELECTOR, 'E')
+
+ await control_panel_page.waitForTimeout(PAGE_WAIT)
+ await control_panel_page.waitForSelector(selectors.NETWORKS_IN_CONTROL_PANEL_SELECTOR)
+
+ const network_items = (await control_panel_page.$$(selectors.NETWORK_ITEMS_CONTROL_PANEL_SELECTOR)).length;
+ await expect(network_items).toEqual(3)
+
+ console.log('Results filtered successfully')
+
+ })
+
+
+});
\ No newline at end of file
diff --git a/tests/frontend/e2e/tests/EEG_and_Dipole_Tut#1.test.js b/tests/frontend/e2e/tests/EEG_and_Dipole_Tut#1.test.js
new file mode 100644
index 00000000..4fdfa25f
--- /dev/null
+++ b/tests/frontend/e2e/tests/EEG_and_Dipole_Tut#1.test.js
@@ -0,0 +1,246 @@
+//IMPORTS:
+import 'expect-puppeteer';
+import puppeteer from 'puppeteer';
+import { click } from './utils';
+import { toMatchImageSnapshot } from 'jest-image-snapshot'
+expect.extend({ toMatchImageSnapshot })
+const path = require('path');
+var scriptName = path.basename(__filename, '.js');
+import * as selectors from './selectors'
+
+
+//PAGE INFO:
+const baseURL = process.env.url || 'https://test.netpyne.metacell.us/'
+const PAGE_WAIT = 3000;
+const TIMEOUT = 60000;
+
+//SNAPSHOT:
+const SNAPSHOT_OPTIONS = {
+ customSnapshotsDir: `./tests/snapshots/${scriptName}`,
+ comparisonMethod: 'ssim',
+ customDiffConfig: {
+ ssim: 'fast',
+ },
+ failureThresholdType: 'percent',
+ failureThreshold: 0.2
+};
+
+
+
+let r = (Math.random() + 1).toString(36).substring(2);
+
+//USERS:
+const USERNAME = `TestUser${r}`
+const PASSWORD = 'testpassword'
+
+
+//TESTS:
+
+jest.setTimeout(3000000);
+let browser_EEG_Dipole;
+let EEG_Dipole_page;
+
+beforeAll(async () => {
+
+ browser_EEG_Dipole = await puppeteer.launch(
+ {
+ headless: 'new',
+ args: ['--no-sandbox', '--disable-setuid-sandbox'],
+ defaultViewport: {
+ width: 1300,
+ height: 1024
+ },
+ }
+ );
+ EEG_Dipole_page = await browser_EEG_Dipole.newPage();
+ await EEG_Dipole_page.goto(baseURL);
+ if (baseURL.includes('test.netpyne.metacell.us')) {
+ console.log('Logging in as test user ...')
+ await EEG_Dipole_page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR);
+ await EEG_Dipole_page.waitForSelector(selectors.USERNAME_SELECTOR)
+ await expect(EEG_Dipole_page)
+ .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT });
+
+ await EEG_Dipole_page.waitForSelector(selectors.PASSWORD_SELECTOR)
+ await expect(EEG_Dipole_page)
+ .toFill(selectors.PASSWORD_SELECTOR, PASSWORD, { timeout: TIMEOUT });
+
+ await EEG_Dipole_page.click(selectors.LOGIN_BUTTON_SELECTOR)
+ // Wait for initial loading spinner to disappear
+ await EEG_Dipole_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+ console.log('Logged in successfully')
+ }
+});
+
+afterAll(async () => {
+ // Close the browser instance after all tests have run
+ await browser_EEG_Dipole.close();
+ });
+
+describe('EEG and Dipole Plot Test using Tutorial#1', () => {
+
+ it('Open new page', async () => {
+
+ console.log('Opening a new NetPyNE page')
+
+ await EEG_Dipole_page.on("dialog", dialog =>
+ dialog.accept());
+
+ await EEG_Dipole_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true })
+ await EEG_Dipole_page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT)
+ await EEG_Dipole_page.click(selectors.FILE_TAB_SELECTOR)
+ await EEG_Dipole_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT)
+ await EEG_Dipole_page.click(selectors.NEW_FILE_SELECTOR)
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT)
+ await EEG_Dipole_page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await EEG_Dipole_page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await EEG_Dipole_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+
+ await EEG_Dipole_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 })
+
+ console.log('Page opened successfully')
+
+ })
+
+
+ it('Load Tutorial#1', async () => {
+
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT * 3)
+ await EEG_Dipole_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 2 })
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT * 2)
+ await EEG_Dipole_page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+
+ await console.log('Loading Tutorial #1')
+ await EEG_Dipole_page.click(selectors.TUTORIAL_1_SELECTOR, { timeout: TIMEOUT })
+ await EEG_Dipole_page.waitForSelector(selectors.PYR_CELL_SELECTOR, { timeout: TIMEOUT * 2 })
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT)
+
+
+ })
+
+ it('Configure recording ', async () => {
+
+ await console.log('Setting Recording configuration')
+
+ await EEG_Dipole_page.waitForSelector(selectors.CONFIGURATION_TAB_SELECTOR)
+ await EEG_Dipole_page.click(selectors.CONFIGURATION_TAB_SELECTOR)
+
+ await EEG_Dipole_page.waitForSelector(selectors.RECORDING_CONFIGURATION_TAB_SELECTOR)
+ await EEG_Dipole_page.click(selectors.RECORDING_CONFIGURATION_TAB_SELECTOR)
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT)
+
+ await EEG_Dipole_page.waitForSelector(selectors.TRACES_TO_RECORD_SELECTOR)
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT)
+ await EEG_Dipole_page.waitForSelector(selectors.DIPOLE_LFPYKIT_SELECTOR)
+ // await expect(page).toClick(selectors.DIPOLE_LFPYKIT_SELECTOR)
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT)
+ await EEG_Dipole_page.click(selectors.DIPOLE_LFPYKIT_SELECTOR)
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT)
+
+ })
+
+ it('Create network', async () => {
+
+ await EEG_Dipole_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR)
+ await EEG_Dipole_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await EEG_Dipole_page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR)
+ await EEG_Dipole_page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ await console.log('Create network')
+
+ await EEG_Dipole_page.waitForSelector(selectors.DISABLED_EEG_PLOT_SELECTOR, { timeout: TIMEOUT * 3 })
+ await EEG_Dipole_page.waitForSelector(selectors.DISABLED_DIPOLE_PLOT_SELECTOR, { timeout: TIMEOUT * 3 })
+
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT)
+
+ await console.log('... taking snapshot ...');
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT);
+ expect(await EEG_Dipole_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Tutorial#1 Network'
+ });
+ })
+
+ it('Simulate network', async () => {
+
+ await EEG_Dipole_page.waitForSelector(selectors.SIMULATE_BUTTON_SELECTOR)
+ await EEG_Dipole_page.click(selectors.SIMULATE_BUTTON_SELECTOR, { timeout: TIMEOUT });
+
+ await console.log('Simulate network')
+
+ await EEG_Dipole_page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 });
+
+ await EEG_Dipole_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 5 })
+ await EEG_Dipole_page.waitForSelector(selectors.EEG_PLOT_SELECTOR, { timeout: TIMEOUT * 5 })
+ await EEG_Dipole_page.waitForSelector(selectors.DIPOLE_PLOT_SELECTOR, { timeout: TIMEOUT * 5 })
+ });
+
+ it('Dipole Plot', async () => {
+
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT * 2);
+ await EEG_Dipole_page.waitForSelector(selectors.DIPOLE_PLOT_SELECTOR)
+ await EEG_Dipole_page.click(selectors.DIPOLE_PLOT_SELECTOR)
+ await EEG_Dipole_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ await console.log('View Dipole Plot ...')
+
+ await EEG_Dipole_page.waitForSelector('#plot > div > div > img', { timeout: TIMEOUT * 10, hidden: false})
+
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT * 2);
+ // await EEG_Dipole_page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await EEG_Dipole_page.waitForTimeout(PAGE_WAIT);
+ // await EEG_Dipole_page.click(selectors.DIPOLE_PLOT_SELECTOR)
+ // await EEG_Dipole_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ // await EEG_Dipole_page.waitForTimeout(PAGE_WAIT * 3);
+
+ await console.log('... taking snapshot ...');
+ expect(await EEG_Dipole_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Dipole Plot'
+ });
+ });
+
+
+ it('EEG Plot', async () => {
+
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT * 2);
+ await EEG_Dipole_page.waitForSelector(selectors.EEG_PLOT_SELECTOR)
+ await EEG_Dipole_page.click(selectors.EEG_PLOT_SELECTOR)
+ await EEG_Dipole_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT, hidden: false})
+
+ await console.log('View EEG Plot ...')
+
+ await EEG_Dipole_page.waitForSelector('#plot > div > div > img', { timeout: TIMEOUT * 10, hidden: false})
+
+ await EEG_Dipole_page.waitForTimeout(PAGE_WAIT * 7);
+ // await EEG_Dipole_page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await EEG_Dipole_page.waitForTimeout(PAGE_WAIT * 2);
+ // await EEG_Dipole_page.click(selectors.EEG_PLOT_SELECTOR)
+ // await EEG_Dipole_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ // await EEG_Dipole_page.waitForTimeout(PAGE_WAIT * 3);
+
+ await console.log('... taking snapshot ...');
+ expect(await EEG_Dipole_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'EEG Plot'
+ });
+
+ });
+
+
+
+
+});
\ No newline at end of file
diff --git a/tests/frontend/e2e/tests/ExperimentManager_Tut#1.test.js b/tests/frontend/e2e/tests/ExperimentManager_Tut#1.test.js
new file mode 100644
index 00000000..7cd382aa
--- /dev/null
+++ b/tests/frontend/e2e/tests/ExperimentManager_Tut#1.test.js
@@ -0,0 +1,392 @@
+//IMPORTS:
+import 'expect-puppeteer';
+import puppeteer from 'puppeteer';
+import { click } from './utils';
+import { toMatchImageSnapshot } from 'jest-image-snapshot'
+expect.extend({ toMatchImageSnapshot })
+const path = require('path');
+var scriptName = path.basename(__filename, '.js');
+import * as selectors from './selectors'
+
+
+//PAGE INFO:
+const baseURL = process.env.url || 'https://test.netpyne.metacell.us/'
+const PAGE_WAIT = 3000;
+const TIMEOUT = 60000;
+
+//SNAPSHOT:
+const SNAPSHOT_OPTIONS = {
+ customSnapshotsDir: `./tests/snapshots/${scriptName}`,
+ comparisonMethod: 'ssim',
+ customDiffConfig: {
+ ssim: 'fast',
+ },
+ failureThresholdType: 'percent',
+ failureThreshold: 0.2
+};
+
+
+let r = (Math.random() + 1).toString(36).substring(2);
+
+//USERS:
+const USERNAME = `TestUser${r}`
+const PASSWORD = 'testpassword'
+
+
+//TESTS:
+
+jest.setTimeout(3000000);
+let browser_experiment_manager;
+let experiment_manager_page;
+
+
+describe('Experiment Manager test using Tut#1', () => {
+
+ beforeAll(async () => {
+ browser_experiment_manager = await puppeteer.launch(
+ {
+ headless: 'new',
+ args: ['--no-sandbox', '--disable-setuid-sandbox'],
+ defaultViewport: {
+ width: 1300,
+ height: 1024
+ },
+ }
+ );
+ experiment_manager_page = await browser_experiment_manager.newPage();
+ await experiment_manager_page.goto(baseURL);
+ if (baseURL.includes('test.netpyne.metacell.us')) {
+ console.log('Logging in as test user ...')
+ await experiment_manager_page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR);
+ await experiment_manager_page.waitForSelector(selectors.USERNAME_SELECTOR)
+ await expect(experiment_manager_page)
+ .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT });
+
+ await experiment_manager_page.waitForSelector(selectors.PASSWORD_SELECTOR)
+ await expect(experiment_manager_page)
+ .toFill(selectors.PASSWORD_SELECTOR, PASSWORD, { timeout: TIMEOUT });
+
+ await experiment_manager_page.click(selectors.LOGIN_BUTTON_SELECTOR)
+ // Wait for initial loading spinner to disappear
+ await experiment_manager_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+ console.log('Logged in successfully')
+ }
+ });
+
+ afterAll(async () => {
+ // Close the browser instance after all tests have run
+ await browser_experiment_manager.close();
+ });
+
+ it('Open new page', async () => {
+
+ console.log('Opening a new NetPyNE page')
+
+ await experiment_manager_page.on("dialog", dialog =>
+ dialog.accept());
+
+ await experiment_manager_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true })
+ await experiment_manager_page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+ await experiment_manager_page.click(selectors.FILE_TAB_SELECTOR)
+ await experiment_manager_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+ await experiment_manager_page.click(selectors.NEW_FILE_SELECTOR)
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+ await experiment_manager_page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await experiment_manager_page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await experiment_manager_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+
+ await experiment_manager_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 })
+
+ console.log('Page opened successfully')
+
+ })
+
+ it('Load Tutorial#1', async () => {
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT * 2)
+ await experiment_manager_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+ await click(experiment_manager_page, selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('Tutorial #1')
+ await click(experiment_manager_page, selectors.TUTORIAL_1_SELECTOR, { timeout: TIMEOUT })
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+ await experiment_manager_page.waitForSelector(selectors.PYR_CELL_SELECTOR)
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+
+
+ })
+
+
+ it('Create network', async () => {
+
+ await experiment_manager_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR)
+ await click(experiment_manager_page, selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await experiment_manager_page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR)
+ await click(experiment_manager_page, selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Create network')
+
+ await experiment_manager_page.waitForSelector(selectors.DISABLED_RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 })
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+
+ console.log('... taking snapshot ...');
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT);
+ expect(await experiment_manager_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Tutorial#1 Network'
+ });
+ })
+
+ it('Set an Experiment in the Experiment Manager ', async () => {
+
+ console.log('Setting up experiment')
+
+ await experiment_manager_page.waitForSelector(selectors.EXPERIMENT_MANAGER_TAB_SELECTOR)
+ await experiment_manager_page.click(selectors.EXPERIMENT_MANAGER_TAB_SELECTOR)
+ await experiment_manager_page.waitForSelector(selectors.CREATE_NEW_EXPERIMENT_SELECTOR)
+ await experiment_manager_page.click(selectors.CREATE_NEW_EXPERIMENT_SELECTOR)
+
+ await experiment_manager_page.waitForSelector(selectors.CREATE_NEW_EXPERIMENT_POPUP_SELECTOR)
+ await experiment_manager_page.waitForSelector(selectors.CONFIRM_SELECTOR, { timeout: TIMEOUT, hidden: false })
+ await experiment_manager_page.click(selectors.CONFIRM_SELECTOR)
+ await experiment_manager_page.waitForSelector(selectors.EXPERIMENT_NAME_SELECTOR, { timeout: TIMEOUT , hidden: false})
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT);
+ await expect(experiment_manager_page).toFill(selectors.EXPERIMENT_NAME_SELECTOR, 'Test Experiment', { timeout: TIMEOUT, hidden: false })
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT);
+ await experiment_manager_page.waitForSelector(selectors.PARAMETER_SELECTION_SELECTOR)
+ await experiment_manager_page.click(selectors.PARAMETER_SELECTION_SELECTOR)
+
+
+ await experiment_manager_page.evaluate(() => {
+ let parameter = document.querySelectorAll('li[class="MuiAutocomplete-option"]');
+ for (var i = 0; i < parameter.length; i++) {
+ parameter[i].innerHTML.includes("numCells") && parameter[i].click();
+ }
+ });
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT);
+ await experiment_manager_page.waitForSelector(selectors.FROM_VALUE_SELECTOR);
+ const inputFromValue = await experiment_manager_page.$eval('#undefined-from', el => el.value);
+ await experiment_manager_page.click(selectors.FROM_VALUE_SELECTOR);
+ for (let i = 0; i < inputFromValue.length; i++) {
+ await experiment_manager_page.keyboard.press('Backspace');
+ }
+
+ await experiment_manager_page.type(selectors.FROM_VALUE_SELECTOR, '1')
+ await experiment_manager_page.waitForSelector(selectors.TO_VALUE_SELECTOR);
+ const inputToValue = await experiment_manager_page.$eval('#undefined-to', el => el.value);
+ await experiment_manager_page.click(selectors.TO_VALUE_SELECTOR);
+ for (let i = 0; i < inputToValue.length; i++) {
+ await experiment_manager_page.keyboard.press('Backspace');
+ }
+
+ await experiment_manager_page.type(selectors.TO_VALUE_SELECTOR, '4')
+ await experiment_manager_page.waitForSelector(selectors.STEP_VALUE_SELECTOR);
+ const inputStepValue = await experiment_manager_page.$eval('#undefined-step', el => el.value);
+ await experiment_manager_page.click(selectors.STEP_VALUE_SELECTOR);
+ for (let i = 0; i < inputStepValue.length; i++) {
+ await experiment_manager_page.keyboard.press('Backspace');
+ }
+
+ await experiment_manager_page.type(selectors.STEP_VALUE_SELECTOR, '1')
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT);
+ await experiment_manager_page.waitForSelector(selectors.CREATE_EXPERIMENT_BUTTON_SELECTOR)
+ await experiment_manager_page.click(selectors.CREATE_EXPERIMENT_BUTTON_SELECTOR)
+
+ await experiment_manager_page.waitForSelector(selectors.EXPERIMENT_TABLE_HEADER_SELECTOR)
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT);
+
+ const experiment_name = await experiment_manager_page.evaluate(() => {
+ document.querySelector('h6[class="MuiTypography-root experimentHead MuiTypography-h6"]').textContent
+ });
+
+ const experimentName = await experiment_manager_page.$eval('th[class="MuiTableCell-root MuiTableCell-body"]', el => el.innerText.trim());
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT);
+ expect(experimentName).toBe('Test_Experiment')
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('Experiment created')
+
+ })
+
+ it('Simulate All conditions', async () => {
+
+ await experiment_manager_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR)
+ await click(experiment_manager_page, selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await experiment_manager_page.waitForSelector(selectors.SIMULATE_NETWORK_SELECTOR)
+ await click(experiment_manager_page, selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Simulating all conditions')
+ await experiment_manager_page.waitForSelector(selectors.SIMULATE_POPUP_SELECTOR)
+ await experiment_manager_page.click(selectors.SIMULATE_POPUP_SELECTOR)
+ await experiment_manager_page.waitForSelector(selectors.CONFIRM_SIMULATE_SELECTOR)
+ await experiment_manager_page.click(selectors.CONFIRM_SIMULATE_SELECTOR)
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT);
+
+ await experiment_manager_page.waitForSelector(selectors.CONFIRM_EXPERIMENT_STARTED_SELECTOR)
+ await experiment_manager_page.click(selectors.CONFIRM_EXPERIMENT_STARTED_SELECTOR)
+
+ await experiment_manager_page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 });
+ await experiment_manager_page.waitForSelector(selectors.SIMULATION_LOADER_SELECTOR, { hidden: false, timeout: TIMEOUT * 5 })
+ await experiment_manager_page.waitForSelector(selectors.SIMULATION_LOADER_SELECTOR, { hidden: true, timeout: TIMEOUT * 10 })
+ console.log('Experiment Simulation finished')
+
+ });
+
+ it('Check Experiment Condition #1', async () => {
+
+ console.log('Checking experiment condition #1')
+ await experiment_manager_page.waitForSelector(selectors.BACK_TO_EDIT_SELECTOR)
+ await experiment_manager_page.click(selectors.BACK_TO_EDIT_SELECTOR)
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await experiment_manager_page.waitForSelector(selectors.CELL_TYPES_TAB_SELECTOR)
+ await experiment_manager_page.click(selectors.CELL_TYPES_TAB_SELECTOR)
+
+ await experiment_manager_page.evaluate(() => {
+ let sections = document.querySelectorAll('div[class="MuiButtonBase-root MuiListItem-root makeStyles-selected-23 MuiListItem-dense MuiListItem-button"]');
+ for (var i = 0; i < sections.length; i++) {
+ sections[i].textContent.includes("Experiment Manager") && sections[i].click();
+ }
+ });
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+
+
+ await experiment_manager_page.waitForSelector(selectors.EXPERIMENT_TABLE_SELECTOR)
+ await experiment_manager_page.click(selectors.CREATED_EXPERIMENT_SELECTOR)
+
+ await experiment_manager_page.waitForSelector(selectors.EXPERIMENT_CONDIIONS_ROW_SELECTOR)
+
+ await experiment_manager_page.evaluate(() => {
+ let results = document.querySelectorAll('button[title="Explore results"]');
+ for (var i = 0; i < results.length; i++) {
+ results[0].innerHTML.includes("label") && results[0].click();
+ }
+ });
+
+ await experiment_manager_page.waitForSelector(selectors.CONFIRM_SELECTOR)
+ await experiment_manager_page.click(selectors.CONFIRM_SELECTOR)
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+
+ console.log('... taking snapshot ...');
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT);
+ expect(await experiment_manager_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Experiment Condition #1'
+ });
+
+
+ })
+
+
+
+ it('Check Experiment Condition #2', async () => {
+
+ console.log('Checking experiment condition #2')
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+ await experiment_manager_page.click(selectors.BACK_TO_EDIT_SELECTOR)
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT * 3)
+
+ await experiment_manager_page.evaluate(() => {
+ let results = document.querySelectorAll('button[title="Explore results"]');
+ for (var i = 0; i < results.length; i++) {
+ results[1].innerHTML.includes("label") && results[1].click();
+ }
+ });
+
+ await experiment_manager_page.waitForSelector(selectors.CONFIRM_SELECTOR)
+ await experiment_manager_page.click(selectors.CONFIRM_SELECTOR)
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+
+ console.log('... taking snapshot ...');
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT);
+ expect(await experiment_manager_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Experiment Condition #2'
+ });
+
+
+ })
+
+ it('Check Experiment Condition #3', async () => {
+
+ console.log('Checking experiment condition #3')
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+ await experiment_manager_page.waitForSelector(selectors.BACK_TO_EDIT_SELECTOR)
+ await experiment_manager_page.click(selectors.BACK_TO_EDIT_SELECTOR)
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT * 3)
+
+ await experiment_manager_page.evaluate(() => {
+ let results = document.querySelectorAll('button[title="Explore results"]');
+ for (var i = 0; i < results.length; i++) {
+ results[2].innerHTML.includes("label") && results[2].click();
+ }
+ });
+
+ await experiment_manager_page.waitForSelector(selectors.CONFIRM_SELECTOR)
+ await experiment_manager_page.click(selectors.CONFIRM_SELECTOR)
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+
+ console.log('... taking snapshot ...');
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT);
+ expect(await experiment_manager_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Experiment Condition #3'
+ });
+
+
+ })
+
+ it('Delete Experiment', async () => {
+
+ console.log('Deleting experiment')
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+ await experiment_manager_page.waitForSelector(selectors.BACK_TO_EDIT_SELECTOR)
+ await experiment_manager_page.click(selectors.BACK_TO_EDIT_SELECTOR)
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+ await experiment_manager_page.waitForSelector(selectors.EDIT_EXPERIMENT_BACK_SELECTOR)
+ await experiment_manager_page.click(selectors.EDIT_EXPERIMENT_BACK_SELECTOR)
+
+ await experiment_manager_page.waitForTimeout(PAGE_WAIT)
+
+ await experiment_manager_page.evaluate(() => {
+ let results = document.querySelectorAll('button[class="MuiButtonBase-root MuiButton-root MuiButton-text experimentIcon"]');
+ for (var i = 0; i < results.length; i++) {
+ results[1].innerHTML.includes("label") && results[1].click();
+ }
+ });
+
+ await experiment_manager_page.waitForSelector(selectors.CONFIRM_SELECTOR)
+ await experiment_manager_page.click(selectors.CONFIRM_SELECTOR)
+
+ await experiment_manager_page.waitForFunction(() => !document.querySelector('tr[class="MuiTableRow-root"]'));
+
+ })
+
+});
\ No newline at end of file
diff --git a/tests/frontend/e2e/tests/RxD.test.js b/tests/frontend/e2e/tests/RxD.test.js
new file mode 100644
index 00000000..d0f5d834
--- /dev/null
+++ b/tests/frontend/e2e/tests/RxD.test.js
@@ -0,0 +1,388 @@
+//IMPORTS:
+import 'expect-puppeteer';
+import puppeteer from 'puppeteer';
+import { toMatchImageSnapshot } from 'jest-image-snapshot'
+expect.extend({ toMatchImageSnapshot })
+const path = require('path');
+var scriptName = path.basename(__filename, '.js');
+import * as selectors from './selectors'
+
+
+
+
+//PAGE INFO:
+const baseURL = process.env.url || 'https://test.netpyne.metacell.us/'
+const PAGE_WAIT = 5000;
+const TIMEOUT = 600000;
+
+//SNAPSHOT:
+const SNAPSHOT_OPTIONS = {
+ customSnapshotsDir: `./tests/snapshots/${scriptName}`,
+ comparisonMethod: 'ssim',
+ customDiffConfig: {
+ ssim: 'fast',
+ },
+ failureThresholdType: 'percent',
+ failureThreshold: 0.5
+};
+
+
+let r = (Math.random() + 1).toString(36).substring(2);
+
+
+//USERS:
+const USERNAME = `TestUser${r}`
+const PASSWORD = 'testpassword'
+
+
+
+//TESTS:
+
+jest.setTimeout(900000);
+let browser_RxD;
+let RxD_page;
+
+describe('RxD testing', () => {
+
+ beforeAll(async () => {
+ browser_RxD = await puppeteer.launch(
+ {
+ headless: 'new',
+ args: ['--no-sandbox', '--disable-setuid-sandbox'],
+ defaultViewport: {
+ width: 1300,
+ height: 1024
+ },
+ }
+ );
+ RxD_page = await browser_RxD.newPage();
+ await RxD_page.goto(baseURL);
+ if (baseURL.includes('test.netpyne.metacell.us')) {
+ console.log('Logging in as test user ...')
+ await RxD_page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR);
+ await RxD_page.waitForSelector(selectors.USERNAME_SELECTOR)
+ await expect(RxD_page)
+ .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT });
+
+ await RxD_page.waitForSelector(selectors.PASSWORD_SELECTOR)
+ await expect(RxD_page)
+ .toFill(selectors.PASSWORD_SELECTOR, PASSWORD, { timeout: TIMEOUT });
+
+ await RxD_page.click(selectors.LOGIN_BUTTON_SELECTOR)
+ // Wait for initial loading spinner to disappear
+ await RxD_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+ console.log('Logged in successfully')
+ }
+ });
+
+ afterAll(async () => {
+ // Close the browser instance after all tests have run
+ await browser_RxD.close();
+ });
+
+ it('Open new page', async () => {
+
+ console.log('Opening a new NetPyNE page ...')
+
+ await RxD_page.on("dialog", dialog =>
+ dialog.accept());
+
+ await RxD_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true })
+ await RxD_page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await RxD_page.waitForTimeout(PAGE_WAIT)
+ await RxD_page.click(selectors.FILE_TAB_SELECTOR)
+ await RxD_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await RxD_page.waitForTimeout(PAGE_WAIT)
+ await RxD_page.click(selectors.NEW_FILE_SELECTOR)
+ await RxD_page.waitForTimeout(PAGE_WAIT)
+ await RxD_page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await RxD_page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await RxD_page.waitForTimeout(PAGE_WAIT * 3)
+
+ await RxD_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT * 3 });
+
+ await RxD_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 })
+
+ console.log('Page opened successfully')
+
+ })
+
+ it('Load Tutorial 3b', async () => {
+
+ await RxD_page.waitForTimeout(PAGE_WAIT * 2)
+ await RxD_page.waitForSelector('#selectCellButton', { timeout: TIMEOUT })
+
+ console.log('Loading Tutorial #3b ...')
+
+ await RxD_page.waitForTimeout(PAGE_WAIT)
+ await RxD_page.waitForSelector(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await RxD_page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await RxD_page.waitForSelector(selectors.TUTORIAL_3B_SELECTOR, { timeout: TIMEOUT })
+ await RxD_page.click(selectors.TUTORIAL_3B_SELECTOR, { timeout: TIMEOUT })
+ await RxD_page.waitForSelector('#E', { timeout: TIMEOUT })
+ await RxD_page.waitForSelector('#I', { timeout: TIMEOUT })
+ await RxD_page.waitForTimeout(PAGE_WAIT)
+
+ console.log('Tutorial loaded')
+
+ })
+
+ it.skip('Create and Simulate Network', async () => {
+
+
+ await RxD_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await RxD_page.click(selectors.MODEL_BUTTON_SELECTOR);
+ await RxD_page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT })
+ await RxD_page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Creating network ...')
+
+ await RxD_page.waitForTimeout(PAGE_WAIT * 3)
+
+ await RxD_page.waitForSelector('div[title="3D Representation"][aria-disabled="false"]', { timeout: TIMEOUT * 3 })
+ await RxD_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await RxD_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await RxD_page.waitForSelector(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ await RxD_page.click(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ console.log('Simulating network ...')
+
+ await RxD_page.waitForSelector('div[title="Raster plot"][aria-disabled="false"]', { timeout: TIMEOUT * 3 })
+ await RxD_page.waitForSelector('div[title="RxD concentration plot"][aria-disabled="false"]', { timeout: TIMEOUT * 3 })
+
+ await RxD_page.waitForTimeout(PAGE_WAIT)
+
+ console.log('Network created and simulated')
+
+ })
+
+ it.skip('Check RxD Plot', async () => {
+ console.log('Opening the RxD plot ...')
+
+ await RxD_page.waitForSelector('div[title="RxD concentration plot"][aria-disabled="false"]', { timeout: TIMEOUT * 3 })
+ await RxD_page.click('div[title="RxD concentration plot"][aria-disabled="false"]')
+ await RxD_page.waitForFunction(
+ selector => document.querySelectorAll(selector).length === 2,
+ { timeout: TIMEOUT },
+ 'div.flexlayout__tabset'
+ );
+
+ console.log('... taking snapshot ...');
+ await RxD_page.waitForTimeout(PAGE_WAIT);
+ expect(await RxD_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'RxD Plot'
+ });
+ await RxD_page.waitForTimeout(PAGE_WAIT);
+ console.log('Plot displayed')
+ })
+ it.skip('Check LFP Time Series Plot', async () => {
+ console.log('Opening the LFP TS plot ...')
+
+ await RxD_page.waitForSelector('div[title="LFP Time Series Plot"][aria-disabled="false"]', { timeout: TIMEOUT * 3 })
+ await RxD_page.click('div[title="LFP Time Series Plot"][aria-disabled="false"]')
+ await RxD_page.waitForFunction(
+ selector => document.querySelectorAll(selector).length === 2,
+ { timeout: TIMEOUT },
+ 'div.flexlayout__tabset'
+ );
+
+ console.log('... taking snapshot ...');
+ await RxD_page.waitForTimeout(PAGE_WAIT);
+ expect(await RxD_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP Time Series Plot Before change'
+ });
+ await RxD_page.waitForTimeout(PAGE_WAIT);
+ console.log('Plot displayed')
+ })
+ it.skip('Check LFP PSD Plot', async () => {
+ console.log('Opening the LFP PSD plot ...')
+
+ await RxD_page.waitForSelector('div[title="LFP PSD Plot"][aria-disabled="false"]', { timeout: TIMEOUT * 3 })
+ await RxD_page.click('div[title="LFP PSD Plot"][aria-disabled="false"]')
+ await RxD_page.waitForFunction(
+ selector => document.querySelectorAll(selector).length === 2,
+ { timeout: TIMEOUT },
+ 'div.flexlayout__tabset'
+ );
+
+ console.log('... taking snapshot ...');
+ await RxD_page.waitForTimeout(PAGE_WAIT);
+ expect(await RxD_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP PSD Plot Before change'
+ });
+ await RxD_page.waitForTimeout(PAGE_WAIT);
+ console.log('Plot displayed')
+
+ })
+
+ it.skip('Go back to Edit', async () => {
+
+ console.log('Going back to Edit ...')
+ await RxD_page.waitForSelector('.MuiButtonBase-root.MuiButton-root.MuiButton-contained')
+ await RxD_page.evaluate(() => {
+ [...document.querySelectorAll('.MuiButtonBase-root.MuiButton-root.MuiButton-contained')].find(element => element.innerText === "BACK TO EDIT").click();
+ });
+ await RxD_page.waitForSelector('#E')
+ await RxD_page.waitForSelector('#I')
+ console.log('Edit mode displayed')
+
+ })
+
+ it('Open RxD Tab ', async () => {
+
+ console.log('Opening RxD tab ...')
+ await RxD_page.waitForSelector('div[title="Reaction-Diffusion"]')
+ await RxD_page.click('div[title="Reaction-Diffusion"]')
+
+ await RxD_page.waitForSelector('#simple-tabpanel-0')
+
+ console.log('RxD Tab Opened')
+
+ })
+
+ it('Change RxD Configuration', async () => {
+ console.log('Opening RxD config ...')
+
+ await RxD_page.waitForSelector('#simple-tabpanel-1')
+ await RxD_page.click('#simple-tab-1')
+
+ await RxD_page.waitForSelector('button[aria-selected="true"][id = "simple-tab-1"]')
+
+ await RxD_page.waitForSelector('#ip3')
+ console.log('Species tab opened')
+ await RxD_page.waitForTimeout(PAGE_WAIT)
+
+ })
+
+ it('Increase IP3 species concentration', async () => {
+
+ console.log('Increasing IP3 concentration ...')
+
+ await RxD_page.waitForSelector('#ip3')
+ await RxD_page.click('#ip3')
+ await RxD_page.waitForTimeout(PAGE_WAIT)
+ await RxD_page.waitForSelector('#netParamsrxdParamsspeciesip3regions')
+ await RxD_page.waitForSelector('#netParamsrxdParamsspeciesip3d')
+ await RxD_page.waitForSelector('#netParamsrxdParamsspeciesip3charge')
+ await RxD_page.waitForSelector('#netParamsrxdParamsspeciesip3initial')
+ await RxD_page.waitForTimeout(PAGE_WAIT)
+ await RxD_page.click('#netParamsrxdParamsspeciesip3initial')
+ await RxD_page.keyboard.press('Backspace');
+ await RxD_page.keyboard.press('Backspace');
+ await RxD_page.keyboard.press('Backspace');
+ await RxD_page.type('#netParamsrxdParamsspeciesip3initial', '2')
+ await RxD_page.waitForTimeout(PAGE_WAIT)
+ await RxD_page.click('#netParamsrxdParamsspeciesip3charge')
+ await RxD_page.waitForTimeout(PAGE_WAIT)
+ await RxD_page.waitForSelector('#netParamsrxdParamsspeciesip3initial[value = "2"]')
+
+ console.log('IP3 increased')
+
+ })
+
+
+ it('Create and Simulate Network', async () => {
+
+ await RxD_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await RxD_page.click(selectors.MODEL_BUTTON_SELECTOR);
+ await RxD_page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT })
+ await RxD_page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Creating network ...')
+
+ await RxD_page.waitForTimeout(PAGE_WAIT * 3)
+
+ await RxD_page.waitForSelector('div[title="3D Representation"][aria-disabled="false"]', { timeout: TIMEOUT * 3 })
+ await RxD_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await RxD_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await RxD_page.waitForSelector(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ await RxD_page.click(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ console.log('Simulating network ...')
+
+ await RxD_page.waitForSelector('div[title="Raster plot"][aria-disabled="false"]', { timeout: TIMEOUT * 3 })
+ await RxD_page.waitForSelector('div[title="RxD concentration plot"][aria-disabled="false"]', { timeout: TIMEOUT * 3 })
+
+ await RxD_page.waitForTimeout(PAGE_WAIT)
+ })
+
+ it('Check RxD Plot', async () => {
+
+ console.log('Opening the RxD plot ...')
+
+ await RxD_page.waitForSelector('div[title="RxD concentration plot"][aria-disabled="false"]', { timeout: TIMEOUT * 3 })
+ await RxD_page.click('div[title="RxD concentration plot"][aria-disabled="false"]')
+ await RxD_page.waitForFunction(
+ selector => document.querySelectorAll(selector).length === 2,
+ { timeout: TIMEOUT },
+ 'div.flexlayout__tabset'
+ );
+
+ console.log('... taking snapshot ...');
+ await RxD_page.waitForTimeout(PAGE_WAIT);
+ expect(await RxD_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'RxD Plot'
+ });
+ await RxD_page.waitForTimeout(PAGE_WAIT);
+ console.log('Plot displayed')
+ })
+ it('Check LFP Time Series Plot', async () => {
+
+ console.log('Opening the LFP TS plot ...')
+
+ await RxD_page.waitForSelector('div[title="LFP Time Series Plot"][aria-disabled="false"]', { timeout: TIMEOUT * 3 })
+ await RxD_page.click('div[title="LFP Time Series Plot"][aria-disabled="false"]')
+ await RxD_page.waitForFunction(
+ selector => document.querySelectorAll(selector).length === 2,
+ { timeout: TIMEOUT },
+ 'div.flexlayout__tabset'
+ );
+
+ console.log('... taking snapshot ...');
+ await RxD_page.waitForTimeout(PAGE_WAIT);
+ expect(await RxD_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP Time Series Plot After change'
+ });
+ await RxD_page.waitForTimeout(PAGE_WAIT);
+ console.log('Plot displayed')
+ })
+ it('Check LFP PSD Plot', async () => {
+
+ console.log('Opening the LFP PSD plot ...')
+
+ await RxD_page.waitForSelector('div[title="LFP PSD Plot"][aria-disabled="false"]', { timeout: TIMEOUT * 3 })
+ await RxD_page.click('div[title="LFP PSD Plot"][aria-disabled="false"]')
+ await RxD_page.waitForFunction(
+ selector => document.querySelectorAll(selector).length === 2,
+ { timeout: TIMEOUT },
+ 'div.flexlayout__tabset'
+ );
+
+ console.log('... taking snapshot ...');
+ await RxD_page.waitForTimeout(PAGE_WAIT);
+ expect(await RxD_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP PSD Plot After change'
+ });
+ await RxD_page.waitForTimeout(PAGE_WAIT);
+ console.log('Plot displayed')
+
+ })
+
+
+})
\ No newline at end of file
diff --git a/tests/frontend/e2e/tests/SaveOpenFile.test.js b/tests/frontend/e2e/tests/SaveOpenFile.test.js
new file mode 100644
index 00000000..bc0d4633
--- /dev/null
+++ b/tests/frontend/e2e/tests/SaveOpenFile.test.js
@@ -0,0 +1,585 @@
+//IMPORTS:
+import 'expect-puppeteer';
+import puppeteer from 'puppeteer';
+import { toMatchImageSnapshot } from 'jest-image-snapshot'
+expect.extend({ toMatchImageSnapshot })
+const path = require('path');
+var scriptName = path.basename(__filename, '.js');
+import * as selectors from './selectors'
+
+
+//PAGE INFO:
+const baseURL = process.env.url || 'https://test.netpyne.metacell.us/'
+const PAGE_WAIT = 3000;
+const TIMEOUT = 60000;
+
+//SNAPSHOT:
+const SNAPSHOT_OPTIONS = {
+ customSnapshotsDir: `./tests/snapshots/${scriptName}`,
+ comparisonMethod: 'ssim',
+ customDiffConfig: {
+ ssim: 'fast',
+ },
+ failureThresholdType: 'percent',
+ failureThreshold: 0.2
+};
+
+
+let r = (Math.random() + 1).toString(36).substring(2);
+
+const EDITED_MODEL =
+ '{"E2": {"cellType": "E", "numCells": 5, "yRange": [100, 300]}, "E4": {"cellType": "E", "numCells": 5, "yRange": [300, 600]}, "E5": {"cellType": "E", "numCells": 5, "ynormRange": [0.6, 1]}, "I2": {"cellType": "I", "numCells": 5, "yRange": [100, 300]}, "I4": {"cellType": "I", "numCells": 5, "yRange": [300, 600]}, "I5": {"cellType": "I", "numCells": 5, "ynormRange": [0.6, 1]}}'
+
+
+//USERS:
+const USERNAME = `TestUser${r}`
+const PASSWORD = 'testpassword'
+
+
+//TESTS:
+
+jest.setTimeout(300000);
+let SaveOpen_File_browser;
+let SaveOpen_File_page;
+
+
+describe.skip('Save / Open File testing', () => {
+
+ beforeAll(async () => {
+ SaveOpen_File_browser = await puppeteer.launch(
+ {
+ headless: 'new',
+ args: ['--no-sandbox', '--disable-setuid-sandbox'],
+ defaultViewport: {
+ width: 1300,
+ height: 1024
+ },
+ }
+ );
+ SaveOpen_File_page = await SaveOpen_File_browser.newPage();
+ await SaveOpen_File_page.goto(baseURL);
+ if (baseURL.includes('test.netpyne.metacell.us')) {
+ console.log('Logging in as test user ...')
+ await SaveOpen_File_page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR);
+ await SaveOpen_File_page.waitForSelector(selectors.USERNAME_SELECTOR)
+ await expect(SaveOpen_File_page)
+ .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT });
+
+ await SaveOpen_File_page.waitForSelector(selectors.PASSWORD_SELECTOR)
+ await expect(SaveOpen_File_page)
+ .toFill(selectors.PASSWORD_SELECTOR, PASSWORD, { timeout: TIMEOUT });
+
+ await SaveOpen_File_page.click(selectors.LOGIN_BUTTON_SELECTOR)
+ // Wait for initial loading spinner to disappear
+ await SaveOpen_File_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+ console.log('Logged in successfully')
+ }
+ });
+
+ afterAll(async () => {
+ // Close the browser instance after all tests have run
+ await SaveOpen_File_browser.close();
+ });
+
+ it('Open new page', async () => {
+
+ console.log('Opening a new NetPyNE page')
+
+ await SaveOpen_File_page.on("dialog", dialog =>
+ dialog.accept());
+
+ await SaveOpen_File_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true })
+ await SaveOpen_File_page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+ await SaveOpen_File_page.click(selectors.FILE_TAB_SELECTOR)
+ await SaveOpen_File_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+ await SaveOpen_File_page.click(selectors.NEW_FILE_SELECTOR)
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+ await SaveOpen_File_page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await SaveOpen_File_page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 3)
+
+ await SaveOpen_File_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT * 3 });
+
+ await SaveOpen_File_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 })
+
+ console.log('Page opened successfully')
+
+ })
+
+ it('Open model from File > Open', async () => {
+ console.log('Opening model from File')
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 2)
+ await SaveOpen_File_page.waitForSelector(selectors.FILE_TAB_SELECTOR)
+ await SaveOpen_File_page.click(selectors.FILE_TAB_SELECTOR)
+ await SaveOpen_File_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ await SaveOpen_File_page.evaluate(async () => {
+ document.getElementById("Open...").click();
+ })
+
+ await SaveOpen_File_page.waitForSelector(selectors.FILE_SYSTEM_SELECTOR)
+ await SaveOpen_File_page.click(selectors.LEVEL_UP_SELECTOR)
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+ await SaveOpen_File_page.waitForSelector(selectors.FOLDERS_SELECTOR)
+
+ const folder_num = await SaveOpen_File_page.$$(selectors.FOLDERS_SELECTOR)
+
+ await SaveOpen_File_page.evaluate(() => {
+ [...document.querySelectorAll('div[class = "rst__rowContents rst__rowContentsDragDisabled"]')].find(element => element.textContent === 'src').click();
+ });
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ const folder_num_src = await SaveOpen_File_page.$$(selectors.FOLDERS_SELECTOR)
+
+ expect(folder_num_src.length).toBeGreaterThan(folder_num.length)
+
+ await SaveOpen_File_page.evaluate(() => {
+ [...document.querySelectorAll('div[class = "rst__rowContents rst__rowContentsDragDisabled"]')].find(element => element.textContent === 'netpyne').click();
+ });
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ const folder_num_netpyne = await SaveOpen_File_page.$$(selectors.FOLDERS_SELECTOR)
+ expect(folder_num_netpyne.length).toBeGreaterThan(folder_num_src.length)
+
+ await SaveOpen_File_page.evaluate(() => {
+ [...document.querySelectorAll('div[class = "rst__rowContents rst__rowContentsDragDisabled"]')].find(element => element.textContent === 'examples').scrollIntoView();
+ });
+
+ await SaveOpen_File_page.evaluate(() => {
+ [...document.querySelectorAll('div[class = "rst__rowContents rst__rowContentsDragDisabled"]')].find(element => element.textContent === 'examples').click();
+ });
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 2)
+
+
+ await SaveOpen_File_page.evaluate(() => {
+ [...document.querySelectorAll('div[class = "rst__rowContents rst__rowContentsDragDisabled"]')].find(element => element.textContent === 'HybridTut').scrollIntoView();
+ });
+ await SaveOpen_File_page.evaluate(() => {
+ [...document.querySelectorAll('div[class = "rst__rowContents rst__rowContentsDragDisabled"]')].find(element => element.textContent === 'netClamp').click();
+ });
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 2)
+
+ const folder_num_netClamp = await SaveOpen_File_page.$$(selectors.FOLDERS_SELECTOR)
+ expect(folder_num_netClamp.length).toBeGreaterThan(folder_num_netpyne.length)
+
+ await SaveOpen_File_page.click(selectors.SELECT_BUTTON_SELECTOR)
+
+ await SaveOpen_File_page.waitForSelector(selectors.E_RULE_SELECTOR)
+
+ console.log('Model Loaded')
+
+ })
+
+ it('Create and Simulate opened model', async () => {
+ console.log('Instantiating and Simulating model...')
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ await SaveOpen_File_page.waitForSelector(selectors.NETWORK_CREATION_MENU_BUTTON_SELECTOR)
+ await SaveOpen_File_page.click(selectors.NETWORK_CREATION_MENU_BUTTON_SELECTOR)
+
+ await SaveOpen_File_page.waitForSelector(selectors.NETWORK_CREATION_MENU_ITEMS_SELECTOR)
+ await SaveOpen_File_page.evaluate(() => {
+ [...document.querySelectorAll('#split-button-menu > li')].find(element => element.innerText === 'CREATE AND SIMULATE').click();
+ });
+
+ await SaveOpen_File_page.waitForSelector(selectors.NETWORK_CREATION_BUTTON_SELECTOR)
+ await SaveOpen_File_page.click(selectors.NETWORK_CREATION_BUTTON_SELECTOR)
+
+ await SaveOpen_File_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT * 2 });
+
+ await SaveOpen_File_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 })
+
+ console.log('... taking snapshot ...');
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+ expect(await SaveOpen_File_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'NetClamp Model'
+ });
+ console.log('Model Simulated')
+ })
+
+ it('Change the instantiated model', async () => {
+ console.log('Editing model ...')
+
+ await SaveOpen_File_page.evaluate(() => {
+ [...document.querySelectorAll('button[class = "MuiButtonBase-root MuiButton-root MuiButton-contained"]')].find(element => element.innerText === 'BACK TO EDIT').click();
+ });
+ await SaveOpen_File_page.waitForSelector(selectors.POPULATIONS_TAB_SELECTOR)
+ await SaveOpen_File_page.click(selectors.POPULATIONS_TAB_SELECTOR)
+ await SaveOpen_File_page.waitForSelector('#E2')
+
+ await SaveOpen_File_page.click('#E2')
+ await SaveOpen_File_page.waitForSelector('#netParamspopParamsE2numCells')
+ expect(SaveOpen_File_page).toFill('#netParamspopParamsE2numCells', '5')
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await SaveOpen_File_page.click('#I2')
+ await SaveOpen_File_page.waitForSelector('#netParamspopParamsI2numCells')
+ expect(SaveOpen_File_page).toFill('#netParamspopParamsI2numCells', '5')
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await SaveOpen_File_page.click('#E4')
+ await SaveOpen_File_page.waitForSelector('#netParamspopParamsE4numCells')
+ expect(SaveOpen_File_page).toFill('#netParamspopParamsE4numCells', '5')
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await SaveOpen_File_page.click('#I4')
+ await SaveOpen_File_page.waitForSelector('#netParamspopParamsI4numCells')
+ expect(SaveOpen_File_page).toFill('#netParamspopParamsI4numCells', '5')
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await SaveOpen_File_page.click('#E5')
+ await SaveOpen_File_page.waitForSelector('#netParamspopParamsE5numCells')
+ expect(SaveOpen_File_page).toFill('#netParamspopParamsE5numCells', '5')
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await SaveOpen_File_page.click('#I5')
+ await SaveOpen_File_page.waitForSelector('#netParamspopParamsI5numCells')
+ expect(SaveOpen_File_page).toFill('#netParamspopParamsI5numCells', '5')
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await SaveOpen_File_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await SaveOpen_File_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await SaveOpen_File_page.waitForSelector(selectors.CREATE_AND_SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ await SaveOpen_File_page.click(selectors.CREATE_AND_SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ await SaveOpen_File_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT * 2 });
+
+ await SaveOpen_File_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 })
+
+ console.log('... taking snapshot ...');
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+ expect(await SaveOpen_File_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Edited NetClamp Model'
+ });
+
+ console.log('Model updated')
+ })
+
+ it('Save model', async () => {
+ console.log('Saving model ...')
+ await SaveOpen_File_page.waitForSelector(selectors.FILE_TAB_SELECTOR)
+ await SaveOpen_File_page.click(selectors.FILE_TAB_SELECTOR)
+ await SaveOpen_File_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+ await SaveOpen_File_page.evaluate(async () => {
+ document.getElementById("Save...").click();
+ })
+ await SaveOpen_File_page.waitForSelector(selectors.SAVE_MENU_SELECTOR)
+
+ // const inputValue = await page.$eval(selectors.PATH_INPUT_SELECTOR, el => el.value);
+ await SaveOpen_File_page.click(selectors.PATH_INPUT_SELECTOR, { clickCount: 3 });
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+ expect(SaveOpen_File_page).toFill(selectors.PATH_INPUT_SELECTOR, 'aut_test')
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 2)
+ await SaveOpen_File_page.click(selectors.SAVE_BUTTON_SELECTOR)
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ console.log('Model saved as default')
+ })
+
+ it('Save model - NetParams', async () => {
+ console.log('Saving model with NetParams as Python ...')
+
+ await SaveOpen_File_page.click(selectors.FILE_TAB_SELECTOR)
+ await SaveOpen_File_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+ await SaveOpen_File_page.evaluate(async () => {
+ document.getElementById("Save...").click();
+ })
+ await SaveOpen_File_page.waitForSelector(selectors.SAVE_MENU_SELECTOR)
+
+ // const inputValue = await page.$eval(selectors.PATH_INPUT_SELECTOR, el => el.value);
+ // for (let i = 0; i < inputValue.length; i++) {
+ // await page.keyboard.press('Backspace');
+ // }
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ expect(SaveOpen_File_page).toFill(selectors.PATH_INPUT_SELECTOR, 'aut_test_net_params')
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ await SaveOpen_File_page.evaluate(() => {
+ [...document.querySelectorAll('.MuiAccordionSummary-content')].find(element => element.innerText === "Advanced Options").click();
+ });
+
+ await SaveOpen_File_page.waitForSelector(selectors.EXPORT_OPTIONS_SELECTOR)
+ await SaveOpen_File_page.waitForSelector(selectors.CHECKBOX_OPTION_SELECTOR)
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ const checkbox_buttons = await SaveOpen_File_page.$$(selectors.CHECKBOX_OPTION_SELECTOR)
+
+ await checkbox_buttons[0].click()
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+ await SaveOpen_File_page.click(selectors.SAVE_BUTTON_SELECTOR)
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ console.log('Model saved with NetParams as Python')
+
+ })
+
+ it('Save model - SimConfig', async () => {
+ console.log('Saving model with SimConfig as Python ...')
+
+ await SaveOpen_File_page.click(selectors.FILE_TAB_SELECTOR)
+ await SaveOpen_File_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+ await SaveOpen_File_page.evaluate(async () => {
+ document.getElementById("Save...").click();
+ })
+ await SaveOpen_File_page.waitForSelector(selectors.SAVE_MENU_SELECTOR)
+
+ const inputValue = await SaveOpen_File_page.$eval(selectors.PATH_INPUT_SELECTOR, el => el.value);
+ for (let i = 0; i < inputValue.length; i++) {
+ await SaveOpen_File_page.keyboard.press('Backspace');
+ }
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ expect(SaveOpen_File_page).toFill(selectors.PATH_INPUT_SELECTOR, 'aut_test_sim_config')
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await SaveOpen_File_page.evaluate(() => {
+ [...document.querySelectorAll('.MuiAccordionSummary-content')].find(element => element.innerText === "Advanced Options").click();
+ });
+
+ await SaveOpen_File_page.waitForSelector(selectors.EXPORT_OPTIONS_SELECTOR)
+ await SaveOpen_File_page.waitForSelector(selectors.CHECKBOX_OPTION_SELECTOR)
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ const checkbox_buttons = await SaveOpen_File_page.$$(selectors.CHECKBOX_OPTION_SELECTOR)
+ await checkbox_buttons[1].click()
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 3)
+ await SaveOpen_File_page.click(selectors.SAVE_BUTTON_SELECTOR)
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT)
+ console.log('Model saved with SimConfig as Python')
+
+ })
+
+ it('Check default Saved Model', async () => {
+ console.log('Checking default saved model ...')
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 2)
+ await SaveOpen_File_page.waitForSelector(selectors.PYTHON_CONSOLE_TAB_SELECTOR)
+
+ await SaveOpen_File_page.click(selectors.PYTHON_CONSOLE_TAB_SELECTOR)
+ await SaveOpen_File_page.waitForSelector(selectors.PYTHON_CONSLE_SELECTOR)
+
+ const elementHandle = await SaveOpen_File_page.waitForSelector(
+ selectors.PYTHON_CONSOLE_FRAME_SELECTOR
+ );
+
+ const python_frame = await elementHandle.contentFrame();
+
+ await python_frame.waitForSelector(selectors.MAIN_PYTHON_APP_SELECTOR)
+
+ await python_frame.waitForSelector(selectors.PYTHON_CELL_SELECTOR)
+ const line = await python_frame.$(selectors.PYTHON_CELL_SELECTOR)
+ await line.click()
+ await line.type('pwd')
+
+ await SaveOpen_File_page.keyboard.down('Shift');
+ await SaveOpen_File_page.keyboard.press('Enter');
+ await SaveOpen_File_page.keyboard.up('Shift');
+
+ await python_frame.waitForSelector(selectors.PYTHON_FIRST_OUTPUT_SELECTOR)
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 3)
+
+ const first_code_output = await python_frame.$$eval(selectors.PYTHON_FIRST_OUTPUT_SELECTOR, pwd_code_outputs => {
+ return pwd_code_outputs.map(pwd_code_output => pwd_code_output.innerText)
+ })
+
+ expect(first_code_output[0]).toBe("'/opt/workspace/workspace'")
+
+ const code_lines = await python_frame.$$(selectors.PYTHON_CELL_SELECTOR)
+
+ await code_lines[1].type('cd uploads/aut_test/src')
+
+ await SaveOpen_File_page.keyboard.down('Shift');
+ await SaveOpen_File_page.keyboard.press('Enter');
+ await SaveOpen_File_page.keyboard.up('Shift');
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 3)
+
+ const second_code_output = await python_frame.$$eval(selectors.PYTHON_OUTPUT_SELECTOR, cd_code_outputs => {
+ return cd_code_outputs.map(cd_code_output => cd_code_output.innerText)
+ })
+
+ expect(second_code_output[0]).toBe("/opt/workspace/workspace/saved_models/aut_test/src\n")
+
+ const ls_code_lines = await python_frame.$$(selectors.PYTHON_CELL_SELECTOR)
+
+ await ls_code_lines[2].type('ls -l')
+
+ await SaveOpen_File_page.keyboard.down('Shift');
+ await SaveOpen_File_page.keyboard.press('Enter');
+ await SaveOpen_File_page.keyboard.up('Shift');
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 3)
+
+ const third_code_output = await python_frame.$$eval(selectors.PYTHON_OUTPUT_SELECTOR, ls_code_outputs => {
+ return ls_code_outputs.map(ls_code_output => ls_code_output.innerText)
+ })
+
+ expect(third_code_output[1]).toContain("cfg.json")
+ expect(third_code_output[1]).toContain("netParams.json")
+
+ console.log('Model saved correctly')
+
+ })
+
+ it('Check netParams.py Saved Model', async () => {
+ console.log('Checking netParams.py saved model ...')
+
+ await SaveOpen_File_page.waitForSelector(selectors.PYTHON_CONSLE_SELECTOR)
+
+ const elementHandle = await SaveOpen_File_page.waitForSelector(
+ selectors.PYTHON_CONSOLE_FRAME_SELECTOR
+ );
+
+ const python_frame = await elementHandle.contentFrame();
+
+ await python_frame.waitForSelector(selectors.MAIN_PYTHON_APP_SELECTOR)
+
+ const cd_code_lines = await python_frame.$$(selectors.PYTHON_CELL_SELECTOR)
+
+ await cd_code_lines[2].type('cd ../../')
+
+ await SaveOpen_File_page.keyboard.down('Shift');
+ await SaveOpen_File_page.keyboard.press('Enter');
+ await SaveOpen_File_page.keyboard.up('Shift');
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 3)
+
+ const net_code_lines = await python_frame.$$(selectors.PYTHON_CELL_SELECTOR)
+
+ await net_code_lines[3].type('cd aut_test_net_params/src')
+ await SaveOpen_File_page.keyboard.down('Shift');
+ await SaveOpen_File_page.keyboard.press('Enter');
+ await SaveOpen_File_page.keyboard.up('Shift');
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 3)
+
+ const ls_code_lines = await python_frame.$$(selectors.PYTHON_CELL_SELECTOR)
+
+ await ls_code_lines[4].type('ls -l')
+
+ await SaveOpen_File_page.keyboard.down('Shift');
+ await SaveOpen_File_page.keyboard.press('Enter');
+ await SaveOpen_File_page.keyboard.up('Shift');
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 3)
+
+ const netParam_code_output = await python_frame.$$eval(selectors.PYTHON_OUTPUT_SELECTOR, np_code_outputs => {
+ return np_code_outputs.map(np_code_output => np_code_output.innerText)
+ })
+
+ expect(netParam_code_output[4]).toContain("cfg.json")
+ expect(netParam_code_output[4]).toContain("netParams.py")
+
+ console.log('Model saved correctly')
+ })
+
+ it('Check cfg.py Saved Model', async () => {
+ console.log('Checking cfg.py saved model ...')
+
+ await SaveOpen_File_page.waitForSelector(selectors.PYTHON_CONSLE_SELECTOR)
+
+ const elementHandle = await SaveOpen_File_page.waitForSelector(
+ selectors.PYTHON_CONSOLE_FRAME_SELECTOR
+ );
+
+ const python_frame = await elementHandle.contentFrame();
+
+ await python_frame.waitForSelector(selectors.MAIN_PYTHON_APP_SELECTOR)
+
+ const cd_code_lines = await python_frame.$$(selectors.PYTHON_CELL_SELECTOR)
+
+ await cd_code_lines[5].type('cd ../../')
+
+ await SaveOpen_File_page.keyboard.down('Shift');
+ await SaveOpen_File_page.keyboard.press('Enter');
+ await SaveOpen_File_page.keyboard.up('Shift');
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 3)
+
+ const net_code_lines = await python_frame.$$(selectors.PYTHON_CELL_SELECTOR)
+
+ await net_code_lines[6].type('cd aut_test_sim_config/src')
+ await SaveOpen_File_page.keyboard.down('Shift');
+ await SaveOpen_File_page.keyboard.press('Enter');
+ await SaveOpen_File_page.keyboard.up('Shift');
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 3)
+
+ const ls_code_lines = await python_frame.$$(selectors.PYTHON_CELL_SELECTOR)
+
+ await ls_code_lines[7].type('ls -l')
+
+ await SaveOpen_File_page.keyboard.down('Shift');
+ await SaveOpen_File_page.keyboard.press('Enter');
+ await SaveOpen_File_page.keyboard.up('Shift');
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 3)
+
+ const simConfig_code_output = await python_frame.$$eval(selectors.PYTHON_OUTPUT_SELECTOR, sc_code_outputs => {
+ return sc_code_outputs.map(sc_code_output => sc_code_output.innerText)
+ })
+
+ expect(simConfig_code_output[7]).toContain("cfg.py")
+ expect(simConfig_code_output[7]).toContain("netParams.json")
+ console.log('Model saved correctly')
+
+ })
+
+ it('Check the edited Populations of the Saved Model', async () => {
+
+ console.log('Checking the edited Populations of the saved model ...')
+
+ await SaveOpen_File_page.waitForSelector(selectors.PYTHON_CONSLE_SELECTOR)
+
+ const elementHandle = await SaveOpen_File_page.waitForSelector(
+ selectors.PYTHON_CONSOLE_FRAME_SELECTOR
+ );
+
+ const python_frame = await elementHandle.contentFrame();
+
+ await python_frame.waitForSelector(selectors.MAIN_PYTHON_APP_SELECTOR)
+
+ const code_lines = await python_frame.$$(selectors.PYTHON_CELL_SELECTOR)
+
+ await code_lines[8].type('cat netParams.json ')
+
+ await SaveOpen_File_page.keyboard.down('Shift');
+ await SaveOpen_File_page.keyboard.press('Enter');
+ await SaveOpen_File_page.keyboard.up('Shift');
+
+ await SaveOpen_File_page.waitForTimeout(PAGE_WAIT * 3)
+
+ const cat_code_output = await python_frame.$$eval(selectors.PYTHON_OUTPUT_SELECTOR, cat_code_outputs => {
+ return cat_code_outputs.map(cat_code_output => cat_code_output.innerText)
+ })
+
+ var obj = JSON.parse(cat_code_output[8])
+
+ expect(obj.net.params.popParams).toEqual(JSON.parse(EDITED_MODEL))
+
+ })
+})
\ No newline at end of file
diff --git a/tests/frontend/e2e/tests/TestTutorial1.js b/tests/frontend/e2e/tests/TestTutorial1.js
index eac93af8..eb809a75 100644
--- a/tests/frontend/e2e/tests/TestTutorial1.js
+++ b/tests/frontend/e2e/tests/TestTutorial1.js
@@ -20,7 +20,7 @@ beforeAll(async () => {
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36');
});
-describe('Tutorial #1', () => {
+describe.skip('Tutorial #1', () => {
beforeAll(async () => {
await page.waitForSelector('.NetPyNE-root-1');
diff --git a/tests/frontend/e2e/tests/Tut#1_smoke.test.js b/tests/frontend/e2e/tests/Tut#1_smoke.test.js
new file mode 100644
index 00000000..c0e0f8ef
--- /dev/null
+++ b/tests/frontend/e2e/tests/Tut#1_smoke.test.js
@@ -0,0 +1,282 @@
+//IMPORTS:
+import 'expect-puppeteer';
+import puppeteer from 'puppeteer';
+import { click } from './utils';
+// import { expect } from 'expect-puppeteer';
+import { toMatchImageSnapshot } from 'jest-image-snapshot'
+expect.extend({ toMatchImageSnapshot })
+
+const path = require('path');
+var scriptName = path.basename(__filename, '.js');
+import * as selectors from './selectors'
+
+
+
+//PAGE INFO:
+const baseURL = process.env.url || 'https://test.netpyne.metacell.us/'
+const PAGE_WAIT = 3000;
+const TIMEOUT = 60000;
+
+//SNAPSHOT:
+const SNAPSHOT_OPTIONS = {
+ customSnapshotsDir: `./tests/snapshots/${scriptName}`,
+ comparisonMethod: 'ssim',
+ failureThresholdType: 'percent',
+ failureThreshold: 0.5
+};
+
+
+let r = (Math.random() + 1).toString(36).substring(2);
+
+//USERS:
+const USERNAME = `TestUser${r}`
+const PASSWORD = 'testpassword'
+
+//TESTS:
+
+jest.setTimeout(3000000);
+let browser;
+let tutorial_1_page;
+
+describe('Tutorial #1 for Smoke Testing', () => {
+
+ beforeAll(async () => {
+ browser = await puppeteer.launch(
+ {
+ headless: 'new',
+ args: ['--no-sandbox', '--disable-setuid-sandbox'],
+ defaultViewport: {
+ width: 1300,
+ height: 1024
+ },
+ }
+ );
+ tutorial_1_page = await browser.newPage();
+ await tutorial_1_page.goto(baseURL);
+
+ await tutorial_1_page.goto(baseURL);
+ if (baseURL.includes('test.netpyne.metacell.us')) {
+ console.log('Logging in as test user ...')
+ await tutorial_1_page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR);
+ await tutorial_1_page.waitForSelector(selectors.USERNAME_SELECTOR)
+ await expect(tutorial_1_page)
+ .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT });
+
+ await tutorial_1_page.waitForSelector(selectors.PASSWORD_SELECTOR)
+ await expect(tutorial_1_page)
+ .toFill(selectors.PASSWORD_SELECTOR, PASSWORD, { timeout: TIMEOUT });
+
+ await tutorial_1_page.waitForSelector(selectors.LOGIN_BUTTON_SELECTOR)
+ await tutorial_1_page.click(selectors.LOGIN_BUTTON_SELECTOR)
+ // Wait for initial loading spinner to disappear
+ await tutorial_1_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+ console.log('Logged in successfully')
+ }
+ });
+
+ afterAll(async () => {
+ // Close the browser instance after all tests have run
+ await browser.close();
+ });
+
+ it('Open new page', async () => {
+
+ console.log('Opening a new NetPyNE page')
+
+ await tutorial_1_page.on("dialog", dialog =>
+ dialog.accept());
+
+ await tutorial_1_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true })
+ await tutorial_1_page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_1_page.click(selectors.FILE_TAB_SELECTOR)
+ await tutorial_1_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_1_page.click(selectors.NEW_FILE_SELECTOR)
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_1_page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await tutorial_1_page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await tutorial_1_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+
+ await tutorial_1_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 })
+
+ console.log('Page opened successfully')
+
+ })
+
+
+ it('Create and Simulate network', async () => {
+
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT * 2)
+ await tutorial_1_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('Tutorial #1')
+
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_1_page.waitForSelector(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.click( selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.waitForSelector(selectors.TUTORIAL_1_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.click( selectors.TUTORIAL_1_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.waitForSelector(selectors.PYR_CELL_SELECTOR)
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT)
+
+ await tutorial_1_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR)
+ await tutorial_1_page.click( selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_1_page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR)
+ await tutorial_1_page.click( selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Create network')
+
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT)
+
+ console.log('... taking snapshot ...');
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT);
+ expect(await tutorial_1_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Tutorial#1 Network'
+ });
+
+ await tutorial_1_page.waitForSelector( selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_1_page.click( selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_1_page.waitForSelector( selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_1_page.click( selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ console.log('Simulate network')
+
+ await tutorial_1_page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 });
+
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT)
+
+ });
+
+
+ it('Connections Plot', async () => {
+
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT * 2);
+ await tutorial_1_page.waitForSelector( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.click( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Connections Plot ...')
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_1_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Connections Plot'
+ });
+
+ });
+
+ it('2D Net Plot', async () => {
+ await tutorial_1_page.waitForSelector( selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.click( selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View 2D Net Plot ...')
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT * 2);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_1_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: '2D Net Plot'
+ });
+ });
+
+ it('Cell Traces Plot', async () => {
+ await tutorial_1_page.waitForSelector( selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.click( selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Cell Traces Plot ...')
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_1_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Cell Traces Plot'
+ });
+ });
+
+ it('Raster Plot', async () => {
+ await tutorial_1_page.waitForSelector( selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.click( selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Raster Plot ...')
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_1_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Raster Plot'
+ });
+ });
+
+ it('Spike Hist Plot', async () => {
+ await tutorial_1_page.waitForSelector( selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.click( selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Spike Hist Plot ...')
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_1_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Spike Hist Plot'
+ });
+ });
+
+ it('Granger Plot', async () => {
+ await tutorial_1_page.waitForSelector( selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.click( selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Granger Plot ...')
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_1_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Granger Plot'
+ });
+ });
+
+ it('Rate Spectogram Plot', async () => {
+ await tutorial_1_page.waitForSelector( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.click( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_1_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT);
+
+ // await tutorial_1_page.click( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_1_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ // await tutorial_1_page.waitForTimeout(PAGE_WAIT);
+
+ // await tutorial_1_page.click( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_1_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('View Rate Spectogram Plot ...')
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_1_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Rate Spectogram Plot'
+ });
+
+ await tutorial_1_page.waitForTimeout(PAGE_WAIT);
+ });
+
+});
\ No newline at end of file
diff --git a/tests/frontend/e2e/tests/Tut#2_smoke.test.js b/tests/frontend/e2e/tests/Tut#2_smoke.test.js
new file mode 100644
index 00000000..97f714f2
--- /dev/null
+++ b/tests/frontend/e2e/tests/Tut#2_smoke.test.js
@@ -0,0 +1,279 @@
+//IMPORTS:
+import 'expect-puppeteer';
+import puppeteer from 'puppeteer';
+import { click } from './utils';
+import { toMatchImageSnapshot } from 'jest-image-snapshot'
+expect.extend({ toMatchImageSnapshot })
+const path = require('path');
+var scriptName = path.basename(__filename, '.js');
+import * as selectors from './selectors'
+
+
+
+//PAGE INFO:
+const baseURL = process.env.url || 'https://test.netpyne.metacell.us/'
+const PAGE_WAIT = 3000;
+const TIMEOUT = 60000;
+
+//SNAPSHOT:
+const SNAPSHOT_OPTIONS = {
+ customSnapshotsDir: `./tests/snapshots/${scriptName}`,
+ comparisonMethod: 'ssim',
+ failureThresholdType: 'percent',
+ failureThreshold: 0.5
+};
+
+let r = (Math.random() + 1).toString(36).substring(2);
+
+//USERS:
+const USERNAME = `TestUser${r}`
+const PASSWORD = 'testpassword'
+
+//TESTS:
+
+jest.setTimeout(3000000);
+let browser2;
+let tutorial_2_page;
+
+describe('Tutorial #2 for Smoke Testing', () => {
+
+ beforeAll(async () => {
+ browser2 = await puppeteer.launch(
+ {
+ headless: 'new',
+ args: ['--no-sandbox', '--disable-setuid-sandbox'],
+ defaultViewport: {
+ width: 1300,
+ height: 1024
+ },
+ }
+ );
+ tutorial_2_page = await browser2.newPage();
+ await tutorial_2_page.goto(baseURL);
+
+ await tutorial_2_page.goto(baseURL);
+ if (baseURL.includes('test.netpyne.metacell.us')) {
+ console.log('Logging in as test user ...')
+ await tutorial_2_page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR);
+ await tutorial_2_page.waitForSelector(selectors.USERNAME_SELECTOR)
+ await expect(tutorial_2_page)
+ .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT });
+
+ await tutorial_2_page.waitForSelector(selectors.PASSWORD_SELECTOR)
+ await expect(tutorial_2_page)
+ .toFill(selectors.PASSWORD_SELECTOR, PASSWORD, { timeout: TIMEOUT });
+
+ await tutorial_2_page.click(selectors.LOGIN_BUTTON_SELECTOR)
+ // Wait for initial loading spinner to disappear
+ await tutorial_2_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+ console.log('Logged in successfully')
+ }
+ });
+
+ afterAll(async () => {
+ // Close the browser instance after all tests have run
+ await browser2.close();
+ });
+
+ it('Open new page', async () => {
+
+ console.log('Opening a new NetPyNE page')
+
+ await tutorial_2_page.on("dialog", dialog =>
+ dialog.accept());
+
+ await tutorial_2_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true })
+ await tutorial_2_page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_2_page.click(selectors.FILE_TAB_SELECTOR)
+ await tutorial_2_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_2_page.click(selectors.NEW_FILE_SELECTOR)
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_2_page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await tutorial_2_page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await tutorial_2_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+
+ await tutorial_2_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 })
+
+ console.log('Page opened successfully')
+
+ })
+
+
+ it('Create and Simulate network', async () => {
+
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT * 2)
+ await tutorial_2_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('Tutorial #2')
+
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_2_page.waitForSelector(selectors.TUTORIALS_BUTTON_SELECTOR, { visible: true })
+ await tutorial_2_page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.waitForSelector(selectors.TUTORIAL_2_SELECTOR, { visible: true })
+ await tutorial_2_page.click(selectors.TUTORIAL_2_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.waitForSelector(selectors.PYR_2_CELL_SELECTOR)
+ await tutorial_2_page.waitForSelector(selectors.INT_CELL_SELECTOR)
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT)
+
+ await tutorial_2_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR)
+ await tutorial_2_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_2_page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR)
+ await tutorial_2_page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Create network')
+
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT * 3)
+
+ await tutorial_2_page.waitForSelector(selectors.THREE_D_REP_SELECTOR, { timeout: TIMEOUT * 3 })
+
+ console.log('... taking snapshot ...');
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT);
+ expect(await tutorial_2_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Tutorial#2 Network'
+ });
+ await tutorial_2_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_2_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_2_page.waitForSelector(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_2_page.click(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ console.log('Simulate network')
+
+ await tutorial_2_page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 });
+
+ await tutorial_2_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 })
+
+
+ });
+
+
+ it('Connections Plot', async () => {
+
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT * 2);
+ await tutorial_2_page.waitForSelector(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Connections Plot ...')
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_2_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Connections Plot'
+ });
+
+ });
+
+ it('2D Net Plot', async () => {
+ await tutorial_2_page.waitForSelector(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.click(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View 2D Net Plot ...')
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_2_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: '2D Net Plot'
+ });
+ });
+
+ it('Cell Traces Plot', async () => {
+ await tutorial_2_page.waitForSelector(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.click(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Cell Traces Plot ...')
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_2_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Cell Traces Plot'
+ });
+ });
+
+ it('Raster Plot', async () => {
+ await tutorial_2_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.click(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Raster Plot ...')
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT * 3);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_2_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Raster Plot'
+ });
+ });
+
+ it('Spike Hist Plot', async () => {
+ await tutorial_2_page.waitForSelector(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.click(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Spike Hist Plot ...')
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_2_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Spike Hist Plot'
+ });
+ });
+
+ it('Granger Plot', async () => {
+ await tutorial_2_page.waitForSelector(selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.click(selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Granger Plot ...')
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_2_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Granger Plot'
+ });
+ });
+
+ it('Rate Spectogram Plot', async () => {
+ await tutorial_2_page.waitForSelector(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { visible: true, timeout: TIMEOUT})
+ await tutorial_2_page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_2_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT);
+
+ // await tutorial_2_page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_2_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ // await tutorial_2_page.waitForTimeout(PAGE_WAIT);
+
+ // await tutorial_2_page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_2_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('View Rate Spectogram Plot ...')
+ await tutorial_2_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_2_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Rate Spectogram Plot'
+ });
+ });
+
+});
\ No newline at end of file
diff --git a/tests/frontend/e2e/tests/Tut#3a_smoke.test.js b/tests/frontend/e2e/tests/Tut#3a_smoke.test.js
new file mode 100644
index 00000000..f3d246db
--- /dev/null
+++ b/tests/frontend/e2e/tests/Tut#3a_smoke.test.js
@@ -0,0 +1,340 @@
+//IMPORTS:
+import 'expect-puppeteer';
+import puppeteer from 'puppeteer';
+import { click } from './utils';
+import { toMatchImageSnapshot } from 'jest-image-snapshot'
+expect.extend({ toMatchImageSnapshot })
+const path = require('path');
+var scriptName = path.basename(__filename, '.js');
+import * as selectors from './selectors'
+
+
+//PAGE INFO:
+const baseURL = process.env.url || 'https://test.netpyne.metacell.us/'
+const PAGE_WAIT = 3000;
+const TIMEOUT = 60000;
+
+//SNAPSHOT:
+const SNAPSHOT_OPTIONS = {
+ customSnapshotsDir: `./tests/snapshots/${scriptName}`,
+ comparisonMethod: 'ssim',
+ failureThresholdType: 'percent',
+ failureThreshold: 0.5
+};
+
+let r = (Math.random() + 1).toString(36).substring(2);
+
+//USERS:
+const USERNAME = `TestUser${r}`
+const PASSWORD = 'testpassword'
+
+
+//TESTS:
+
+jest.setTimeout(3000000);
+let browser3;
+let tutorial_3a_page;
+
+
+describe('Tutorial #3a for Smoke Testing', () => {
+
+ beforeAll(async () => {
+ browser3 = await puppeteer.launch(
+ {
+ headless: 'new',
+ args: ['--no-sandbox', '--disable-setuid-sandbox'],
+ defaultViewport: {
+ width: 1300,
+ height: 1024
+ },
+ }
+ );
+ tutorial_3a_page = await browser3.newPage();
+ await tutorial_3a_page.goto(baseURL);
+ if (baseURL.includes('test.netpyne.metacell.us')) {
+ console.log('Logging in as test user ...')
+ await tutorial_3a_page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR);
+ await tutorial_3a_page.waitForSelector(selectors.USERNAME_SELECTOR)
+ await expect(tutorial_3a_page)
+ .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT });
+
+ await tutorial_3a_page.waitForSelector(selectors.PASSWORD_SELECTOR)
+ await expect(tutorial_3a_page)
+ .toFill(selectors.PASSWORD_SELECTOR, PASSWORD, { timeout: TIMEOUT });
+
+ await tutorial_3a_page.click(selectors.LOGIN_BUTTON_SELECTOR)
+ // Wait for initial loading spinner to disappear
+ await tutorial_3a_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+ console.log('Logged in successfully')
+ }
+ });
+
+ afterAll(async () => {
+ // Close the browser instance after all tests have run
+ await browser3.close();
+ });
+
+ it('Open new page', async () => {
+
+ console.log('Opening a new NetPyNE page')
+
+ await tutorial_3a_page.on("dialog", dialog =>
+ dialog.accept());
+
+ await tutorial_3a_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true })
+ await tutorial_3a_page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_3a_page.click(selectors.FILE_TAB_SELECTOR)
+ await tutorial_3a_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_3a_page.click(selectors.NEW_FILE_SELECTOR)
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_3a_page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await tutorial_3a_page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await tutorial_3a_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+
+ await tutorial_3a_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 })
+
+ console.log('Page opened successfully')
+
+ })
+
+
+ it('Create and Simulate network', async () => {
+
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT * 2)
+ await tutorial_3a_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('Tutorial #3a')
+
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_3a_page.waitForSelector(selectors.TUTORIALS_BUTTON_SELECTOR, { visible: true })
+
+ await tutorial_3a_page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.TUTORIAL_3A_SELECTOR, { visible: true })
+ await tutorial_3a_page.click(selectors.TUTORIAL_3A_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.E_CELL_TYPE_SELECTOR)
+ await tutorial_3a_page.waitForSelector(selectors.I_CELL_TYPE_SELECTOR)
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT)
+
+ await tutorial_3a_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR)
+ await tutorial_3a_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_3a_page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR)
+ await tutorial_3a_page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Create network')
+
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT * 3)
+
+ await tutorial_3a_page.waitForSelector(selectors.THREE_D_REP_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('... taking snapshot ...');
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT);
+ expect(await tutorial_3a_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Tutorial#3a Network'
+ });
+ await tutorial_3a_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_3a_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_3a_page.waitForSelector(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_3a_page.click(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+
+ console.log('Simulate network')
+
+ await tutorial_3a_page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 });
+
+ await tutorial_3a_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 10 })
+
+
+ });
+
+
+ it('Connections Plot', async () => {
+
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT * 2);
+ await tutorial_3a_page.waitForSelector(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Connections Plot ...')
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3a_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Connections Plot'
+ });
+
+ });
+
+ it('2D Net Plot', async () => {
+ await tutorial_3a_page.waitForSelector(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.click(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View 2D Net Plot ...')
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT * 3);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3a_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: '2D Net Plot'
+ });
+ });
+
+ it('Cell Traces Plot', async () => {
+ await tutorial_3a_page.waitForSelector(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.click(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Cell Traces Plot ...')
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3a_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Cell Traces Plot'
+ });
+ });
+
+ it('Raster Plot', async () => {
+ await tutorial_3a_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.click(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Raster Plot ...')
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3a_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Raster Plot'
+ });
+ });
+
+ it('Spike Hist Plot', async () => {
+ await tutorial_3a_page.waitForSelector(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.click(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Spike Hist Plot ...')
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3a_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Spike Hist Plot'
+ });
+ });
+
+ it('LFP Time Series Plot', async () => {
+ await tutorial_3a_page.waitForSelector(selectors.LFP_TS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.click(selectors.LFP_TS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View LFP Time Series Plot ...')
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3a_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP Time Series Plot'
+ });
+ });
+
+ it('LFP PSD Plot', async () => {
+ await tutorial_3a_page.waitForSelector(selectors.LFP_PSD_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.click(selectors.LFP_PSD_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View LFP PSD Plot ...')
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3a_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP PSD Plot'
+ });
+ });
+
+ it('LFP Spectrogram Plot', async () => {
+ await tutorial_3a_page.waitForSelector(selectors.LFP_SPECTOGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.click(selectors.LFP_SPECTOGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View LFP Spectrogram Plot ...')
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT * 5);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3a_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP Spectrogram Plot'
+ });
+ });
+
+ it('Granger Plot', async () => {
+ await tutorial_3a_page.waitForSelector(selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.click(selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Granger Plot ...')
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3a_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Granger Plot'
+ });
+ });
+
+ it('RxD concentration plot', async () => {
+ await tutorial_3a_page.waitForSelector(selectors.RXD_CONCENTRATION_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.click(selectors.RXD_CONCENTRATION_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View RxD concentration plot ...')
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3a_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'RxD concentration plot'
+ });
+ });
+
+ it('Rate Spectogram Plot', async () => {
+ await tutorial_3a_page.waitForSelector(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT);
+ // await tutorial_3a_page.waitForSelector(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_3a_page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ // await tutorial_3a_page.waitForTimeout(PAGE_WAIT);
+
+ // await tutorial_3a_page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_3a_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('View Rate Spectogram Plot ...')
+ await tutorial_3a_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3a_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Rate Spectogram Plot'
+ });
+ });
+});
\ No newline at end of file
diff --git a/tests/frontend/e2e/tests/Tut#3b_smoke.test.js b/tests/frontend/e2e/tests/Tut#3b_smoke.test.js
new file mode 100644
index 00000000..da3b28b6
--- /dev/null
+++ b/tests/frontend/e2e/tests/Tut#3b_smoke.test.js
@@ -0,0 +1,340 @@
+//IMPORTS:
+import 'expect-puppeteer';
+import puppeteer from 'puppeteer';
+import { click } from './utils';
+import { toMatchImageSnapshot } from 'jest-image-snapshot'
+expect.extend({ toMatchImageSnapshot })
+const path = require('path');
+var scriptName = path.basename(__filename, '.js');
+import * as selectors from './selectors'
+
+
+//PAGE INFO:
+const baseURL = process.env.url || 'https://test.netpyne.metacell.us/'
+const PAGE_WAIT = 3000;
+const TIMEOUT = 60000;
+
+//SNAPSHOT:
+const SNAPSHOT_OPTIONS = {
+ customSnapshotsDir: `./tests/snapshots/${scriptName}`,
+ comparisonMethod: 'ssim',
+ failureThresholdType: 'percent',
+ failureThreshold: 0.5
+};
+
+
+let r = (Math.random() + 1).toString(36).substring(2);
+
+//USERS:
+const USERNAME = `TestUser${r}`
+const PASSWORD = 'testpassword'
+
+
+//TESTS:
+
+jest.setTimeout(3000000);
+let browser3b;
+let tutorial_3b_page;
+
+
+describe('Tutorial #3b for Smoke Testing', () => {
+
+ beforeAll(async () => {
+ browser3b = await puppeteer.launch(
+ {
+ headless: 'new',
+ args: ['--no-sandbox', '--disable-setuid-sandbox'],
+ defaultViewport: {
+ width: 1300,
+ height: 1024
+ },
+ }
+ );
+ tutorial_3b_page = await browser3b.newPage();
+ await tutorial_3b_page.goto(baseURL);
+ if (baseURL.includes('test.netpyne.metacell.us')) {
+ console.log('Logging in as test user ...')
+ await tutorial_3b_page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR);
+ await tutorial_3b_page.waitForSelector(selectors.USERNAME_SELECTOR)
+ await expect(tutorial_3b_page)
+ .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT });
+
+ await tutorial_3b_page.waitForSelector(selectors.PASSWORD_SELECTOR)
+ await expect(tutorial_3b_page)
+ .toFill(selectors.PASSWORD_SELECTOR, PASSWORD, { timeout: TIMEOUT });
+
+ await tutorial_3b_page.click(selectors.LOGIN_BUTTON_SELECTOR)
+ // Wait for initial loading spinner to disappear
+ await tutorial_3b_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+ console.log('Logged in successfully')
+ }
+ });
+
+ afterAll(async () => {
+ // Close the browser instance after all tests have run
+ await browser3b.close();
+ });
+
+ it('Open new page', async () => {
+
+ console.log('Opening a new NetPyNE page')
+
+ await tutorial_3b_page.on("dialog", dialog =>
+ dialog.accept());
+
+ await tutorial_3b_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true })
+ await tutorial_3b_page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_3b_page.click(selectors.FILE_TAB_SELECTOR)
+ await tutorial_3b_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_3b_page.click(selectors.NEW_FILE_SELECTOR)
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_3b_page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await tutorial_3b_page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await tutorial_3b_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+
+ await tutorial_3b_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 })
+
+ console.log('Page opened successfully')
+
+ })
+
+
+ it('Create and Simulate network', async () => {
+
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT * 2)
+ await tutorial_3b_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('Tutorial #3b')
+
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_3b_page.waitForSelector(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.TUTORIAL_3B_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.TUTORIAL_3B_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.E_CELL_TYPE_SELECTOR)
+ await tutorial_3b_page.waitForSelector(selectors.I_CELL_TYPE_SELECTOR)
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT)
+
+ await tutorial_3b_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR)
+ await tutorial_3b_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_3b_page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR)
+ await tutorial_3b_page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Create network')
+
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT * 3)
+
+ await tutorial_3b_page.waitForSelector(selectors.THREE_D_REP_SELECTOR)
+
+ console.log('... taking snapshot ...');
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT);
+ expect(await tutorial_3b_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Tutorial#3b Network'
+ });
+ await tutorial_3b_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_3b_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_3b_page.waitForSelector(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_3b_page.click(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Simulate network')
+
+ await tutorial_3b_page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 });
+
+ await tutorial_3b_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 })
+
+
+ });
+
+
+ it('Connections Plot', async () => {
+
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT * 2);
+ await tutorial_3b_page.waitForSelector(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Connections Plot ...')
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3b_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Connections Plot'
+ });
+
+ });
+
+ it('2D Net Plot', async () => {
+ await tutorial_3b_page.waitForSelector(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View 2D Net Plot ...')
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT * 3);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3b_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: '2D Net Plot'
+ });
+ });
+
+ it('Cell Traces Plot', async () => {
+ await tutorial_3b_page.waitForSelector(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Cell Traces Plot ...')
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3b_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Cell Traces Plot'
+ });
+ });
+
+ it('Raster Plot', async () => {
+ await tutorial_3b_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Raster Plot ...')
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3b_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Raster Plot'
+ });
+ });
+
+ it('Spike Hist Plot', async () => {
+ await tutorial_3b_page.waitForSelector(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Spike Hist Plot ...')
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3b_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Spike Hist Plot'
+ });
+ });
+
+ it('LFP Time Series Plot', async () => {
+ await tutorial_3b_page.waitForSelector(selectors.LFP_TS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.LFP_TS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View LFP Time Series Plot ...')
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3b_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP Time Series Plot'
+ });
+ });
+
+ it('LFP PSD Plot', async () => {
+ await tutorial_3b_page.waitForSelector(selectors.LFP_PSD_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.LFP_PSD_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View LFP PSD Plot ...')
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT * 2);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3b_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP PSD Plot'
+ });
+ });
+
+ it('LFP Spectrogram Plot', async () => {
+ await tutorial_3b_page.waitForSelector(selectors.LFP_SPECTOGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.LFP_SPECTOGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View LFP Spectrogram Plot ...')
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT * 5);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3b_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP Spectrogram Plot'
+ });
+ });
+
+ it('Granger Plot', async () => {
+ await tutorial_3b_page.waitForSelector(selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Granger Plot ...')
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT * 2);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3b_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Granger Plot'
+ });
+ });
+
+ it('RxD concentration plot', async () => {
+ await tutorial_3b_page.waitForSelector(selectors.RXD_CONCENTRATION_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.RXD_CONCENTRATION_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View RxD concentration plot ...')
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3b_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'RxD concentration plot'
+ });
+ });
+
+ it('Rate Spectogram Plot', async () => {
+ await tutorial_3b_page.waitForSelector(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT);
+
+ // await tutorial_3b_page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ // await tutorial_3b_page.waitForTimeout(PAGE_WAIT);
+
+ // await tutorial_3b_page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_3b_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('View Rate Spectogram Plot ...')
+ await tutorial_3b_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3b_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Rate Spectogram Plot'
+ });
+ });
+
+});
\ No newline at end of file
diff --git a/tests/frontend/e2e/tests/Tut#3c_smoke.test.js b/tests/frontend/e2e/tests/Tut#3c_smoke.test.js
new file mode 100644
index 00000000..6c2b68fd
--- /dev/null
+++ b/tests/frontend/e2e/tests/Tut#3c_smoke.test.js
@@ -0,0 +1,329 @@
+//IMPORTS:
+import 'expect-puppeteer';
+import puppeteer from 'puppeteer';
+import { click } from './utils';
+import { toMatchImageSnapshot } from 'jest-image-snapshot'
+expect.extend({ toMatchImageSnapshot })
+const path = require('path');
+var scriptName = path.basename(__filename, '.js');
+import * as selectors from './selectors'
+
+
+
+//PAGE INFO:
+const baseURL = process.env.url || 'https://test.netpyne.metacell.us/'
+const PAGE_WAIT = 3000;
+const TIMEOUT = 60000;
+
+//SNAPSHOT:
+const SNAPSHOT_OPTIONS = {
+ customSnapshotsDir: `./tests/snapshots/${scriptName}`,
+ comparisonMethod: 'ssim',
+ failureThresholdType: 'percent',
+ failureThreshold: 0.5
+};
+
+
+let r = (Math.random() + 1).toString(36).substring(2);
+
+//USERS:
+const USERNAME = `TestUser${r}`
+const PASSWORD = 'testpassword'
+
+
+//TESTS:
+
+jest.setTimeout(3000000);
+let browser3c;
+let tutorial_3c_page;
+
+
+describe('Tutorial #3c for Smoke Testing', () => {
+
+ beforeAll(async () => {
+ browser3c = await puppeteer.launch(
+ {
+ headless: 'new',
+ args: ['--no-sandbox', '--disable-setuid-sandbox'],
+ defaultViewport: {
+ width: 1300,
+ height: 1024
+ },
+ }
+ );
+ tutorial_3c_page = await browser3c.newPage();
+ await tutorial_3c_page.goto(baseURL);
+ if (baseURL.includes('test.netpyne.metacell.us')) {
+ console.log('Logging in as test user ...')
+ await tutorial_3c_page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR);
+ await tutorial_3c_page.waitForSelector(selectors.USERNAME_SELECTOR)
+ await expect(tutorial_3c_page)
+ .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT });
+
+ await tutorial_3c_page.waitForSelector(selectors.PASSWORD_SELECTOR)
+ await expect(tutorial_3c_page)
+ .toFill(selectors.PASSWORD_SELECTOR, PASSWORD, { timeout: TIMEOUT });
+
+ await tutorial_3c_page.click(selectors.LOGIN_BUTTON_SELECTOR)
+ // Wait for initial loading spinner to disappear
+ await tutorial_3c_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+ console.log('Logged in successfully')
+ }
+ });
+
+ afterAll(async () => {
+ // Close the browser instance after all tests have run
+ await browser3c.close();
+ });
+
+ it('Open new page', async () => {
+
+ console.log('Opening a new NetPyNE page')
+
+ await tutorial_3c_page.on("dialog", dialog =>
+ dialog.accept());
+
+ await tutorial_3c_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true })
+ await tutorial_3c_page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_3c_page.click(selectors.FILE_TAB_SELECTOR)
+ await tutorial_3c_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_3c_page.click(selectors.NEW_FILE_SELECTOR)
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_3c_page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await tutorial_3c_page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await tutorial_3c_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+
+ await tutorial_3c_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 })
+
+ console.log('Page opened successfully')
+
+ })
+
+
+ it('Create and Simulate network', async () => {
+
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT * 2)
+ await tutorial_3c_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('Tutorial #3c')
+
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_3c_page.waitForSelector(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.waitForSelector(selectors.TUTORIAL_3C_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.click(selectors.TUTORIAL_3C_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.waitForSelector(selectors.E_CELL_TYPE_SELECTOR)
+ await tutorial_3c_page.waitForSelector(selectors.I_CELL_TYPE_SELECTOR)
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT)
+
+ await tutorial_3c_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR)
+ await tutorial_3c_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_3c_page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR)
+ await tutorial_3c_page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Create network')
+
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT * 3)
+
+ await tutorial_3c_page.waitForSelector(selectors.THREE_D_REP_SELECTOR)
+
+ console.log('... taking snapshot ...');
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT);
+ expect(await tutorial_3c_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Tutorial#3c Network'
+ });
+
+ //there is a bug related to 'Model' > 'Simulate Network'
+ // await page.click( MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT);
+ //reason why the tests are using the simulate button on the top right
+ await tutorial_3c_page.click(selectors.SIMULATE_TOP_RIGHT_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ // await page.click( SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ console.log('Simulate network')
+
+ await tutorial_3c_page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 });
+
+ await tutorial_3c_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 })
+
+
+ });
+
+
+ it('Connections Plot', async () => {
+
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT * 2);
+ await tutorial_3c_page.waitForSelector(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Connections Plot ...')
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3c_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Connections Plot'
+ });
+
+ });
+
+ it('2D Net Plot', async () => {
+ await tutorial_3c_page.waitForSelector(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.click(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View 2D Net Plot ...')
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT * 3);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3c_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: '2D Net Plot'
+ });
+ });
+
+ it('Cell Traces Plot', async () => {
+ await tutorial_3c_page.waitForSelector(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.click(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Cell Traces Plot ...')
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3c_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Cell Traces Plot'
+ });
+ });
+
+ it('Raster Plot', async () => {
+ await tutorial_3c_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.click(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Raster Plot ...')
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3c_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Raster Plot'
+ });
+ });
+
+ it('Spike Hist Plot', async () => {
+ await tutorial_3c_page.waitForSelector(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.click(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Spike Hist Plot ...')
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3c_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Spike Hist Plot'
+ });
+ });
+
+ it('LFP Time Series Plot', async () => {
+ await tutorial_3c_page.waitForSelector(selectors.LFP_TS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.click(selectors.LFP_TS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View LFP Time Series Plot ...')
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3c_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP Time Series Plot'
+ });
+ });
+
+ it('LFP PSD Plot', async () => {
+ await tutorial_3c_page.waitForSelector(selectors.LFP_PSD_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.click(selectors.LFP_PSD_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View LFP PSD Plot ...')
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3c_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP PSD Plot'
+ });
+ });
+
+ it('LFP Spectrogram Plot', async () => {
+ await tutorial_3c_page.waitForSelector(selectors.LFP_SPECTOGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.click(selectors.LFP_SPECTOGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View LFP Spectrogram Plot ...')
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT * 3);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3c_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'LFP Spectrogram Plot'
+ });
+ });
+
+ it('Granger Plot', async () => {
+ await tutorial_3c_page.waitForSelector(selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.click(selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Granger Plot ...')
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3c_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Granger Plot'
+ });
+ });
+
+
+ it('Rate Spectogram Plot', async () => {
+ await tutorial_3c_page.waitForSelector(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_3c_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT);
+ // await tutorial_3c_page.waitForSelector(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_3c_page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_3c_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ // await tutorial_3c_page.waitForTimeout(PAGE_WAIT);
+
+ // await tutorial_3c_page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_3c_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('View Rate Spectogram Plot ...')
+ await tutorial_3c_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_3c_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Rate Spectogram Plot'
+ });
+ });
+
+});
\ No newline at end of file
diff --git a/tests/frontend/e2e/tests/Tut#4_smoke.test.js b/tests/frontend/e2e/tests/Tut#4_smoke.test.js
new file mode 100644
index 00000000..dc0a3051
--- /dev/null
+++ b/tests/frontend/e2e/tests/Tut#4_smoke.test.js
@@ -0,0 +1,265 @@
+//IMPORTS:
+import 'expect-puppeteer';
+import puppeteer from 'puppeteer';
+import { click } from './utils';
+import { toMatchImageSnapshot } from 'jest-image-snapshot'
+expect.extend({ toMatchImageSnapshot })
+const path = require('path');
+var scriptName = path.basename(__filename, '.js');
+import * as selectors from './selectors'
+
+
+//PAGE INFO:
+const baseURL = process.env.url || 'https://test.netpyne.metacell.us/'
+const PAGE_WAIT = 3000;
+const TIMEOUT = 60000;
+
+//SNAPSHOT:
+const SNAPSHOT_OPTIONS = {
+ customSnapshotsDir: `./tests/snapshots/${scriptName}`,
+ comparisonMethod: 'ssim',
+ failureThresholdType: 'percent',
+ failureThreshold: 0.5
+};
+
+
+let r = (Math.random() + 1).toString(36).substring(2);
+
+//USERS:
+const USERNAME = `TestUser${r}`
+const PASSWORD = 'testpassword'
+
+
+//TESTS:
+
+jest.setTimeout(3000000);
+let browser4;
+let tutorial_4_page;
+
+
+describe('Tutorial #4 for Smoke Testing', () => {
+
+ beforeAll(async () => {
+ browser4 = await puppeteer.launch(
+ {
+ headless: 'new',
+ args: ['--no-sandbox', '--disable-setuid-sandbox'],
+ defaultViewport: {
+ width: 1300,
+ height: 1024
+ },
+ }
+ );
+ tutorial_4_page = await browser4.newPage();
+ await tutorial_4_page.goto(baseURL);
+ if (baseURL.includes('test.netpyne.metacell.us')) {
+ console.log('Logging in as test user ...')
+ await tutorial_4_page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR);
+ await tutorial_4_page.waitForSelector(selectors.USERNAME_SELECTOR)
+ await expect(tutorial_4_page)
+ .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT });
+
+ await tutorial_4_page.waitForSelector(selectors.PASSWORD_SELECTOR)
+ await expect(tutorial_4_page)
+ .toFill(selectors.PASSWORD_SELECTOR, PASSWORD, { timeout: TIMEOUT });
+
+ await tutorial_4_page.click(selectors.LOGIN_BUTTON_SELECTOR)
+ // Wait for initial loading spinner to disappear
+ await tutorial_4_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+ console.log('Logged in successfully')
+ }
+ });
+
+ afterAll(async () => {
+ // Close the browser instance after all tests have run
+ await browser4.close();
+ });
+
+ it('Open new page', async () => {
+
+ console.log('Opening a new NetPyNE page')
+
+ await tutorial_4_page.on("dialog", dialog =>
+ dialog.accept());
+
+ await tutorial_4_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true })
+ await tutorial_4_page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_4_page.click(selectors.FILE_TAB_SELECTOR)
+ await tutorial_4_page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 })
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_4_page.click(selectors.NEW_FILE_SELECTOR)
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_4_page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await tutorial_4_page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR)
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT * 2)
+
+ await tutorial_4_page.waitForFunction(() => {
+ let el = document.querySelector('#loading-spinner');
+ return el == null || el.clientHeight === 0;
+ }, { timeout: TIMEOUT });
+
+ await tutorial_4_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 })
+
+ console.log('Page opened successfully')
+
+ })
+
+
+ it('Create and Simulate network', async () => {
+
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT * 2)
+ await tutorial_4_page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('Tutorial #4')
+
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT)
+ await tutorial_4_page.waitForSelector(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.waitForSelector(selectors.TUTORIAL_4_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.click(selectors.TUTORIAL_4_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.waitForSelector(selectors.PYR_2_CELL_SELECTOR)
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT)
+
+ await tutorial_4_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR)
+ await tutorial_4_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_4_page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR)
+ await tutorial_4_page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Create network')
+
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT * 3)
+
+ await tutorial_4_page.waitForSelector(selectors.THREE_D_REP_SELECTOR)
+
+ console.log('... taking snapshot ...');
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT);
+ expect(await tutorial_4_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Tutorial#4 Network'
+ });
+ await tutorial_4_page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_4_page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_4_page.waitForSelector(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+ await tutorial_4_page.click(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT });
+
+ console.log('Simulate network')
+
+ await tutorial_4_page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 });
+
+ await tutorial_4_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 })
+
+
+ });
+
+
+ it('Connections Plot', async () => {
+
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT * 2);
+ await tutorial_4_page.waitForSelector(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Connections Plot ...')
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_4_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Connections Plot'
+ });
+
+ });
+
+ it('2D Net Plot', async () => {
+ await tutorial_4_page.waitForSelector(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.click(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View 2D Net Plot ...')
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT * 3);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_4_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: '2D Net Plot'
+ });
+ });
+
+ it('Cell Traces Plot', async () => {
+ await tutorial_4_page.waitForSelector(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.click(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Cell Traces Plot ...')
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_4_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Cell Traces Plot'
+ });
+ });
+
+ it('Raster Plot', async () => {
+ await tutorial_4_page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.click(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Raster Plot ...')
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_4_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Raster Plot'
+ });
+ });
+
+ it('Spike Hist Plot', async () => {
+ await tutorial_4_page.waitForSelector(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.click(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+ console.log('View Spike Hist Plot ...')
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_4_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Spike Hist Plot'
+ });
+ });
+
+
+ it('Rate Spectogram Plot', async () => {
+ await tutorial_4_page.waitForSelector(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ await tutorial_4_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ // await tutorial_4_page.waitForTimeout(PAGE_WAIT);
+ // await tutorial_4_page.waitForSelector(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_4_page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_4_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT);
+
+ // await tutorial_4_page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT })
+ // await tutorial_4_page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT })
+
+ console.log('View Rate Spectogram Plot ...')
+ await tutorial_4_page.waitForTimeout(PAGE_WAIT);
+
+ console.log('... taking snapshot ...');
+ expect(await tutorial_4_page.screenshot())
+ .toMatchImageSnapshot({
+ ...SNAPSHOT_OPTIONS,
+ customSnapshotIdentifier: 'Rate Spectogram Plot'
+ });
+ });
+
+});
\ No newline at end of file
diff --git a/tests/frontend/e2e/tests/selectors.js b/tests/frontend/e2e/tests/selectors.js
new file mode 100644
index 00000000..ad70c467
--- /dev/null
+++ b/tests/frontend/e2e/tests/selectors.js
@@ -0,0 +1,106 @@
+
+export const BASE_PAGE_SELECTOR = '.NetPyNE-root-1'
+export const TUTORIALS_BUTTON_SELECTOR = 'button[id = "Examples"]'
+export const MODEL_BUTTON_SELECTOR = 'button[id="Model"]'
+export const CREATE_NETWORK_SELECTOR = 'li[id="Create network"]'
+export const CREATE_AND_SIMULATE_NETWORK_SELECTOR = 'li[id="Create and simulate network"]'
+export const SIMULATE_NETWORK_SELECTOR = 'li[id="Simulate network"]'
+export const SIMULATE_TOP_RIGHT_BUTTON_SELECTOR = 'div[class="MuiButtonGroup-root MuiButtonGroup-contained"]'
+export const SIMULATION_PAGE_SELECTOR = 'canvas'
+export const CONNECTIONS_PLOT_SELECTOR = 'div[title=\"Connections Plot\"][role=button]'
+export const LOGIN_PAGE_SELECTOR = '#login-main';
+export const USERNAME_SELECTOR = '#username_input';
+export const PASSWORD_SELECTOR = '#password_input';
+export const LOGIN_BUTTON_SELECTOR = '#login_submit';
+export const SELECT_CELL_BUTTON_SELECTOR = '#selectCellButton';
+export const TUTORIAL_1_SELECTOR = "li[id='Tut 1: Simple cell network']";
+export const TUTORIAL_2_SELECTOR = "li[id='Tut 2: Detailed cell network']"
+export const TUTORIAL_3A_SELECTOR = "li[id='Tut 3a: Multiscale network (low IP3)']"
+export const TUTORIAL_3B_SELECTOR = "li[id='Tut 3b: Multiscale network (high IP3)']"
+export const TUTORIAL_3C_SELECTOR = "li[id='Tut 3c: Multiscale network (no RxD)']"
+export const TUTORIAL_4_SELECTOR = "li[id='Tut 4: Simple oscillatory network']"
+export const PYR_CELL_SELECTOR = '#pyr';
+export const PYR_2_CELL_SELECTOR = '#PYR'
+export const INT_CELL_SELECTOR = '#INT'
+export const E_CELL_TYPE_SELECTOR = '#E'
+export const I_CELL_TYPE_SELECTOR = '#I'
+export const CONFIGURATION_TAB_SELECTOR = 'div[title="Configuration"]';
+export const RECORDING_CONFIGURATION_TAB_SELECTOR = '#configRecord';
+export const TRACES_TO_RECORD_SELECTOR = `div[title="Dict of traces to record (default: {} ; example: {'V_soma': {'sec':'soma','loc':0.5,'var':'v'} })."]`;
+export const DIPOLE_LFPYKIT_SELECTOR = `#simConfigrecordDipole`;
+export const DISABLED_EEG_PLOT_SELECTOR = 'div[title="EEG plot"][aria-disabled="true"]';
+export const DISABLED_DIPOLE_PLOT_SELECTOR = 'div[title="Dipole plot"][aria-disabled="true"]';
+export const SIMULATE_BUTTON_SELECTOR = 'div[class="MuiButtonGroup-root MuiButtonGroup-contained"]';
+export const RASTER_PLOT_SELECTOR = 'div[title="Raster plot"][aria-disabled="false"]';
+export const EEG_PLOT_SELECTOR = 'div[title="EEG plot"][aria-disabled="false"]';
+export const DIPOLE_PLOT_SELECTOR = 'div[title="Dipole plot"][aria-disabled="false"]';
+export const GRANGER_PLOT_SELECTOR = 'div[title=\"Granger Plot\"][role=button]'
+export const TWO_D_NET_PLOT_SELECTOR = 'div[title=\"2D Net Plot\"][role=button]'
+export const CELL_TRACES_PLOT_SELECTOR = 'div[title=\"Cell traces\"][role=button]'
+export const SPIKE_HIST_PLOT_SELECTOR = 'div[title=\"Spike Hist Plot\"][role=button]'
+export const RATE_SPECTROGRAM_PLOT_SELECTOR = 'div[title=\"Rate Spectrogram Plot\"][role=button]'
+export const RXD_CONCENTRATION_PLOT_SELECTOR = 'div[title=\"RxD concentration plot\"][role=button]'
+export const LFP_TS_PLOT_SELECTOR = 'div[title=\"LFP Time Series Plot\"][role=button]'
+export const LFP_PSD_PLOT_SELECTOR = 'div[title=\"LFP PSD Plot\"][role=button]'
+export const LFP_SPECTOGRAM_PLOT_SELECTOR = 'div[title=\"LFP Spectrogram Plot\"][role=button]'
+export const CANVAS_SELECTOR = 'canvas';
+export const THREE_D_REP_SELECTOR = 'div[title="3D Representation"][aria-disabled="false"]'
+export const DISABLED_RASTER_PLOT_SELECTOR = 'div[title="Raster plot"][aria-disabled="true"]'
+export const EXPERIMENT_MANAGER_TAB_SELECTOR = 'div[title="Experiment Manager"]'
+export const CREATE_NEW_EXPERIMENT_SELECTOR = 'button[class="MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textPrimary"]'
+export const CREATE_NEW_EXPERIMENT_POPUP_SELECTOR = 'h2[class="MuiTypography-root MuiTypography-h6"]'
+export const CONFIRM_SELECTOR = '#confirmDeletion'
+export const EXPERIMENT_NAME_SELECTOR = '#experiment-name'
+export const PARAMETER_SELECTION_SELECTOR = '#undefined-combo-box-demo'
+export const FROM_VALUE_SELECTOR = '#undefined-from'
+export const TO_VALUE_SELECTOR = '#undefined-to'
+export const STEP_VALUE_SELECTOR = '#undefined-step'
+export const CREATE_EXPERIMENT_BUTTON_SELECTOR = 'button[class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary"]'
+export const EXPERIMENT_TABLE_HEADER_SELECTOR = 'th[class="MuiTableCell-root MuiTableCell-body"]'
+// export const SIMULATE_POPUP_SELECTOR = 'div[class="MuiBox-root MuiBox-root-185 wrap"]'
+export const SIMULATE_POPUP_SELECTOR = '.MuiDialogContent-root > .MuiBox-root.custom-radio > :nth-child(2) > div'
+
+export const CONFIRM_SIMULATE_SELECTOR = '#appBarPerformActionButton'
+export const CONFIRM_EXPERIMENT_STARTED_SELECTOR = 'button[class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary"]'
+// export const SIMULATION_LOADER_SELECTOR = 'div[class = "MuiBox-root MuiBox-root-186 MuiChip-icon MuiChipLoader"]'
+export const SIMULATION_LOADER_SELECTOR = '.MuiTableCell-root.MuiTableCell-body.experimentTableCell.MuiTableCell-alignLeft > div > .MuiChipLoader '
+export const BACK_TO_EDIT_SELECTOR = 'span[class="MuiButton-startIcon MuiButton-iconSizeMedium"]'
+export const CELL_TYPES_TAB_SELECTOR = 'div[title="Cell Types"]'
+export const EXPERIMENT_TABLE_SELECTOR = 'table[class="MuiTable-root"]'
+export const CREATED_EXPERIMENT_SELECTOR = 'button[class="MuiButtonBase-root MuiButton-root MuiButton-text"]'
+export const EXPERIMENT_CONDIIONS_ROW_SELECTOR = 'tr[class = "MuiTableRow-root MuiTableRow-head"]'
+export const EDIT_EXPERIMENT_BACK_SELECTOR = '.editExperimentBack > svg'
+export const INDIVIDUAL_EXPERIMENT_ROW_SELECTOR = 'tr[class="MuiTableRow-root"]'
+export const FILE_TAB_SELECTOR = '#File'
+export const NEW_FILE_SELECTOR = '#New'
+export const CONFIRM_NEW_PAGE_SELECTOR = '#appBarPerformActionButton'
+export const CONTROL_PANEL_TAB_SELECTOR = 'div[title="Control Panel"]'
+export const NETWORKS_IN_CONTROL_PANEL_SELECTOR = 'ul[role="tree"]'
+export const NETWORK_ITEMS_CONTROL_PANEL_SELECTOR = 'li[role="treeitem"]'
+export const COLOR_CONTROL_BUTTONS_SELECTOR = 'button[class="MuiButtonBase-root MuiIconButton-root"]'
+export const COLOR_RECT_SELECTOR = 'rect[rx="5"]'
+export const CONTROL_PANEL_NETWORK_ROWS_SELECTOR = 'div[class = "MuiTypography-root MuiTreeItem-label MuiTypography-body1"]'
+export const CONTROL_PANEL_TABLE_SELECTOR = 'div[class="MuiGrid-root MuiGrid-container MuiGrid-justify-content-xs-space-between"]'
+export const CONTROL_PANEL_FILTER_SELECTOR = 'input[class="MuiInputBase-input MuiOutlinedInput-input"]'
+export const FILE_SYSTEM_SELECTOR = '.ReactVirtualized__Grid__innerScrollContainer'
+export const LEVEL_UP_SELECTOR ='.fa-level-up'
+export const FOLDERS_SELECTOR ='div[class = "rst__rowContents rst__rowContentsDragDisabled"]'
+export const SELECT_BUTTON_SELECTOR ='#browserAccept'
+export const E_RULE_SELECTOR ='#Erule'
+export const NETWORK_CREATION_MENU_BUTTON_SELECTOR ='button[aria-label="select merge strategy"]'
+export const NETWORK_CREATION_MENU_ITEMS_SELECTOR ='#split-button-menu > li'
+export const NETWORK_CREATION_BUTTON_SELECTOR ='div[aria-label="split button"]'
+export const POPULATIONS_TAB_SELECTOR ='div[title="Populations"]'
+export const SAVE_MENU_SELECTOR ='h2[class="MuiTypography-root MuiTypography-h6"]'
+export const PATH_INPUT_SELECTOR ='input[class="MuiInputBase-input MuiFilledInput-input MuiInputBase-inputAdornedStart MuiFilledInput-inputAdornedStart"]'
+export const SAVE_BUTTON_SELECTOR ='#appBarPerformActionButton'
+export const EXPORT_OPTIONS_SELECTOR ='ul[class="MuiList-root MuiList-padding"]'
+export const CHECKBOX_OPTION_SELECTOR ='input[type="checkbox"]'
+export const PYTHON_CONSOLE_TAB_SELECTOR ='div[title="Python"]'
+export const PYTHON_CONSLE_SELECTOR ='#pythonConsoleOutput'
+export const PYTHON_CONSOLE_FRAME_SELECTOR ='#pythonConsoleFrame'
+export const MAIN_PYTHON_APP_SELECTOR ='#ipython-main-app'
+export const PYTHON_CELL_SELECTOR ='div.inner_cell'
+export const PYTHON_OUTPUT_SELECTOR ='div[class="output_subarea output_text output_stream output_stdout"]'
+export const PYTHON_FIRST_OUTPUT_SELECTOR ='div[class="output_subarea output_text output_result"]'
+
diff --git a/tests/frontend/e2e/tests/snapshots/EEG_and_Dipole_Tut#1.test/Dipole Plot-snap.png b/tests/frontend/e2e/tests/snapshots/EEG_and_Dipole_Tut#1.test/Dipole Plot-snap.png
new file mode 100644
index 00000000..e3106138
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/EEG_and_Dipole_Tut#1.test/Dipole Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/EEG_and_Dipole_Tut#1.test/EEG Plot-snap.png b/tests/frontend/e2e/tests/snapshots/EEG_and_Dipole_Tut#1.test/EEG Plot-snap.png
new file mode 100644
index 00000000..28eca622
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/EEG_and_Dipole_Tut#1.test/EEG Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/EEG_and_Dipole_Tut#1.test/Tutorial#1 Network-snap.png b/tests/frontend/e2e/tests/snapshots/EEG_and_Dipole_Tut#1.test/Tutorial#1 Network-snap.png
new file mode 100644
index 00000000..8d3a430b
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/EEG_and_Dipole_Tut#1.test/Tutorial#1 Network-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/ExperimentManager_Tut#1.test/Experiment Condition #1-snap.png b/tests/frontend/e2e/tests/snapshots/ExperimentManager_Tut#1.test/Experiment Condition #1-snap.png
new file mode 100644
index 00000000..deb08a25
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/ExperimentManager_Tut#1.test/Experiment Condition #1-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/ExperimentManager_Tut#1.test/Experiment Condition #2-snap.png b/tests/frontend/e2e/tests/snapshots/ExperimentManager_Tut#1.test/Experiment Condition #2-snap.png
new file mode 100644
index 00000000..4ce58a0c
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/ExperimentManager_Tut#1.test/Experiment Condition #2-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/ExperimentManager_Tut#1.test/Experiment Condition #3-snap.png b/tests/frontend/e2e/tests/snapshots/ExperimentManager_Tut#1.test/Experiment Condition #3-snap.png
new file mode 100644
index 00000000..3bfab13f
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/ExperimentManager_Tut#1.test/Experiment Condition #3-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/ExperimentManager_Tut#1.test/Tutorial#1 Network-snap.png b/tests/frontend/e2e/tests/snapshots/ExperimentManager_Tut#1.test/Tutorial#1 Network-snap.png
new file mode 100644
index 00000000..5c0866e6
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/ExperimentManager_Tut#1.test/Tutorial#1 Network-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/RxD.test/LFP PSD Plot After change-snap.png b/tests/frontend/e2e/tests/snapshots/RxD.test/LFP PSD Plot After change-snap.png
new file mode 100644
index 00000000..f7c967fd
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/RxD.test/LFP PSD Plot After change-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/RxD.test/LFP PSD Plot Before change-snap.png b/tests/frontend/e2e/tests/snapshots/RxD.test/LFP PSD Plot Before change-snap.png
new file mode 100644
index 00000000..75959d0d
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/RxD.test/LFP PSD Plot Before change-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/RxD.test/LFP Time Series Plot After change-snap.png b/tests/frontend/e2e/tests/snapshots/RxD.test/LFP Time Series Plot After change-snap.png
new file mode 100644
index 00000000..56fe6ff6
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/RxD.test/LFP Time Series Plot After change-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/RxD.test/LFP Time Series Plot Before change-snap.png b/tests/frontend/e2e/tests/snapshots/RxD.test/LFP Time Series Plot Before change-snap.png
new file mode 100644
index 00000000..2ec0be73
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/RxD.test/LFP Time Series Plot Before change-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/RxD.test/RxD Plot-snap.png b/tests/frontend/e2e/tests/snapshots/RxD.test/RxD Plot-snap.png
new file mode 100644
index 00000000..93173120
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/RxD.test/RxD Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/SaveOpenFile.test/Edited NetClamp Model-snap.png b/tests/frontend/e2e/tests/snapshots/SaveOpenFile.test/Edited NetClamp Model-snap.png
new file mode 100644
index 00000000..595eda92
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/SaveOpenFile.test/Edited NetClamp Model-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/SaveOpenFile.test/NetClamp Model-snap.png b/tests/frontend/e2e/tests/snapshots/SaveOpenFile.test/NetClamp Model-snap.png
new file mode 100644
index 00000000..c6b23287
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/SaveOpenFile.test/NetClamp Model-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/2D Net Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/2D Net Plot-snap.png
new file mode 100644
index 00000000..67d65a70
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/2D Net Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Cell Traces Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Cell Traces Plot-snap.png
new file mode 100644
index 00000000..48e88e16
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Cell Traces Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Connections Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Connections Plot-snap.png
new file mode 100644
index 00000000..82877967
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Connections Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Granger Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Granger Plot-snap.png
new file mode 100644
index 00000000..14995c50
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Granger Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Raster Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Raster Plot-snap.png
new file mode 100644
index 00000000..2723a956
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Raster Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Rate Spectogram Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Rate Spectogram Plot-snap.png
new file mode 100644
index 00000000..7e0818c0
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Rate Spectogram Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Spike Hist Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Spike Hist Plot-snap.png
new file mode 100644
index 00000000..c689d4eb
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Spike Hist Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Tutorial#1 Network-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Tutorial#1 Network-snap.png
new file mode 100644
index 00000000..ab99e4f9
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#1_smoke.test/Tutorial#1 Network-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/2D Net Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/2D Net Plot-snap.png
new file mode 100644
index 00000000..6b094e2c
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/2D Net Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Cell Traces Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Cell Traces Plot-snap.png
new file mode 100644
index 00000000..875710e4
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Cell Traces Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Connections Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Connections Plot-snap.png
new file mode 100644
index 00000000..3bf81c52
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Connections Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Granger Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Granger Plot-snap.png
new file mode 100644
index 00000000..6fe20f99
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Granger Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Raster Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Raster Plot-snap.png
new file mode 100644
index 00000000..98d7cd32
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Raster Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Rate Spectogram Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Rate Spectogram Plot-snap.png
new file mode 100644
index 00000000..6d0f95ef
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Rate Spectogram Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Spike Hist Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Spike Hist Plot-snap.png
new file mode 100644
index 00000000..a3dd942d
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Spike Hist Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Tutorial#2 Network-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Tutorial#2 Network-snap.png
new file mode 100644
index 00000000..24203ab7
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#2_smoke.test/Tutorial#2 Network-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/2D Net Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/2D Net Plot-snap.png
new file mode 100644
index 00000000..9c6b3f25
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/2D Net Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Cell Traces Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Cell Traces Plot-snap.png
new file mode 100644
index 00000000..031990f6
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Cell Traces Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Connections Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Connections Plot-snap.png
new file mode 100644
index 00000000..8f51ba6d
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Connections Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Granger Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Granger Plot-snap.png
new file mode 100644
index 00000000..fc53d01e
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Granger Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/LFP PSD Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/LFP PSD Plot-snap.png
new file mode 100644
index 00000000..004c57d2
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/LFP PSD Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/LFP Spectrogram Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/LFP Spectrogram Plot-snap.png
new file mode 100644
index 00000000..6c5af449
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/LFP Spectrogram Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/LFP Time Series Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/LFP Time Series Plot-snap.png
new file mode 100644
index 00000000..cbc26a40
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/LFP Time Series Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Raster Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Raster Plot-snap.png
new file mode 100644
index 00000000..1bebb198
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Raster Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Rate Spectogram Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Rate Spectogram Plot-snap.png
new file mode 100644
index 00000000..c80bfee6
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Rate Spectogram Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/RxD concentration plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/RxD concentration plot-snap.png
new file mode 100644
index 00000000..3460ad8c
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/RxD concentration plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Spike Hist Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Spike Hist Plot-snap.png
new file mode 100644
index 00000000..b4dd0ca1
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Spike Hist Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Tutorial#3a Network-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Tutorial#3a Network-snap.png
new file mode 100644
index 00000000..c8729805
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3a_smoke.test/Tutorial#3a Network-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/2D Net Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/2D Net Plot-snap.png
new file mode 100644
index 00000000..9c6b3f25
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/2D Net Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Cell Traces Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Cell Traces Plot-snap.png
new file mode 100644
index 00000000..52010398
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Cell Traces Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Connections Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Connections Plot-snap.png
new file mode 100644
index 00000000..8f51ba6d
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Connections Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Granger Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Granger Plot-snap.png
new file mode 100644
index 00000000..c5f54ed0
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Granger Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/LFP PSD Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/LFP PSD Plot-snap.png
new file mode 100644
index 00000000..68543f5c
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/LFP PSD Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/LFP Spectrogram Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/LFP Spectrogram Plot-snap.png
new file mode 100644
index 00000000..dfa394bc
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/LFP Spectrogram Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/LFP Time Series Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/LFP Time Series Plot-snap.png
new file mode 100644
index 00000000..19c9c018
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/LFP Time Series Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Raster Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Raster Plot-snap.png
new file mode 100644
index 00000000..6097f96c
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Raster Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Rate Spectogram Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Rate Spectogram Plot-snap.png
new file mode 100644
index 00000000..4297501b
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Rate Spectogram Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/RxD concentration plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/RxD concentration plot-snap.png
new file mode 100644
index 00000000..0e1680df
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/RxD concentration plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Spike Hist Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Spike Hist Plot-snap.png
new file mode 100644
index 00000000..dd5177f9
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Spike Hist Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Tutorial#3b Network-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Tutorial#3b Network-snap.png
new file mode 100644
index 00000000..c8729805
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3b_smoke.test/Tutorial#3b Network-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/2D Net Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/2D Net Plot-snap.png
new file mode 100644
index 00000000..2c7d45c8
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/2D Net Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Cell Traces Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Cell Traces Plot-snap.png
new file mode 100644
index 00000000..03021bcf
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Cell Traces Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Connections Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Connections Plot-snap.png
new file mode 100644
index 00000000..43cc014c
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Connections Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Granger Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Granger Plot-snap.png
new file mode 100644
index 00000000..02833764
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Granger Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/LFP PSD Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/LFP PSD Plot-snap.png
new file mode 100644
index 00000000..2bd8ead4
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/LFP PSD Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/LFP Spectrogram Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/LFP Spectrogram Plot-snap.png
new file mode 100644
index 00000000..a1570f0b
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/LFP Spectrogram Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/LFP Time Series Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/LFP Time Series Plot-snap.png
new file mode 100644
index 00000000..b504f66f
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/LFP Time Series Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Raster Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Raster Plot-snap.png
new file mode 100644
index 00000000..615f10b8
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Raster Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Rate Spectogram Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Rate Spectogram Plot-snap.png
new file mode 100644
index 00000000..fac79474
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Rate Spectogram Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Spike Hist Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Spike Hist Plot-snap.png
new file mode 100644
index 00000000..6f33062c
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Spike Hist Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Tutorial#3c Network-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Tutorial#3c Network-snap.png
new file mode 100644
index 00000000..894e4e8b
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#3c_smoke.test/Tutorial#3c Network-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/2D Net Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/2D Net Plot-snap.png
new file mode 100644
index 00000000..6f208a9b
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/2D Net Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Cell Traces Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Cell Traces Plot-snap.png
new file mode 100644
index 00000000..d0e11cbb
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Cell Traces Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Connections Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Connections Plot-snap.png
new file mode 100644
index 00000000..d5cdb076
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Connections Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Raster Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Raster Plot-snap.png
new file mode 100644
index 00000000..b304fc09
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Raster Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Rate Spectogram Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Rate Spectogram Plot-snap.png
new file mode 100644
index 00000000..3eb56a2c
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Rate Spectogram Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Spike Hist Plot-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Spike Hist Plot-snap.png
new file mode 100644
index 00000000..1709b831
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Spike Hist Plot-snap.png differ
diff --git a/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Tutorial#4 Network-snap.png b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Tutorial#4 Network-snap.png
new file mode 100644
index 00000000..55eeb91e
Binary files /dev/null and b/tests/frontend/e2e/tests/snapshots/Tut#4_smoke.test/Tutorial#4 Network-snap.png differ
diff --git a/utilities/install.py b/utilities/install.py
index 8075fb79..1830adc0 100644
--- a/utilities/install.py
+++ b/utilities/install.py
@@ -13,13 +13,16 @@
PYGEPPETTO = 'https://github.com/openworm/pygeppetto.git'
NETPYNE = 'https://github.com/Neurosim-lab/netpyne.git'
WORKSPACE = 'https://github.com/Neurosim-lab/netpyne_workspace'
+META = 'https://github.com/MetaCell/geppetto-meta/'
ROOT_DIR = os.path.join(HERE, os.pardir)
DEPS_DIR = os.path.join(ROOT_DIR, 'src')
WEBAPP_DIR = os.path.join(ROOT_DIR, 'webapp')
JUPYTER_DIR = 'jupyter-geppetto'
+PYGEPPETTO_DIR = 'pygeppetto'
NETPYNE_DIR = 'netpyne'
+META_DIR = 'geppetto-meta'
WORKSPACE_DIR = 'workspace'
@@ -34,7 +37,7 @@ def cprint(string):
def execute(cmd, cwd='.', *args, **kwargs):
exit_code = subprocess.call(cmd, cwd=cwd, *args, **kwargs)
if exit_code != 0:
- raise SystemExit('Error installing NetPyNE-UI')
+ raise SystemExit(f'Error installing NetPyNE-UI - Command {cmd} failed with code {exit_code} in directory {cwd}')
# by default clones branch (which can be passed as a parameter python install.py branch test_branch)
@@ -46,13 +49,22 @@ def clone(repository, folder=None, branch_or_tag=None, cwdp=DEPS_DIR, recursive=
if folder and os.path.exists(os.path.join(cwdp, folder)):
print(f'Skipping clone of {repository}: folder exists')
else:
+ exit_code = 0
if recursive:
- subprocess.call(['git', 'clone', '--recursive', repository], cwd=cwdp)
+ exit_code = subprocess.call(['git', 'clone', '--recursive', repository], cwd=cwdp)
else:
if folder:
- subprocess.call(['git', 'clone', repository, folder], cwd=cwdp)
+ exit_code = subprocess.call(['git', 'clone', repository, folder], cwd=cwdp)
else:
- subprocess.call(['git', 'clone', repository], cwd=cwdp)
+ exit_code = subprocess.call(['git', 'clone', repository], cwd=cwdp)
+
+ if exit_code != 0:
+ raise SystemExit(f'Failed to clone repository {repository} into {folder}')
+
+ if not os.path.exists(os.path.join(cwdp, folder, '.git')):
+ print(f'Skipping checkout of {repository}: folder is not a git repository')
+ return
+
if branch_or_tag:
checkout(folder, branch_or_tag, cwdp)
@@ -63,7 +75,9 @@ def checkout(folder, branch_or_tag, cwdp):
print(f'Checking out {branch_or_tag}')
try:
+ subprocess.call(['git', 'fetch'], cwd=newPath)
subprocess.call(['git', 'checkout', branch_or_tag], cwd=newPath)
+ subprocess.call(['git', 'pull', 'origin', branch_or_tag], cwd=newPath)
except Exception as e:
logging.error('Cannot checkout branch or tag %s on %s', branch_or_tag, folder, exc_info=True)
@@ -72,57 +86,54 @@ def compile_mod():
execute(['nrnivmodl', os.path.join(WORKSPACE_DIR, 'mod')], cwd=ROOT_DIR)
-def main(netpyne_branch, workspace_branch, pygeppetto_branch=None, jupyter_geppetto_branch=None, skipNpm=False,
- skipTest=False, development=False):
+def main(netpyne_branch, workspace_branch, geppetto_branch=None, skipNpm=False,
+ skipTest=False, development=False):
cprint("Installing requirements")
execute(cmd=['pip', 'install', '-r', 'requirements.txt'], cwd=ROOT_DIR)
+ cprint("Installing UI python package...")
+ execute(cmd=['pip', 'install', '-e', '.', '--no-deps'], cwd=ROOT_DIR)
if not os.path.exists(DEPS_DIR):
os.mkdir(DEPS_DIR)
-
- if development:
+ if geppetto_branch:
+ if geppetto_branch.replace(" ", "") is '':
+ geppetto_branch = 'development'
+ os.chdir(DEPS_DIR)
+ cprint("Installing geppetto-meta")
+ clone(repository=META, folder=META_DIR, branch_or_tag=geppetto_branch)
+ # installing pygeppetto
+ cprint("Installing pygeppetto")
+ execute(cmd=['pip', 'install', '-e', '.'], cwd=os.path.join(DEPS_DIR, META_DIR, PYGEPPETTO_DIR))
+ # installing jupyter geppetto
+ cprint("Installing jupyter geppetto")
+ execute(cmd=['pip', 'install', '-e', '.'], cwd=os.path.join(DEPS_DIR, META_DIR, JUPYTER_DIR))
+ # installing core dependencies
+ execute(cmd=['pip', 'install', '-e', '.'], cwd=ROOT_DIR)
+ if netpyne_branch:
+ if netpyne_branch.replace(" ", "") is '':
+ netpyne_branch = 'development'
os.chdir(DEPS_DIR)
-
cprint("Installing netpyne")
clone(repository=NETPYNE, branch_or_tag=netpyne_branch)
execute(cmd=['pip', 'install', '-e', '.'], cwd=os.path.join(DEPS_DIR, NETPYNE_DIR))
- # install pygeppetto
- cprint("Installing pygeppetto")
- clone(repository=PYGEPPETTO,
- folder='pygeppetto',
- branch_or_tag=pygeppetto_branch
- )
- execute(cmd=['pip', 'install', '-e', '.'], cwd=os.path.join(DEPS_DIR, 'pygeppetto'))
-
- # install jupyter geppetto
- cprint("Installing org.geppetto.frontend.jupyter")
- clone(repository=JUPYTER,
- folder=JUPYTER_DIR,
- branch_or_tag=jupyter_geppetto_branch
- )
-
- execute(cmd=['pip', 'install', '-e', '.'], cwd=os.path.join(DEPS_DIR, JUPYTER_DIR))
- execute(cmd=['pip', 'install', '-e', '.'], cwd=ROOT_DIR)
- else:
- # install requirements
- cprint("Installing UI python package...")
- execute(cmd=['pip', 'install', '-e', '.', '--no-deps'], cwd=ROOT_DIR)
os.chdir(ROOT_DIR)
- cprint("Cloning workspace")
- clone(repository=WORKSPACE, branch_or_tag=workspace_branch, folder=WORKSPACE_DIR, cwdp=ROOT_DIR)
- cprint("Compiling workspace modules")
- compile_mod()
+ if workspace_branch:
+ cprint("Cloning workspace")
+ clone(repository=WORKSPACE, branch_or_tag=workspace_branch, folder=WORKSPACE_DIR, cwdp=ROOT_DIR)
+ cprint("Compiling workspace modules")
+ #compile_mod()
- if not skipNpm and os.path.exists(os.path.join(DEPS_DIR, JUPYTER_DIR)):
+ if not skipNpm and os.path.exists(os.path.join(DEPS_DIR, META_DIR, JUPYTER_DIR)):
cprint("Building Jupyter Geppetto extension...")
- execute(cmd=['npm', 'ci'], cwd=os.path.join(DEPS_DIR, JUPYTER_DIR, 'js'))
+ execute(cmd=['npm', 'ci'], cwd=os.path.join(DEPS_DIR, META_DIR, JUPYTER_DIR, 'js'))
execute(cmd=['npm', 'run', 'build-dev' if development else 'build'],
- cwd=os.path.join(DEPS_DIR, JUPYTER_DIR, 'js'))
+ cwd=os.path.join(DEPS_DIR, META_DIR, JUPYTER_DIR, 'js'))
+ execute(cmd=['jupyter', 'nbextension', 'uninstall', 'jupyter_geppetto'])
execute(cmd=['jupyter', 'nbextension', 'install', '--py', '--symlink', '--sys-prefix', 'jupyter_geppetto'])
execute(cmd=['jupyter', 'nbextension', 'enable', '--py', '--sys-prefix', 'jupyter_geppetto'])
execute(cmd=['jupyter', 'nbextension', 'enable', '--py', '--sys-prefix', 'widgetsnbextension'])
@@ -160,6 +171,7 @@ def main(netpyne_branch, workspace_branch, pygeppetto_branch=None, jupyter_geppe
_ = config['NotebookApp']['tornado_settings']
except KeyError:
config['NotebookApp']['tornado_settings'] = {}
+ config['NotebookApp']['tornado_settings']['headers'] = { 'Content-Security-Policy': "frame-ancestors 'self' http: https: http://localhost:8081 *" }
config['NotebookApp']['tornado_settings']['gzip'] = True
f.seek(0)
json.dump(config, f, indent=4, sort_keys=True)
@@ -173,12 +185,27 @@ def main(netpyne_branch, workspace_branch, pygeppetto_branch=None, jupyter_geppe
cprint("Installing test libraries")
execute(cmd=['pip', 'install', '-r', 'requirements-test.txt'], cwd=ROOT_DIR)
cprint("Testing NetPyNE")
- # execute("python -m unittest netpyne_ui.tests.netpyne_model_interpreter_test".split())
+ execute("python -m pytest tests".split())
cprint("Installing client packages")
if not skipNpm:
- execute(cmd=['npm', 'install' if development else 'ci'], cwd=WEBAPP_DIR)
- execute(cmd=['npm', 'run', 'build-dev'], cwd=WEBAPP_DIR)
+ if geppetto_branch:
+ # install geppetto meta
+ if os.path.exists(os.path.join(WEBAPP_DIR, '.yalc')):
+ execute(cmd=['rm', '-rf', '.yalc'], cwd=WEBAPP_DIR)
+ execute(cmd=['ln', '-s', os.path.expanduser('~') + '/.yalc', '.yalc'], cwd=WEBAPP_DIR)
+ else:
+ execute(cmd=['ln', '-s', os.path.expanduser('~') + '/.yalc', '.yalc'], cwd=WEBAPP_DIR)
+ execute(cmd=['ls'], cwd=WEBAPP_DIR)
+ execute(cmd=['bash', 'geppetto_ui.sh'], cwd=WEBAPP_DIR)
+ execute(cmd=['yarn'], cwd=WEBAPP_DIR)
+ execute(cmd=['yarn', 'run', 'build-dev'], cwd=WEBAPP_DIR)
+ execute(cmd=['cp', 'package.bak', 'package.json'], cwd=WEBAPP_DIR)
+ else:
+ # install jupyter geppetto
+ cprint("Installing geppetto ui, client and core dependecies")
+ execute(cmd=['yarn', 'install', '--immutable'], cwd=WEBAPP_DIR)
+ execute(cmd=['yarn', 'run', 'build'], cwd=WEBAPP_DIR)
if __name__ == "__main__":
@@ -196,27 +223,22 @@ def main(netpyne_branch, workspace_branch, pygeppetto_branch=None, jupyter_geppe
help='Install for development.')
parser.add_argument('--netpyne', '-vn', dest='netpyne_version', action="store",
- default=os.getenv('NETPYNE_VERSION', 'development'),
+ default=os.getenv('NETPYNE_VERSION', None),
help='Specify NetPyNE library branch or tag.')
parser.add_argument('--workspace', '-vw', dest='workspace_version', action="store",
default=os.getenv('WORKSPACE_VERSION', 'master'),
help='Specify workspace branch or tag.')
- parser.add_argument('--pygeppetto', '-vp', dest='pygeppetto_version', action="store",
- default=os.getenv('PYGEPPETTO_VERSION', 'development'),
+ parser.add_argument('--geppetto', '-vp', dest='geppetto_version', action="store",
+ default=os.getenv('GEPPETTO_VERSION', None),
help='Specify Pygeppetto library branch or tag (only for dev build).')
- parser.add_argument('--jupyter_geppetto', '-vj', dest='jupyter_geppetto_version', action="store",
- default=os.getenv('JUPYTER_GEPPETTO_VERSION', 'development'),
- help='Specify Jupyter Geppetto library branch or tag (only for dev build).')
-
args = parser.parse_args(sys.argv[1:])
print('Install arguments:\n', args)
main(skipNpm=args.skipNpm, skipTest=args.skipTest, development=args.development,
- netpyne_branch=args.netpyne_version,
- workspace_branch=args.workspace_version,
- pygeppetto_branch=args.pygeppetto_version,
- jupyter_geppetto_branch=args.jupyter_geppetto_version
- )
+ netpyne_branch=args.netpyne_version,
+ workspace_branch=args.workspace_version,
+ geppetto_branch=args.geppetto_version,
+ )
diff --git a/webapp/.eslintignore b/webapp/.eslintignore
index 1d81b61d..f38f43ea 100644
--- a/webapp/.eslintignore
+++ b/webapp/.eslintignore
@@ -6,4 +6,5 @@ META-INF/*
**/tests/jest-puppeteer/**/*.js
**/*min.js
geppetto-client/**
-node_modules/**
\ No newline at end of file
+node_modules/**
+webpack.*.js
diff --git a/webapp/.eslintrc.js b/webapp/.eslintrc.js
index f95a2637..7add959b 100644
--- a/webapp/.eslintrc.js
+++ b/webapp/.eslintrc.js
@@ -10,7 +10,52 @@ module.exports = {
// Tweak some rules to our preferences
'space-before-function-paren': ['error', 'always'],
+ 'react/prop-types': 1,
'no-console': 0,
+ 'import/extensions': 0,
+ 'max-len': ['warn', { code: 140 }],
+ 'no-eval': 1,
+ eqeqeq: 1,
+ 'no-plusplus': 1,
+ 'react/destructuring-assignment': 1,
+ 'no-param-reassign': 1,
+ 'vars-on-top': 1,
+ 'no-use-before-define': 1,
+ 'no-unused-vars': 1,
+ 'import/no-unresolved': 1,
+ 'import/named': 1,
+ 'react/jsx-props-no-spreading': 1,
+ 'no-nested-ternary': 1,
+ 'no-return-assign': 1,
+ 'react/no-array-index-key': 1,
+ 'react/sort-comp': 1,
+ 'consistent-return': 1,
+ 'import/prefer-default-export': 1,
+ 'react/no-unused-state': 1,
+ 'jsx-a11y/alt-text': 1,
+ 'no-restricted-syntax': 1,
+ 'no-underscore-dangle': 1,
+ 'no-restricted-globals': 1,
+ camelcase: 1,
+ 'max-classes-per-file': 1,
+ 'jsx-a11y/click-events-have-key-events': 1,
+ 'jsx-a11y/no-static-element-interactions': 1,
+ 'prefer-destructuring': 1,
+ 'no-redeclare': 1,
+ 'import/no-webpack-loader-syntax': 1,
+ 'global-require': 1,
+ 'default-case': 1,
+ 'react/prefer-stateless-function': 1,
+ 'block-scoped-var': 1,
+ 'no-var': 1,
+ 'no-shadow': 1,
+ 'react/no-did-update-set-state': 1,
+ 'react/no-string-refs': 1,
+ 'no-multi-assign': 1,
+ 'guard-for-in': 1,
+ 'no-unused-expressions': 1,
+ 'no-control-regex': 1,
+ 'no-loop-func': 1,
},
globals: {
page: true,
@@ -23,6 +68,18 @@ module.exports = {
CanvasContainer: true,
patchRequire: true,
window: true,
+ document: true,
+ $: true,
+ IPython: true,
+ fetch: true,
+ Blob: true,
+ FormData: true,
+ Event: true,
+ jQuery: true,
+ define: true,
+ // geppetto
+ Instances: true,
GEPPETTO: true,
+ IPython: true,
},
};
diff --git a/webapp/GeppettoConfiguration.json b/webapp/GeppettoConfiguration.json
index 54e3cc20..f5b97848 100644
--- a/webapp/GeppettoConfiguration.json
+++ b/webapp/GeppettoConfiguration.json
@@ -1,11 +1,12 @@
{
"_README" : "http://docs.geppetto.org/en/latest/build.html",
"contextPath": "org.geppetto.frontend",
- "useSsl": false,
- "embedded": false,
+ "useSsl": true,
+ "embedded": true,
"embedderURL": ["/"],
"rootRedirect":"",
"noTest": false,
+ "customSplash": "geppetto/build/static/splash.gif",
"extensions": {
"geppetto-default/ComponentsInitialization": false,
"geppetto-netpyne/ComponentsInitialization": true
diff --git a/webapp/Main.js b/webapp/Main.js
index c48f0ca9..e1663bf1 100644
--- a/webapp/Main.js
+++ b/webapp/Main.js
@@ -1,39 +1,48 @@
-global.jQuery = require('jquery');
-global.GEPPETTO_CONFIGURATION = require('./GeppettoConfiguration.json');
-
-jQuery(() => {
- require('geppetto-client-initialization');
- const ReactDOM = require('react-dom');
- const React = require('react');
- const { MuiThemeProvider } = require('@material-ui/core/styles');
- const { NetPyNE } = require('./components');
-
- const theme = require('./theme').default;
-
- const { Provider } = require('react-redux');
- const configureStore = require('./redux/store').default;
-
- require('./css/netpyne.less');
- require('./css/material.less');
- require('./css/traceback.less');
- require('./css/flexlayout.less');
- require('./css/tree.less');
+import React from 'react';
+import ReactDOM from 'react-dom';
+import { Provider } from 'react-redux';
+import { MuiThemeProvider } from '@material-ui/core/styles';
+import * as Sentry from '@sentry/react';
+import { CaptureConsole } from '@sentry/integrations';
+import { LoadingSpinner } from '@metacell/geppetto-meta-client/components';
+import { NetPyNE } from './components';
+import theme from './theme';
+import store from './redux/store';
+import '@metacell/geppetto-meta-ui/flex-layout/style/dark.css';
- const store = configureStore();
-
- ReactDOM.render(
- ,
- document.querySelector('#mainContainer'),
- );
-
- GEPPETTO.G.setIdleTimeOut(-1);
- GEPPETTO.Resources.COLORS.DEFAULT = '#6f54aa';
- GEPPETTO.trigger(GEPPETTO.Events.Show_spinner, 'Initialising NetPyNE');
-});
+global.GEPPETTO_CONFIGURATION = require('./GeppettoConfiguration.json');
+const { initGeppetto } = require('@metacell/geppetto-meta-client/GEPPETTO');
+
+if (process.env.NODE_ENV === 'production') {
+ Sentry.init({
+ dsn: 'https://d8bf7e40eec34cb9891f6dd8207b5e83@sentry.metacell.us/6',
+ integrations: [
+ new CaptureConsole({
+ levels: ['error'],
+ }),
+ ],
+ tracesSampleRate: 1.0,
+ });
+}
+
+window.$ = Array; // TODO Temporary fix -- remove upon https://github.com/MetaCell/geppetto-meta/issues/380
+initGeppetto();
+require('./css/netpyne.less');
+require('./css/material.less');
+require('./css/traceback.less');
+require('./css/flexlayout.less');
+require('./css/tree.less');
+
+ReactDOM.render(
+ ,
+ document.querySelector('#mainContainer'),
+);
+
+GEPPETTO.Resources.COLORS.DEFAULT = '#6f54aa';
diff --git a/webapp/Utils.js b/webapp/Utils.js
index 33d82062..da39c01c 100644
--- a/webapp/Utils.js
+++ b/webapp/Utils.js
@@ -1,13 +1,14 @@
+import * as Sentry from '@sentry/react';
+
import {
execPythonMessage,
evalPythonMessage,
-} from '@geppettoengine/geppetto-client/js/communication/geppettoJupyter/GeppettoJupyterUtils';
-import React from 'react';
+} from './components/general/GeppettoJupyterUtils';
const Utils = {
getAvailableKey (model, prefix) {
- if (model == undefined) {
+ if (model === undefined) {
return prefix;
}
// Get New Available ID
@@ -23,24 +24,65 @@ const Utils = {
return id;
},
- getMetadataField (key, field) {
- if (key == undefined) {
- return;
+ captureSentryException (e) {
+ if (process.env.NODE_ENV == 'production')
+ Sentry.captureException(e);
+ console.error(e);
+ },
+
+ /**
+ * Retrieves the metadata object for the passed `key`.
+ *
+ * A specific attributes can be selected by passing `field`.
+ *
+ * The algorithm will iteratively test the key for each nesting in metadata.
+ *
+ * Example key: `netParams.popParams.E.numCells`.
+ * Since 'E' is not explicitly modeled in `netpyne.metadata`
+ * this algorithm implements additional logic to skip certain levels.
+ *
+ * @param {*} key key of metadata path.
+ * @param {*} field specific object attribute.
+ * @returns metadata object or specific attribute.
+ */
+ getMetadataField (key, field = null) {
+ if (key === undefined) {
+ return null;
}
+
let currentObject;
let nextObject = window.metadata;
- key.split('.')
- .forEach((item) => {
+ let skipped = false;
+
+ // eslint-disable-next-line no-restricted-syntax
+ for (const item of key.split('.')) {
+ if (currentObject != null && currentObject?.container === true && !(item in nextObject)) {
+ if (skipped) {
+ return null;
+ }
+
+ // skip the list element, e.g. "E"!
+ // console.debug(`Skip ${item} at ${nextObject.label}`);
+ skipped = true;
+ } else {
+ skipped = false;
+
if (item in nextObject) {
currentObject = nextObject[item];
if ('children' in currentObject) {
nextObject = currentObject.children;
}
} else {
- currentObject = undefined;
+ currentObject = null;
}
- });
- return (currentObject == undefined) ? currentObject : currentObject[field];
+ }
+ }
+
+ if (currentObject) {
+ return field ? currentObject[field] : currentObject;
+ }
+
+ return null;
},
getHTMLType (key) {
@@ -113,7 +155,13 @@ const Utils = {
return modelFields;
},
+ asEscapedString (value) {
+ return value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')
+ },
+
renameKey (path, oldValue, newValue, callback) {
+ oldValue = oldValue.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
+ newValue = newValue.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
this.execPythonMessage(`netpyne_geppetto.rename("${path}","${oldValue}","${newValue}")`)
.then((response) => {
callback(response, newValue);
@@ -132,7 +180,7 @@ const Utils = {
return name;
},
- // FIXME: Hack to remove scaped chars (\\ -> \ and \' -> ') manually
+ // FIXME: Hack to remove escaped chars (\\ -> \ and \' -> ') manually
convertToJSON (data) {
if (typeof data === 'string' || data instanceof String) {
return JSON.parse(data.replace(/\\\\/g, '\\')
@@ -147,20 +195,23 @@ const Utils = {
getErrorResponse (data) {
const parsedData = this.convertToJSON(data);
- if (parsedData.type && parsedData.type == 'ERROR') {
+ if (parsedData && parsedData.type && parsedData.type === 'ERROR') {
const error = { details: parsedData.details };
if (Object.prototype.hasOwnProperty.call(parsedData, 'message')) {
error.message = parsedData.message;
} else if (Object.prototype.hasOwnProperty.call(parsedData, 'websocket')) {
error.message = parsedData.websocket;
}
+ if (Object.prototype.hasOwnProperty.call(parsedData, 'additional_info')) {
+ error.additionalInfo = parsedData.additional_info ;
+ }
return error;
}
return null;
},
handleUpdate (updateCondition, newValue, originalValue, context, componentName) {
- if ((updateCondition) && (newValue != originalValue)) {
+ if ((updateCondition) && (newValue !== originalValue)) {
/*
* if the new value has been changed by the function Utils.nameValidation means that the name convention
* has not been respected, so we need to open the dialog and inform the user.
@@ -171,10 +222,10 @@ const Utils = {
errorDetails: `Leading digits or whitespaces are not allowed in ${componentName} names.`,
});
return true;
- } if ((updateCondition) && (newValue == originalValue)) {
+ } if ((updateCondition) && (newValue === originalValue)) {
context.setState({ currentName: newValue });
return true;
- } if (!(updateCondition) && (newValue == originalValue)) {
+ } if (!(updateCondition) && (newValue === originalValue)) {
context.setState({
currentName: newValue,
errorMessage: 'Error',
@@ -182,7 +233,7 @@ const Utils = {
} is already used in this model, please pick another name.`,
});
return false;
- } if (!(updateCondition) && (newValue != originalValue)) {
+ } if (!(updateCondition) && (newValue !== originalValue)) {
context.setState({
currentName: newValue,
errorMessage: 'Error',
@@ -192,8 +243,22 @@ const Utils = {
}
},
+ formatDate (timestamp) {
+ const date = new Date(timestamp);
+ return date?.toLocaleString();
+ },
+
execPythonMessage,
evalPythonMessage,
+
+ flatten (obj, path = '') {
+ if (!(obj instanceof Object)) return { [path.replace(/\.$/g, '')]: obj };
+
+ return Object.keys(obj)
+ .reduce((output, key) => (obj instanceof Array
+ ? { ...output, ...Utils.flatten(obj[key], `${path.slice(0, -1)}[${key}].`) }
+ : { ...output, ...Utils.flatten(obj[key], `${path + key}.`) }), {});
+ },
};
export default Utils;
diff --git a/webapp/api/experiments.js b/webapp/api/experiments.js
new file mode 100644
index 00000000..568df62e
--- /dev/null
+++ b/webapp/api/experiments.js
@@ -0,0 +1,17 @@
+import Utils from 'root/Utils';
+
+export const getExperiments = () => Utils.evalPythonMessage('netpyne_geppetto.experiments.get_experiments', []);
+
+export const getExperiment = (name) => Utils.evalPythonMessage('netpyne_geppetto.experiments.get_experiment', [name]);
+export const removeExperiment = (name) => Utils.evalPythonMessage('netpyne_geppetto.experiments.remove_experiment', [name]);
+export const addExperiment = (experiment) => Utils.evalPythonMessage('netpyne_geppetto.experiments.add_experiment', [experiment]);
+export const editExperiment = (name, experiment) => Utils.evalPythonMessage('netpyne_geppetto.experiments.edit_experiment',
+ [name, experiment]);
+
+export const getParameters = () => Utils.evalPythonMessage('netpyne_geppetto.getModelAsJson', []);
+export const getModelSpecification = (name, trial) => Utils.evalPythonMessage('netpyne_geppetto.experiments.get_model_specification',
+ [name, trial]);
+
+export const getRunConfiguration = () => Utils.evalPythonMessage('netpyne_geppetto.get_run_configuration', []);
+export const editRunConfiguration = (runConfig) => Utils.evalPythonMessage('netpyne_geppetto.edit_run_configuration',
+ [runConfig]);
diff --git a/webapp/api/hooks.js b/webapp/api/hooks.js
new file mode 100644
index 00000000..365d9684
--- /dev/null
+++ b/webapp/api/hooks.js
@@ -0,0 +1,30 @@
+import { useEffect, useRef } from 'react';
+
+/**
+ * Interval hook taken from: https://overreacted.io/making-setinterval-declarative-with-react-hooks/
+ *
+ * @param callback
+ * @param delay
+ */
+const useInterval = (callback, delay) => {
+ const savedCallback = useRef();
+
+ // Remember the latest callback.
+ useEffect(() => {
+ savedCallback.current = callback;
+ }, [callback]);
+
+ // Set up the interval.
+ useEffect(() => {
+ function tick () {
+ savedCallback.current();
+ }
+
+ if (delay !== null) {
+ const id = setInterval(tick, delay);
+ return () => clearInterval(id);
+ }
+ }, [delay]);
+};
+
+export default useInterval;
diff --git a/webapp/babel.config.js b/webapp/babel.config.js
index e7772fc3..0ba8b437 100644
--- a/webapp/babel.config.js
+++ b/webapp/babel.config.js
@@ -4,6 +4,8 @@ module.exports = {
'@babel/preset-env',
{ targets: { node: 'current' } },
],
+ '@babel/preset-typescript',
+ '@babel/preset-react',
],
plugins: [
'@babel/plugin-proposal-class-properties',
diff --git a/webapp/components/NetPyNE.js b/webapp/components/NetPyNE.js
index 932dbbc7..e61b6b1b 100644
--- a/webapp/components/NetPyNE.js
+++ b/webapp/components/NetPyNE.js
@@ -8,11 +8,13 @@ import {
LayoutManager,
Drawer,
Dialog,
+ ConfirmationDialog,
+ LaunchDialog,
+ TutorialObserver,
} from 'netpyne/components';
-
-import Utils from '../Utils';
-
-import { EDIT_WIDGETS } from '../constants';
+import { openDialog } from '../redux/actions/general';
+// import { execPythonMessage } from './general/GeppettoJupyterUtils';
+import { replayAll } from './general/CommandRecorder';
const styles = ({ zIndex }) => ({
root: {
@@ -29,7 +31,7 @@ const styles = ({ zIndex }) => ({
},
topbar: {
position: 'relative',
- zIndex: zIndex.drawer + 1,
+ zIndex: zIndex.drawer,
},
content: {
flexGrow: 1,
@@ -40,97 +42,177 @@ const styles = ({ zIndex }) => ({
noGrow: { flexGrow: 0 },
});
-const TIMEOUT = 10000;
class NetPyNE extends React.Component {
- openPythonCallDialog (event) {
- const payload = {
- errorMessage: event.evalue,
- errorDetails: event.traceback.join('\n'),
- };
- this.props.pythonCallErrorDialogBox(payload);
- }
-
- addMetadataToWindow (data) {
- console.log('Initialising NetPyNE Tabs');
- window.metadata = data.metadata;
- window.currentFolder = data.currentFolder;
- window.isDocker = data.isDocker;
- window.pythonConsoleLoaded = true;
- window.tuts = data.tuts;
+ constructor (props) {
+ super(props);
+ this.openPythonCallDialog = this.openPythonCallDialog.bind(this);
+ this.kernelRestartState = {
+ state: "idle",
+ kernelID: undefined,
+ crashLoop: false
+ }
}
componentDidMount () {
GEPPETTO.on(GEPPETTO.Events.Error_while_exec_python_command, this.openPythonCallDialog, this);
- this.props.setDefaultWidgets();
-
- GEPPETTO.on('jupyter_geppetto_extension_ready', (data) => {
- const project = {
- id: 1,
- name: 'Project',
- experiments: [{
- id: 1,
- name: 'Experiment',
- status: 'DESIGN',
- }],
- };
- GEPPETTO.Manager.loadProject(project, false);
- GEPPETTO.Manager.loadExperiment(1, [], []);
-
- let responded = false;
- Utils.execPythonMessage('from netpyne_ui.netpyne_geppetto import netpyne_geppetto');
- Utils.evalPythonMessage('netpyne_geppetto.getData', [])
- .then((response) => {
- responded = true;
-
- GEPPETTO.trigger(GEPPETTO.Events.Show_spinner, 'Loading NetPyNE-UI');
- const metadata = Utils.convertToJSON(response);
- this.addMetadataToWindow(metadata);
- this.props.setWidgets(EDIT_WIDGETS);
- this.props.modelLoaded();
- GEPPETTO.trigger(GEPPETTO.Events.Hide_spinner);
- });
-
- setTimeout(() => {
- if (!responded) {
- GEPPETTO.trigger(GEPPETTO.Events.Show_spinner, 'Reloading Python Kernel');
- IPython.notebook.restart_kernel({ confirm: false })
- .then(() => window.location.reload());
+
+ const {
+ setDefaultWidgets,
+ } = this.props;
+
+ setDefaultWidgets();
+
+
+
+ // Logic for kernel reinit
+ const handleKernelRestart = ({ detail: { kernel, type } }) => {
+ switch (this.kernelRestartState.state) {
+ case "restarting":
+ if (type === "kernel_ready" || type === "kernel_autorestarting") {
+ console.log("Replaying all commands since the beginning of the session")
+ replayAll(this.kernelRestartState.kernelID)
+ this.kernelRestartState = {
+ ...this.kernelRestartState,
+ state: "idle",
+ kernelID: undefined,
+ }
+ }
+ case "idle":
+ if (type === "kernel_connected") {
+ console.log("Kernel is connecting/starting, being init")
+ this.kernelRestartState = {
+ ...this.kernelRestartState,
+ state: "init",
+ kernelID: kernel.id
+ }
+ }
+ else if (type === "kernel_autorestarting") {
+ console.log("Kernel restart event caught, trying to re-init the current model")
+ this.kernelRestartState = {
+ ...this.kernelRestartState,
+ state: "restarting",
+ kernelID: kernel.id
+ }
+ if (!this.kernelRestartState.crashLoop) {
+ this.props.dispatchAction(openDialog({
+ title: "Kernel restart",
+ message: "An action occured that made the kernel restart. We are reloading your model and all the actions you applied on it."
+ }))
+ }
+ }
+ else if (type === "kernel_restarting") {
+ console.log("Kernel restart, perhaps it's a special restart?")
+ this.kernelRestartState = {
+ ...this.kernelRestartState,
+ state: "special_restart",
+ kernelID: kernel.id
+ }
+ }
+ case "init":
+ if (type === "kernel_ready") {
+ console.log("Kernel properly initialized")
+ this.kernelRestartState = {
+ ...this.kernelRestartState,
+ state: "idle",
+ kernelID: undefined,
+ }
+ }
+ case "special_restart":
+ if (type == "kernel_autorestarting") {
+ console.log("Kernel autorestart after a start, we might not have the ready event, we force it then")
+ replayAll(this.kernelRestartState.kernelID)
+ this.kernelRestartState = {
+ ...this.kernelRestartState,
+ state: 'restarting',
+ kernelID: kernel.id,
+ }
+ } else {
+ console.log("Regular restart detected")
+ this.kernelRestartState = {
+ ...this.kernelRestartState,
+ state: 'idle',
+ kernelID: undefined,
+ }
+ }
+ }
+ }
+ window.addEventListener('kernelstatus', handleKernelRestart)
+
+ // Dedicated code to handle crash loops
+ const kernelRestartLoopHandler = ( ) => {
+ if (!this.kernelRestartState.crashLoop) {
+ this.props.dispatchAction(openDialog({
+ title: "Kernel restart loop stabilization",
+ message: "One of your actions triggered a kernel restart loop. We are trying to identify the faulty command and to restore your model until this point. Close this window and wait for the kernel stabilization notification."
+ }))
+ } else {
+ clearTimeout(this.kernelRestartState.crashLoop)
+ }
+ const taskID = setTimeout((_this) => {
+ this.props.dispatchAction(openDialog({
+ title: "Kernel restart loop stabilized",
+ message: "The kernel is now stabilized."
+ }));
+ this.kernelRestartState = {
+ ...this.kernelRestartState,
+ crashLoop: false
}
- }, TIMEOUT);
- });
+ }, 8000, this)
+ this.kernelRestartState = {
+ ...this.kernelRestartState,
+ crashLoop: taskID
+ }
+ }
+ window.addEventListener('kernelRestartLoop', kernelRestartLoopHandler)
}
componentWillUnmount () {
GEPPETTO.off(GEPPETTO.Events.Error_while_exec_python_command, this.openPythonCallDialog, this);
}
+ openPythonCallDialog (event) {
+ if (event?.evalue && event?.traceback) {
+ this.props.pythonCallErrorDialogBox({
+ errorMessage: event.evalue,
+ errorDetails: event.traceback.join('\n'),
+ });
+ } else {
+ this.props.pythonCallErrorDialogBox({
+ errorMessage: event.data.response.evalue,
+ errorDetails: event.data.response.traceback.join('\n'),
+ });
+ }
+ }
+
render () {
const { classes } = this.props;
- if (!this.props.modelLoaded) {
- return '';
- }
+
const Layout = LayoutManager();
return (
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
);
}
}
diff --git a/webapp/components/definition/cellRules/NetPyNECellRules.js b/webapp/components/definition/cellRules/NetPyNECellRules.js
index adc161a4..cfcb944b 100644
--- a/webapp/components/definition/cellRules/NetPyNECellRules.js
+++ b/webapp/components/definition/cellRules/NetPyNECellRules.js
@@ -86,6 +86,7 @@ export default class NetPyNECellRules extends React.Component {
handleNewCellRule (defaultCellRules) {
const key = Object.keys(defaultCellRules)[0];
const value = defaultCellRules[key];
+ // eslint-disable-next-line react/no-access-state-in-setstate
const model = { ...this.state.value };
// Get New Available ID
@@ -337,6 +338,8 @@ export default class NetPyNECellRules extends React.Component {
}
componentDidUpdate (prevProps, prevState) {
+ if (this.props.commands !== prevProps.commands)
+ this.forceUpdate();
// we need to check if any of the three entities have been renamed and if that's the case change the state for the selection variable
const newCellRuleName = this.hasSelectedCellRuleBeenRenamed(
prevState,
@@ -483,7 +486,7 @@ export default class NetPyNECellRules extends React.Component {
if (page === 'main') {
event.preventDefault();
this.setState({ anchorEl: event.currentTarget });
- // this.handleNewCellRule({ 'CellType': { 'conds':{}, 'secs':{} } });
+ // this.handleNewCellRule({ CellType: { conds: {}, secs: {} } });
} else if (page === 'sections') {
this.handleNewSection({
Section: {
@@ -608,6 +611,7 @@ export default class NetPyNECellRules extends React.Component {
name,
])
.then((response) => {
+ // eslint-disable-next-line react/no-access-state-in-setstate
const model = this.state.value;
delete model[this.state.selectedCellRule].secs[
this.state.selectedSection
@@ -627,6 +631,7 @@ export default class NetPyNECellRules extends React.Component {
name,
])
.then((response) => {
+ // eslint-disable-next-line react/no-access-state-in-setstate
const model = this.state.value;
delete model[this.state.selectedCellRule].secs[name];
this.setState({
@@ -804,6 +809,7 @@ export default class NetPyNECellRules extends React.Component {
break;
}
default: {
+ break;
}
}
return 'undefined';
diff --git a/webapp/components/definition/cellRules/SelectCellTemplate.js b/webapp/components/definition/cellRules/SelectCellTemplate.js
index ff38d6cd..628b4ebe 100644
--- a/webapp/components/definition/cellRules/SelectCellTemplate.js
+++ b/webapp/components/definition/cellRules/SelectCellTemplate.js
@@ -1,12 +1,14 @@
import React, { Component } from 'react';
import Menu from '@material-ui/core/Menu';
import MenuItem from '@material-ui/core/MenuItem';
+import { connect } from 'react-redux';
+import { runControlledStep } from '../../../redux/actions/tutorials';
import Fab from '@material-ui/core/Fab';
import Tooltip from '../../general/Tooltip';
import Utils from '../../../Utils';
-export default class NetPyNENewPlot extends React.Component {
+class NetPyNENewPlot extends React.Component {
constructor (props) {
super(props);
this.handleClick = this.handleSelection.bind(this);
@@ -14,6 +16,10 @@ export default class NetPyNENewPlot extends React.Component {
this.state = { anchorEl: null };
}
+ componentDidMount() {
+ //this.props.dispatch(runControlledStep({ tourStep: 1 }));
+ }
+
handleButtonClick = (event) => {
// This prevents ghost click.
event.preventDefault();
@@ -42,8 +48,11 @@ export default class NetPyNENewPlot extends React.Component {
handleButtonClick,
anchorEl,
clearAnchorEl,
+ tourRunning
} = this.props;
+ const displayMenu = Boolean(anchorEl);
+
return (
@@ -52,6 +61,7 @@ export default class NetPyNENewPlot extends React.Component {
style={{
width: 40,
height: 40,
+ borderRadius: '50%',
}}
color={page == 'main' ? 'primary' : 'secondary'}
onClick={(event) => handleButtonClick(event)}
@@ -70,7 +80,7 @@ export default class NetPyNENewPlot extends React.Component {
);
- } else if (this.state.sectionId == 'SaveConfiguration') {
+ } else if (this.state.sectionId === CONFIG_SECTIONS.SAVE_CONFIGURATION) {
contentLeft = (
@@ -254,7 +243,7 @@ class NetPyNESimConfig extends React.Component {
);
- } else if (this.state.sectionId == 'Record') {
+ } else if (this.state.sectionId === CONFIG_SECTIONS.RECORD) {
contentLeft = (
@@ -288,6 +277,14 @@ class NetPyNESimConfig extends React.Component {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
);
- } else if (this.state.sectionId == 'netParams') {
+ } else if (this.state.sectionId === CONFIG_SECTIONS.NET_PARAMS) {
contentLeft = (
@@ -405,28 +435,28 @@ class NetPyNESimConfig extends React.Component {
>
}
onClick={() => this.select(0, 'General')}
/>
}
onClick={() => this.select(1, 'Record')}
/>
}
onClick={() => this.select(2, 'SaveConfiguration')}
/>
}
onClick={() => this.select(3, 'netParams')}
@@ -443,7 +473,6 @@ class NetPyNESimConfig extends React.Component {
}
const styles = ({
- shape,
spacing,
}) => ({
root: {
@@ -462,6 +491,7 @@ const styles = ({
maxHeight: `calc(100vh - ${spacing(27)}px)`,
overflowY: 'auto',
},
+ option: { color: 'white' },
});
export default withStyles(styles)(NetPyNESimConfig);
diff --git a/webapp/components/definition/connectivity/NetPyNEConnectivityRule.js b/webapp/components/definition/connectivity/NetPyNEConnectivityRule.js
index 7dd3c1d5..587f3b00 100644
--- a/webapp/components/definition/connectivity/NetPyNEConnectivityRule.js
+++ b/webapp/components/definition/connectivity/NetPyNEConnectivityRule.js
@@ -198,12 +198,9 @@ export default class NetPyNEConnectivityRule extends React.Component {
`netParams.connParams['${this.props.name}']['synMech']`
}
fullWidth
+ multiple
method="netpyne_geppetto.getAvailableSynMech"
- postProcessItems={(pythonData, selected) => pythonData.map((name) => (
-
- ))}
+ postProcessItems={this.postProcessMenuItems}
/>
diff --git a/webapp/components/definition/connectivity/NetPyNEConnectivityRules.js b/webapp/components/definition/connectivity/NetPyNEConnectivityRules.js
index b1992425..d1b3b5ca 100644
--- a/webapp/components/definition/connectivity/NetPyNEConnectivityRules.js
+++ b/webapp/components/definition/connectivity/NetPyNEConnectivityRules.js
@@ -34,7 +34,7 @@ export default class NetPyNEConnectivityRules extends Component {
this.handleRenameChildren = this.handleRenameChildren.bind(this);
}
- handleToggle = () => this.setState({ drawerOpen: !this.state.drawerOpen });
+ handleToggle = () => this.setState((prevState) => ({ drawerOpen: !prevState.drawerOpen }));
selectPage (page) {
this.setState({ page });
@@ -55,6 +55,7 @@ export default class NetPyNEConnectivityRules extends Component {
// Get Key and Value
const key = Object.keys(defaultConnectivityRules)[0];
const value = defaultConnectivityRules[key];
+ // eslint-disable-next-line react/no-access-state-in-setstate
const model = { ...this.state.value };
// Get New Available ID
@@ -102,6 +103,8 @@ export default class NetPyNEConnectivityRules extends Component {
}
componentDidUpdate (prevProps, prevState) {
+ if (this.props.commands !== prevProps.commands)
+ this.forceUpdate();
// we need to check if any of the three entities have been renamed and if that's the case change the state for the selection variable
const newConnectivityRuleName = this.hasSelectedConnectivityRuleBeenRenamed(
prevState,
@@ -246,7 +249,7 @@ export default class NetPyNEConnectivityRules extends Component {
/>
));
- var selectedConnectivityRule = undefined;
+ var selectedConnectivityRule;
if (
this.state.selectedConnectivityRule !== undefined
&& Object.keys(model)
diff --git a/webapp/components/definition/plots/NetPyNEInclude.js b/webapp/components/definition/plots/NetPyNEInclude.js
index 07d36fcf..fbf7b8c6 100644
--- a/webapp/components/definition/plots/NetPyNEInclude.js
+++ b/webapp/components/definition/plots/NetPyNEInclude.js
@@ -67,11 +67,12 @@ export default class NetPyNEInclude extends Component {
let answer = '';
if (include.exclusive) {
return `${include.exclusive} -- ${data.gids} cells -- all NetStims`;
- } if (include.groups.indexOf('allCells') > -1) {
+ }
+ if (include.groups.indexOf('allCells') > -1) {
if (include.groups.indexOf('allNetStims') == -1) {
return `allCells -- ${data.gids} cells`;
}
- return `${'all' + ' -- '}${data.gids} cells -- all NetStims`;
+ return `all -- ${data.gids} cells -- all NetStims`;
}
include.groups.forEach((group) => {
if (group != 'allNetStims') {
@@ -171,15 +172,15 @@ export default class NetPyNEInclude extends Component {
});
if ((open || this.state.mainPopoverOpen) && !(open && this.state.mainPopoverOpen)) {
- this.setState({
+ this.setState((prevState) => ({
mainPopoverOpen: open,
secondPopoverOpen: clone,
- anchorEl: target || this.state.anchorEl,
- });
+ anchorEl: target || prevState.anchorEl,
+ }));
}
if (!open) {
this.sendToPython();
- this.setState({ label: this.whoIsIncluded(this.state.include, this.state.data) });
+ this.setState((prevState) => ({ label: this.whoIsIncluded(prevState.include, prevState.data) }));
}
};
@@ -195,11 +196,10 @@ export default class NetPyNEInclude extends Component {
});
if (!this.checkEqual(clone, this.state.secondPopoverOpen)) {
- this.setState({
+ this.setState((prevState) => ({
secondPopoverOpen: clone,
- anchorEl2: target || this.state.anchorEl,
- });
- } else {
+ anchorEl2: target || prevState.anchorEl,
+ }));
}
};
@@ -318,6 +318,7 @@ export default class NetPyNEInclude extends Component {
};
handleSecondaryMenusClick = (group, name, item) => {
+ // eslint-disable-next-line react/no-access-state-in-setstate
const clone = { ...this.state.include };
if (group == 'gids') {
clone[group].indexOf(item) == -1 ? clone[group].push(item) : clone[group].splice(clone[group].indexOf(item), 1);
@@ -330,7 +331,6 @@ export default class NetPyNEInclude extends Component {
if (clone.groups.indexOf(name) > -1) { // when selecting individuals, remove population selection
clone.groups.splice(clone.groups.indexOf(name), 1);
}
- } else {
}
clone.exclusive = false;
if (clone.groups.indexOf('allCells') > -1 && name != 'allNetStims') {
@@ -342,7 +342,8 @@ export default class NetPyNEInclude extends Component {
IsSecondaryMenuChecked = (group, name, index) => {
if (group == 'gids') {
return this.state.include[group].indexOf(index) > -1;
- } if (group == 'popids') {
+ }
+ if (group == 'popids') {
if (name in this.state.include[group]) {
return this.state.include[group][name].indexOf(index) > -1;
}
diff --git a/webapp/components/definition/plots/NetPyNENewPlot.js b/webapp/components/definition/plots/NetPyNENewPlot.js
index f6df1ee7..648cf1d2 100644
--- a/webapp/components/definition/plots/NetPyNENewPlot.js
+++ b/webapp/components/definition/plots/NetPyNENewPlot.js
@@ -28,7 +28,7 @@ export default class NetPyNENewPlot extends React.Component {
return (
-
+
@@ -101,6 +101,13 @@ export default class NetPyNENewPlot extends React.Component {
>
Granger Causality Plot
+
);
diff --git a/webapp/components/definition/plots/NetPyNEPlots.js b/webapp/components/definition/plots/NetPyNEPlots.js
index cf9ecb02..0ffeb385 100644
--- a/webapp/components/definition/plots/NetPyNEPlots.js
+++ b/webapp/components/definition/plots/NetPyNEPlots.js
@@ -10,6 +10,7 @@ import PlotRaster from './plotTypes/PlotRaster';
import PlotTraces from './plotTypes/PlotTraces';
import PlotGranger from './plotTypes/PlotGranger';
import PlotRatePSD from './plotTypes/PlotRatePSD';
+import PlotRateSpectrogram from './plotTypes/PlotRateSpectrogram'
import PlotSpikeHist from './plotTypes/PlotSpikeHist';
import PlotSpikeStats from './plotTypes/PlotSpikeStats';
import NetPyNENewPlot from './NetPyNENewPlot';
@@ -29,6 +30,11 @@ export default class NetPyNEPlots extends React.Component {
this.handleNewPlot = this.handleNewPlot.bind(this);
}
+ componentDidUpdate (prevProps, prevState) {
+ if (this.props.commands !== prevProps.commands)
+ this.forceUpdate();
+ }
+
selectPlot (plot) {
this.setState({ selectedPlot: plot });
}
@@ -123,6 +129,9 @@ export default class NetPyNEPlots extends React.Component {
case 'granger':
selectedPlot =
;
break;
+ case 'plotRateSpectrogram':
+ selectedPlot =
;
+ break;
}
return (
diff --git a/webapp/components/definition/plots/plotTypes/PlotRateSpectrogram.js b/webapp/components/definition/plots/plotTypes/PlotRateSpectrogram.js
new file mode 100644
index 00000000..2c78b0e0
--- /dev/null
+++ b/webapp/components/definition/plots/plotTypes/PlotRateSpectrogram.js
@@ -0,0 +1,116 @@
+import React, { Component } from 'react';
+import Box from '@material-ui/core/Box';
+import {
+ NetPyNEInclude,
+ NetPyNEField,
+ SelectField,
+ NetPyNECheckbox,
+ NetPyNETextField,
+} from 'netpyne/components';
+import TimeRange from '../TimeRange';
+
+export default class PlotRateSpectrogram extends React.Component {
+ constructor (props) {
+ super(props);
+ this.state = { checked: false };
+ this.handleCheckChange = this.handleCheckChange.bind(this);
+ }
+
+ handleCheckChange = (event, isCheck) => {
+ this.setState({ Checked: isCheck });
+ };
+
+ render () {
+ const tag = 'simConfig.analysis[\'plotRateSpectrogram\']';
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/*
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ */}
+
+ );
+ }
+}
diff --git a/webapp/components/definition/populations/Dimensions.js b/webapp/components/definition/populations/Dimensions.js
index 798f42ab..2bb72455 100644
--- a/webapp/components/definition/populations/Dimensions.js
+++ b/webapp/components/definition/populations/Dimensions.js
@@ -6,9 +6,9 @@ import Box from '@material-ui/core/Box';
import InputLabel from '@material-ui/core/InputLabel';
import FormControl from '@material-ui/core/FormControl';
-
import {
NetPyNEField,
+ ListComponent,
NetPyNETextField,
} from 'netpyne/components';
import Utils from '../../../Utils';
@@ -44,6 +44,10 @@ class DimensionsComponent extends Component {
label: 'Grid spacing',
value: 'gridSpacing',
},
+ {
+ label: 'Cell List',
+ value: 'cellsList',
+ },
];
}
@@ -52,7 +56,6 @@ class DimensionsComponent extends Component {
this.updateLayout();
}
}
-
componentWillUnmount () {
this.mounted = false;
}
@@ -74,8 +77,8 @@ class DimensionsComponent extends Component {
updateLayout () {
const requests = this.popDimensionsOptions.map((popDimensionsOption) =>
// FIXME Better to wrap calls rather than directly accessing objects
- Utils
- .evalPythonMessage(`'${popDimensionsOption.value}' in netpyne_geppetto.netParams.popParams['${this.state.modelName}']`));
+ // eslint-disable-next-line implicit-arrow-linebreak
+ Utils.evalPythonMessage(`'${popDimensionsOption.value}' in netpyne_geppetto.netParams.popParams['${this.state.modelName}']`));
// Get population dimension by asking each for each key
Promise.all(requests)
@@ -108,6 +111,7 @@ class DimensionsComponent extends Component {
render () {
const { classes } = this.props;
+
return (
@@ -139,22 +143,29 @@ class DimensionsComponent extends Component {
this.state.dimension != undefined && this.state.dimension != ''
&& (
-
- {
- this.props.updateCards();
- }}
+ realType="list(dict)"
/>
-
+ ) : (
+
+ {
+ this.props.updateCards();
+ }}
+ />
+
+ )}
)
}
diff --git a/webapp/components/definition/populations/NetPyNEPopulation.js b/webapp/components/definition/populations/NetPyNEPopulation.js
index fa6061dd..a163db61 100644
--- a/webapp/components/definition/populations/NetPyNEPopulation.js
+++ b/webapp/components/definition/populations/NetPyNEPopulation.js
@@ -1,25 +1,35 @@
-import React from 'react';
+import React, { useState } from 'react';
import TextField from '@material-ui/core/TextField';
-import { BottomNavigation, BottomNavigationAction } from '@material-ui/core';
+import { BottomNavigation, BottomNavigationAction, Grid, Switch, Typography } from '@material-ui/core';
import FontIcon from '@material-ui/core/Icon';
import Box from '@material-ui/core/Box';
import Dialog from '@material-ui/core/Dialog/Dialog';
import Button from '@material-ui/core/Button';
import MenuItem from '@material-ui/core/MenuItem';
+import IconButton from '@material-ui/core/IconButton';
+import Icon from '@material-ui/core/Icon';
import DialogActions from '@material-ui/core/DialogActions';
import DialogContent from '@material-ui/core/DialogContent';
import DialogContentText from '@material-ui/core/DialogContentText';
import DialogTitle from '@material-ui/core/DialogTitle';
+
import { withStyles } from '@material-ui/core/styles';
import {
Dimensions,
NetPyNEField,
NetPyNECoordsRange,
NetPyNESelectField,
+ NetPyNETextField,
+ ListComponent,
+ Tooltip,
} from 'netpyne/components';
import Utils from '../../../Utils';
+import Checkbox from '../../general/Checkbox';
+import { vars } from '../../../theme';
+import { BASE_PATH } from '../../general/NetPyNEIcons';
+import { evalPythonMessage, execPythonMessage } from '../../general/GeppettoJupyterUtils';
const styles = ({ spacing }) => ({
fields: {
@@ -28,8 +38,16 @@ const styles = ({ spacing }) => ({
},
});
+const { textColor, primaryColor, experimentLabelColor } = vars;
+const newPulseObject = {
+ start: 0,
+ end: 0,
+ rate: 0,
+ noise: 0,
+};
+
class NetPyNEPopulation extends React.Component {
- constructor (props) {
+ constructor(props) {
super(props);
this.state = {
currentName: props.name,
@@ -37,15 +55,38 @@ class NetPyNEPopulation extends React.Component {
sectionId: 'General',
errorMessage: undefined,
errorDetails: undefined,
+ startParam: 'start',
+ model: undefined
};
+
+ this.updateModel()
+ }
+
+ updateModel = async (componentName) => {
+ const name = componentName ? componentName : this.props.name;
+ const command = `utils.convertToJS(netpyne_geppetto.netParams.popParams['${name}'])`
+ const response = await execPythonMessage(command)
+ this.setState({ model: response })
}
- UNSAFE_componentWillReceiveProps (nextProps) {
+ UNSAFE_componentWillReceiveProps(nextProps) {
this.setState({
currentName: nextProps.name,
selectedIndex: 0,
sectionId: 'General',
});
+ this.updateModel(nextProps.name)
+ }
+
+ shouldComponentUpdate(nextProps, nextState) {
+ return (
+ this.state.model == undefined
+ || this.state.currentName != nextState.currentName
+ || this.state.cellModelFields != nextState.cellModelFields
+ || this.state.sectionId != nextState.sectionId
+ || this.state.selectedIndex != nextState.selectedIndex
+ || this.state.model != nextState.model
+ );
}
getModelParameters = () => {
@@ -88,26 +129,16 @@ class NetPyNEPopulation extends React.Component {
}
modelParameters.push(
}
- onClick={() => select(3, 'CellList')}
+ key="Stimulation"
+ label="Stimulation"
+ icon={
}
+ onClick={() => select(4, 'Stimulation')}
/>,
);
return modelParameters;
};
- shouldComponentUpdate (nextProps, nextState) {
- return (
- this.state.model == undefined
- || this.state.currentName != nextState.currentName
- || this.state.cellModelFields != nextState.cellModelFields
- || this.state.sectionId != nextState.sectionId
- || this.state.selectedIndex != nextState.selectedIndex
- );
- }
-
handleRenameChange = (event) => {
const storedValue = this.props.name;
const newValue = Utils.nameValidation(event.target.value);
@@ -137,7 +168,7 @@ class NetPyNEPopulation extends React.Component {
}
};
- triggerUpdate (updateMethod) {
+ triggerUpdate(updateMethod) {
// common strategy when triggering processing of a value change, delay it, every time there is a change we reset
if (this.updateTimer != undefined) {
clearTimeout(this.updateTimer);
@@ -145,7 +176,7 @@ class NetPyNEPopulation extends React.Component {
this.updateTimer = setTimeout(updateMethod, 1000);
}
- postProcessMenuItems (pythonData, selected) {
+ postProcessMenuItems(pythonData, selected) {
return pythonData.map((name) => (