diff --git a/spyder_env.yml b/spyder_env.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9d3cb8859b2ffffb2813f0d200fadc0ffc22a8d4
--- /dev/null
+++ b/spyder_env.yml
@@ -0,0 +1,340 @@
+name: spyder
+channels:
+  - conda-forge
+  - defaults
+dependencies:
+  - _libgcc_mutex=0.1=conda_forge
+  - _openmp_mutex=4.5=2_gnu
+  - alabaster=0.7.16=pyhd8ed1ab_0
+  - alsa-lib=1.2.12=h4ab18f5_0
+  - arrow=1.3.0=pyhd8ed1ab_0
+  - astroid=3.2.2=py312h7900ff3_0
+  - asttokens=2.4.1=pyhd8ed1ab_0
+  - atomicwrites=1.4.1=pyhd8ed1ab_0
+  - attr=2.5.1=h166bdaf_1
+  - attrs=23.2.0=pyh71513ae_0
+  - autopep8=2.0.4=pyhd8ed1ab_0
+  - babel=2.14.0=pyhd8ed1ab_0
+  - backports=1.0=pyhd8ed1ab_3
+  - backports.tarfile=1.0.0=pyhd8ed1ab_1
+  - beautifulsoup4=4.12.3=pyha770c72_0
+  - binaryornot=0.4.4=py_1
+  - black=24.4.2=py312h7900ff3_0
+  - bleach=6.1.0=pyhd8ed1ab_0
+  - brotli=1.1.0=hd590300_1
+  - brotli-bin=1.1.0=hd590300_1
+  - brotli-python=1.1.0=py312h30efb56_1
+  - bzip2=1.0.8=hd590300_5
+  - ca-certificates=2024.6.2=hbcca054_0
+  - cairo=1.18.0=hbb29018_2
+  - certifi=2024.6.2=pyhd8ed1ab_0
+  - cffi=1.16.0=py312hf06ca03_0
+  - chardet=5.2.0=py312h7900ff3_1
+  - charset-normalizer=3.3.2=pyhd8ed1ab_0
+  - click=8.1.7=unix_pyh707e725_0
+  - cloudpickle=3.0.0=pyhd8ed1ab_0
+  - colorama=0.4.6=pyhd8ed1ab_0
+  - comm=0.2.2=pyhd8ed1ab_0
+  - contourpy=1.2.1=py312h8572e83_0
+  - cookiecutter=2.6.0=pyhca7485f_0
+  - cryptography=42.0.8=py312hbcc2302_0
+  - cycler=0.12.1=pyhd8ed1ab_0
+  - cython=3.0.10=py312h30efb56_0
+  - dbus=1.13.6=h5008d03_3
+  - debugpy=1.8.2=py312h7070661_0
+  - decorator=5.1.1=pyhd8ed1ab_0
+  - defusedxml=0.7.1=pyhd8ed1ab_0
+  - diff-match-patch=20230430=pyhd8ed1ab_0
+  - dill=0.3.8=pyhd8ed1ab_0
+  - docstring-to-markdown=0.15=pyhd8ed1ab_0
+  - docutils=0.21.2=pyhd8ed1ab_0
+  - entrypoints=0.4=pyhd8ed1ab_0
+  - exceptiongroup=1.2.0=pyhd8ed1ab_2
+  - executing=2.0.1=pyhd8ed1ab_0
+  - expat=2.6.2=h59595ed_0
+  - flake8=7.0.0=pyhd8ed1ab_0
+  - font-ttf-dejavu-sans-mono=2.37=hab24e00_0
+  - font-ttf-inconsolata=3.000=h77eed37_0
+  - font-ttf-source-code-pro=2.038=h77eed37_0
+  - font-ttf-ubuntu=0.83=h77eed37_2
+  - fontconfig=2.14.2=h14ed4e7_0
+  - fonts-conda-ecosystem=1=0
+  - fonts-conda-forge=1=0
+  - fonttools=4.53.0=py312h9a8786e_0
+  - freetype=2.12.1=h267a509_2
+  - gettext=0.22.5=h59595ed_2
+  - gettext-tools=0.22.5=h59595ed_2
+  - giflib=5.2.2=hd590300_0
+  - glib=2.80.2=h8a4344b_1
+  - glib-tools=2.80.2=h73ef956_1
+  - gmp=6.3.0=hac33072_2
+  - gmpy2=2.1.5=py312h1d5cde6_1
+  - graphite2=1.3.13=h59595ed_1003
+  - gst-plugins-base=1.24.5=hbaaba92_0
+  - gstreamer=1.24.5=haf2f30d_0
+  - h2=4.1.0=pyhd8ed1ab_0
+  - harfbuzz=8.5.0=hfac3d4d_0
+  - hpack=4.0.0=pyh9f0ad1d_0
+  - hyperframe=6.0.1=pyhd8ed1ab_0
+  - icu=73.2=h59595ed_0
+  - idna=3.7=pyhd8ed1ab_0
+  - imagesize=1.4.1=pyhd8ed1ab_0
+  - importlib-metadata=8.0.0=pyha770c72_0
+  - importlib_metadata=8.0.0=hd8ed1ab_0
+  - importlib_resources=6.4.0=pyhd8ed1ab_0
+  - inflection=0.5.1=pyh9f0ad1d_0
+  - intervaltree=3.1.0=pyhd8ed1ab_1
+  - ipykernel=6.29.5=pyh3099207_0
+  - ipython=8.26.0=pyh707e725_0
+  - isort=5.13.2=pyhd8ed1ab_0
+  - jaraco.classes=3.4.0=pyhd8ed1ab_1
+  - jaraco.context=5.3.0=pyhd8ed1ab_1
+  - jaraco.functools=4.0.0=pyhd8ed1ab_0
+  - jedi=0.19.1=pyhd8ed1ab_0
+  - jeepney=0.8.0=pyhd8ed1ab_0
+  - jellyfish=1.0.4=py312h4413252_0
+  - jinja2=3.1.4=pyhd8ed1ab_0
+  - jsonschema=4.22.0=pyhd8ed1ab_0
+  - jsonschema-specifications=2023.12.1=pyhd8ed1ab_0
+  - jupyter_client=8.6.2=pyhd8ed1ab_0
+  - jupyter_core=5.7.2=py312h7900ff3_0
+  - jupyterlab_pygments=0.3.0=pyhd8ed1ab_1
+  - keyring=25.2.1=pyha804496_0
+  - keyutils=1.6.1=h166bdaf_0
+  - kiwisolver=1.4.5=py312h8572e83_1
+  - krb5=1.21.3=h659f571_0
+  - lame=3.100=h166bdaf_1003
+  - lcms2=2.16=hb7c19ff_0
+  - ld_impl_linux-64=2.40=hf3520f5_7
+  - lerc=4.0.0=h27087fc_0
+  - libasprintf=0.22.5=h661eb56_2
+  - libasprintf-devel=0.22.5=h661eb56_2
+  - libblas=3.9.0=22_linux64_openblas
+  - libbrotlicommon=1.1.0=hd590300_1
+  - libbrotlidec=1.1.0=hd590300_1
+  - libbrotlienc=1.1.0=hd590300_1
+  - libcap=2.69=h0f662aa_0
+  - libcblas=3.9.0=22_linux64_openblas
+  - libclang-cpp15=15.0.7=default_h127d8a8_5
+  - libclang13=18.1.8=default_h6ae225f_0
+  - libcups=2.3.3=h4637d8d_4
+  - libdeflate=1.20=hd590300_0
+  - libedit=3.1.20191231=he28a2e2_2
+  - libevent=2.1.12=hf998b51_1
+  - libexpat=2.6.2=h59595ed_0
+  - libffi=3.4.2=h7f98852_5
+  - libflac=1.4.3=h59595ed_0
+  - libgcc-ng=14.1.0=h77fa898_0
+  - libgcrypt=1.11.0=h4ab18f5_0
+  - libgettextpo=0.22.5=h59595ed_2
+  - libgettextpo-devel=0.22.5=h59595ed_2
+  - libgfortran-ng=14.1.0=h69a702a_0
+  - libgfortran5=14.1.0=hc5f4f2c_0
+  - libglib=2.80.2=h8a4344b_1
+  - libgomp=14.1.0=h77fa898_0
+  - libgpg-error=1.50=h4f305b6_0
+  - libiconv=1.17=hd590300_2
+  - libjpeg-turbo=3.0.0=hd590300_1
+  - liblapack=3.9.0=22_linux64_openblas
+  - libllvm15=15.0.7=hb3ce162_4
+  - libllvm18=18.1.8=hc9dba70_0
+  - libnsl=2.0.1=hd590300_0
+  - libogg=1.3.5=h4ab18f5_0
+  - libopenblas=0.3.27=pthreads_h413a1c8_0
+  - libopus=1.3.1=h7f98852_1
+  - libpng=1.6.43=h2797004_0
+  - libpq=16.3=ha72fbe1_0
+  - libsndfile=1.2.2=hc60ed4a_1
+  - libsodium=1.0.18=h36c2ea0_1
+  - libspatialindex=2.0.0=he02047a_0
+  - libsqlite=3.46.0=hde9e2c9_0
+  - libstdcxx-ng=14.1.0=hc0a3c3a_0
+  - libsystemd0=255=h3516f8a_1
+  - libtiff=4.6.0=h1dd3fc0_3
+  - libuuid=2.38.1=h0b41bf4_0
+  - libvorbis=1.3.7=h9c3ff4c_0
+  - libwebp=1.4.0=h2c329e2_0
+  - libwebp-base=1.4.0=hd590300_0
+  - libxcb=1.16=hd590300_0
+  - libxcrypt=4.4.36=hd590300_1
+  - libxkbcommon=1.7.0=h2c5496b_1
+  - libxml2=2.12.7=hc051c1a_1
+  - libzlib=1.3.1=h4ab18f5_1
+  - lz4-c=1.9.4=hcb278e6_0
+  - markdown-it-py=3.0.0=pyhd8ed1ab_0
+  - markupsafe=2.1.5=py312h98912ed_0
+  - matplotlib=3.8.4=py312h7900ff3_2
+  - matplotlib-base=3.8.4=py312h20ab3a6_2
+  - matplotlib-inline=0.1.7=pyhd8ed1ab_0
+  - mccabe=0.7.0=pyhd8ed1ab_0
+  - mdurl=0.1.2=pyhd8ed1ab_0
+  - mistune=3.0.2=pyhd8ed1ab_0
+  - more-itertools=10.3.0=pyhd8ed1ab_0
+  - mpc=1.3.1=hfe3b2da_0
+  - mpfr=4.2.1=h9458935_1
+  - mpg123=1.32.6=h59595ed_0
+  - mpmath=1.3.0=pyhd8ed1ab_0
+  - munkres=1.1.4=pyh9f0ad1d_0
+  - mypy_extensions=1.0.0=pyha770c72_0
+  - mysql-common=8.3.0=hf1915f5_4
+  - mysql-libs=8.3.0=hca2cd23_4
+  - nbclient=0.10.0=pyhd8ed1ab_0
+  - nbconvert=7.16.4=hd8ed1ab_1
+  - nbconvert-core=7.16.4=pyhd8ed1ab_1
+  - nbconvert-pandoc=7.16.4=hd8ed1ab_1
+  - nbformat=5.10.4=pyhd8ed1ab_0
+  - ncurses=6.5=h59595ed_0
+  - nest-asyncio=1.6.0=pyhd8ed1ab_0
+  - nspr=4.35=h27087fc_0
+  - nss=3.101=h593d115_0
+  - numpy=2.0.0=py312h22e1c76_0
+  - numpydoc=1.7.0=pyhd8ed1ab_1
+  - openjpeg=2.5.2=h488ebb8_0
+  - openssl=3.3.1=h4ab18f5_1
+  - packaging=24.1=pyhd8ed1ab_0
+  - pandas=2.2.2=py312h1d6d2e6_1
+  - pandoc=3.2.1=ha770c72_0
+  - pandocfilters=1.5.0=pyhd8ed1ab_0
+  - parso=0.8.4=pyhd8ed1ab_0
+  - pathspec=0.12.1=pyhd8ed1ab_0
+  - pcre2=10.44=h0f59acf_0
+  - pexpect=4.9.0=pyhd8ed1ab_0
+  - pickleshare=0.7.5=py_1003
+  - pillow=10.3.0=py312h287a98d_1
+  - pip=24.0=pyhd8ed1ab_0
+  - pixman=0.43.2=h59595ed_0
+  - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_1
+  - platformdirs=4.2.2=pyhd8ed1ab_0
+  - pluggy=1.5.0=pyhd8ed1ab_0
+  - ply=3.11=pyhd8ed1ab_2
+  - prompt-toolkit=3.0.47=pyha770c72_0
+  - psutil=6.0.0=py312h9a8786e_0
+  - pthread-stubs=0.4=h36c2ea0_1001
+  - ptyprocess=0.7.0=pyhd3deb0d_0
+  - pulseaudio-client=17.0=hb77b528_0
+  - pure_eval=0.2.2=pyhd8ed1ab_0
+  - pycodestyle=2.11.1=pyhd8ed1ab_0
+  - pycparser=2.22=pyhd8ed1ab_0
+  - pydocstyle=6.3.0=pyhd8ed1ab_0
+  - pyflakes=3.2.0=pyhd8ed1ab_0
+  - pygments=2.18.0=pyhd8ed1ab_0
+  - pylint=3.2.5=pyhd8ed1ab_0
+  - pylint-venv=3.0.3=pyhd8ed1ab_0
+  - pyls-spyder=0.4.0=pyhd8ed1ab_0
+  - pyparsing=3.1.2=pyhd8ed1ab_0
+  - pyqt=5.15.9=py312h949fe66_5
+  - pyqt5-sip=12.12.2=py312h30efb56_5
+  - pyqtwebengine=5.15.9=py312hbd9a932_5
+  - pysocks=1.7.1=pyha2e5f31_6
+  - python=3.12.4=h194c7f8_0_cpython
+  - python-dateutil=2.9.0=pyhd8ed1ab_0
+  - python-fastjsonschema=2.20.0=pyhd8ed1ab_0
+  - python-lsp-black=2.0.0=pyhd8ed1ab_0
+  - python-lsp-jsonrpc=1.1.2=pyhd8ed1ab_0
+  - python-lsp-server=1.11.0=pyhd8ed1ab_0
+  - python-lsp-server-base=1.11.0=pyhd8ed1ab_0
+  - python-slugify=8.0.4=pyhd8ed1ab_0
+  - python-tzdata=2024.1=pyhd8ed1ab_0
+  - python_abi=3.12=4_cp312
+  - pytoolconfig=1.2.5=pyhd8ed1ab_0
+  - pytz=2024.1=pyhd8ed1ab_0
+  - pyxdg=0.28=pyhd8ed1ab_0
+  - pyyaml=6.0.1=py312h98912ed_1
+  - pyzmq=26.0.3=py312h8fd38d8_0
+  - qdarkstyle=3.2.3=pyhd8ed1ab_0
+  - qstylizer=0.2.3=pyhd8ed1ab_0
+  - qt-main=5.15.8=ha2b5568_22
+  - qt-webengine=5.15.8=h4c5bc8f_7
+  - qtawesome=1.3.1=pyh9208f05_0
+  - qtconsole=5.5.2=pyhd8ed1ab_0
+  - qtconsole-base=5.5.2=pyha770c72_0
+  - qtpy=2.4.1=pyhd8ed1ab_0
+  - readline=8.2=h8228510_1
+  - referencing=0.35.1=pyhd8ed1ab_0
+  - requests=2.32.3=pyhd8ed1ab_0
+  - rich=13.7.1=pyhd8ed1ab_0
+  - rope=1.13.0=pyhd8ed1ab_0
+  - rpds-py=0.18.1=py312h4413252_0
+  - rtree=1.2.0=py312h3ed4c40_1
+  - scipy=1.14.0=py312hc2bc53b_0
+  - secretstorage=3.3.3=py312h7900ff3_2
+  - setuptools=70.1.1=pyhd8ed1ab_0
+  - sip=6.7.12=py312h30efb56_0
+  - six=1.16.0=pyh6c4a22f_0
+  - snowballstemmer=2.2.0=pyhd8ed1ab_0
+  - sortedcontainers=2.4.0=pyhd8ed1ab_0
+  - soupsieve=2.5=pyhd8ed1ab_1
+  - sphinx=7.3.7=pyhd8ed1ab_0
+  - sphinxcontrib-applehelp=1.0.8=pyhd8ed1ab_0
+  - sphinxcontrib-devhelp=1.0.6=pyhd8ed1ab_0
+  - sphinxcontrib-htmlhelp=2.0.5=pyhd8ed1ab_0
+  - sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_0
+  - sphinxcontrib-qthelp=1.0.7=pyhd8ed1ab_0
+  - sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_0
+  - spyder=5.5.5=py312h7900ff3_0
+  - spyder-kernels=2.5.2=unix_pyh707e725_0
+  - stack_data=0.6.2=pyhd8ed1ab_0
+  - sympy=1.12.1=pypyh2585a3b_103
+  - tabulate=0.9.0=pyhd8ed1ab_1
+  - text-unidecode=1.3=pyhd8ed1ab_1
+  - textdistance=4.6.2=pyhd8ed1ab_0
+  - three-merge=0.1.1=pyh9f0ad1d_0
+  - tinycss2=1.3.0=pyhd8ed1ab_0
+  - tk=8.6.13=noxft_h4845f30_101
+  - toml=0.10.2=pyhd8ed1ab_0
+  - tomli=2.0.1=pyhd8ed1ab_0
+  - tomlkit=0.12.5=pyha770c72_0
+  - tornado=6.4.1=py312h9a8786e_0
+  - traitlets=5.14.3=pyhd8ed1ab_0
+  - types-python-dateutil=2.9.0.20240316=pyhd8ed1ab_0
+  - typing-extensions=4.12.2=hd8ed1ab_0
+  - typing_extensions=4.12.2=pyha770c72_0
+  - tzdata=2024a=h0c530f3_0
+  - ujson=5.10.0=py312h7070661_0
+  - urllib3=2.2.2=pyhd8ed1ab_1
+  - watchdog=4.0.1=py312h7900ff3_0
+  - wcwidth=0.2.13=pyhd8ed1ab_0
+  - webencodings=0.5.1=pyhd8ed1ab_2
+  - whatthepatch=1.0.5=pyhd8ed1ab_0
+  - wheel=0.43.0=pyhd8ed1ab_1
+  - wurlitzer=3.1.1=pyhd8ed1ab_0
+  - xcb-util=0.4.1=hb711507_2
+  - xcb-util-image=0.4.0=hb711507_2
+  - xcb-util-keysyms=0.4.1=hb711507_0
+  - xcb-util-renderutil=0.3.10=hb711507_0
+  - xcb-util-wm=0.4.2=hb711507_0
+  - xkeyboard-config=2.42=h4ab18f5_0
+  - xorg-compositeproto=0.4.2=h7f98852_1001
+  - xorg-damageproto=1.2.1=h7f98852_1002
+  - xorg-fixesproto=5.0=h7f98852_1002
+  - xorg-inputproto=2.3.2=h7f98852_1002
+  - xorg-kbproto=1.0.7=h7f98852_1002
+  - xorg-libice=1.1.1=hd590300_0
+  - xorg-libsm=1.2.4=h7391055_0
+  - xorg-libx11=1.8.9=hb711507_1
+  - xorg-libxau=1.0.11=hd590300_0
+  - xorg-libxcomposite=0.4.6=h0b41bf4_1
+  - xorg-libxdamage=1.1.5=h7f98852_1
+  - xorg-libxdmcp=1.1.3=h7f98852_0
+  - xorg-libxext=1.3.4=h0b41bf4_2
+  - xorg-libxfixes=5.0.3=h7f98852_1004
+  - xorg-libxi=1.7.10=h7f98852_0
+  - xorg-libxrandr=1.5.2=h7f98852_1
+  - xorg-libxrender=0.9.11=hd590300_0
+  - xorg-libxtst=1.2.3=h7f98852_1002
+  - xorg-randrproto=1.5.0=h7f98852_1001
+  - xorg-recordproto=1.14.2=h7f98852_1002
+  - xorg-renderproto=0.11.1=h7f98852_1002
+  - xorg-util-macros=1.19.3=h7f98852_0
+  - xorg-xextproto=7.3.0=h0b41bf4_1003
+  - xorg-xf86vidmodeproto=2.3.1=h7f98852_1002
+  - xorg-xproto=7.0.31=h7f98852_1007
+  - xz=5.2.6=h166bdaf_0
+  - yaml=0.2.5=h7f98852_2
+  - yapf=0.40.1=pyhd8ed1ab_0
+  - zeromq=4.3.5=h75354e8_4
+  - zipp=3.19.2=pyhd8ed1ab_0
+  - zlib=1.3.1=h4ab18f5_1
+  - zstandard=0.22.0=py312h5b18bf6_1
+  - zstd=1.5.6=ha6fb4c9_0
+prefix: /home/mdefende/.conda/envs/spyder