From 55c08493178e427f272f127f6bd9e68700eaf013 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 27 Jan 2026 16:16:04 +0000 Subject: [PATCH 01/64] add report generation dependencies, use UV venv --- pyproject.toml | 11 +- uv.lock | 740 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 749 insertions(+), 2 deletions(-) create mode 100644 uv.lock diff --git a/pyproject.toml b/pyproject.toml index 025b641..5b33574 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,13 +21,17 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ] dependencies = [ "pandas", "numpy", - "scipy" + "scipy", + "plotly", + "Jinja2", ] [project.urls] @@ -35,8 +39,11 @@ Documentation = "https://github.com/DuguidLab/visiomode_analysis#readme" Issues = "https://github.com/DuguidLab/visiomode_analysis/issues" Source = "https://github.com/DuguidLab/visiomode_analysis" +[project.scripts] +visiomode-analysis = "visiomode_analysis:cli" + [tool.hatch.envs.default] -python = "3.9" +path = ".venv" # Use uv environment path [tool.hatch.build.targets.wheel] packages = ["src/visiomode_analysis"] diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..4dc9a16 --- /dev/null +++ b/uv.lock @@ -0,0 +1,740 @@ +version = 1 +revision = 3 +requires-python = ">=3.9" +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version == '3.10.*'", + "python_full_version < '3.10'", +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" }, + { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" }, + { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" }, + { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" }, + { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, + { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, + { url = "https://files.pythonhosted.org/packages/56/23/0d8c13a44bde9154821586520840643467aee574d8ce79a17da539ee7fed/markupsafe-3.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26", size = 11623, upload-time = "2025-09-27T18:37:29.296Z" }, + { url = "https://files.pythonhosted.org/packages/fd/23/07a2cb9a8045d5f3f0890a8c3bc0859d7a47bfd9a560b563899bec7b72ed/markupsafe-3.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc", size = 12049, upload-time = "2025-09-27T18:37:30.234Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e4/6be85eb81503f8e11b61c0b6369b6e077dcf0a74adbd9ebf6b349937b4e9/markupsafe-3.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c", size = 21923, upload-time = "2025-09-27T18:37:31.177Z" }, + { url = "https://files.pythonhosted.org/packages/6f/bc/4dc914ead3fe6ddaef035341fee0fc956949bbd27335b611829292b89ee2/markupsafe-3.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42", size = 20543, upload-time = "2025-09-27T18:37:32.168Z" }, + { url = "https://files.pythonhosted.org/packages/89/6e/5fe81fbcfba4aef4093d5f856e5c774ec2057946052d18d168219b7bd9f9/markupsafe-3.0.3-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b", size = 20585, upload-time = "2025-09-27T18:37:33.166Z" }, + { url = "https://files.pythonhosted.org/packages/f6/f6/e0e5a3d3ae9c4020f696cd055f940ef86b64fe88de26f3a0308b9d3d048c/markupsafe-3.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758", size = 21387, upload-time = "2025-09-27T18:37:34.185Z" }, + { url = "https://files.pythonhosted.org/packages/c8/25/651753ef4dea08ea790f4fbb65146a9a44a014986996ca40102e237aa49a/markupsafe-3.0.3-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2", size = 20133, upload-time = "2025-09-27T18:37:35.138Z" }, + { url = "https://files.pythonhosted.org/packages/dc/0a/c3cf2b4fef5f0426e8a6d7fce3cb966a17817c568ce59d76b92a233fdbec/markupsafe-3.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d", size = 20588, upload-time = "2025-09-27T18:37:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/cd/1b/a7782984844bd519ad4ffdbebbba2671ec5d0ebbeac34736c15fb86399e8/markupsafe-3.0.3-cp39-cp39-win32.whl", hash = "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7", size = 14566, upload-time = "2025-09-27T18:37:37.09Z" }, + { url = "https://files.pythonhosted.org/packages/18/1f/8d9c20e1c9440e215a44be5ab64359e207fcb4f675543f1cf9a2a7f648d0/markupsafe-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e", size = 15053, upload-time = "2025-09-27T18:37:38.054Z" }, + { url = "https://files.pythonhosted.org/packages/4e/d3/fe08482b5cd995033556d45041a4f4e76e7f0521112a9c9991d40d39825f/markupsafe-3.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8", size = 13928, upload-time = "2025-09-27T18:37:39.037Z" }, +] + +[[package]] +name = "narwhals" +version = "2.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/6d/b57c64e5038a8cf071bce391bb11551657a74558877ac961e7fa905ece27/narwhals-2.15.0.tar.gz", hash = "sha256:a9585975b99d95084268445a1fdd881311fa26ef1caa18020d959d5b2ff9a965", size = 603479, upload-time = "2026-01-06T08:10:13.27Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/2e/cf2ffeb386ac3763526151163ad7da9f1b586aac96d2b4f7de1eaebf0c61/narwhals-2.15.0-py3-none-any.whl", hash = "sha256:cbfe21ca19d260d9fd67f995ec75c44592d1f106933b03ddd375df7ac841f9d6", size = 432856, upload-time = "2026-01-06T08:10:11.511Z" }, +] + +[[package]] +name = "numpy" +version = "2.0.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", size = 18902015, upload-time = "2024-08-26T20:19:40.945Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/21/91/3495b3237510f79f5d81f2508f9f13fea78ebfdf07538fc7444badda173d/numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece", size = 21165245, upload-time = "2024-08-26T20:04:14.625Z" }, + { url = "https://files.pythonhosted.org/packages/05/33/26178c7d437a87082d11019292dce6d3fe6f0e9026b7b2309cbf3e489b1d/numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04", size = 13738540, upload-time = "2024-08-26T20:04:36.784Z" }, + { url = "https://files.pythonhosted.org/packages/ec/31/cc46e13bf07644efc7a4bf68df2df5fb2a1a88d0cd0da9ddc84dc0033e51/numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66", size = 5300623, upload-time = "2024-08-26T20:04:46.491Z" }, + { url = "https://files.pythonhosted.org/packages/6e/16/7bfcebf27bb4f9d7ec67332ffebee4d1bf085c84246552d52dbb548600e7/numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b", size = 6901774, upload-time = "2024-08-26T20:04:58.173Z" }, + { url = "https://files.pythonhosted.org/packages/f9/a3/561c531c0e8bf082c5bef509d00d56f82e0ea7e1e3e3a7fc8fa78742a6e5/numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd", size = 13907081, upload-time = "2024-08-26T20:05:19.098Z" }, + { url = "https://files.pythonhosted.org/packages/fa/66/f7177ab331876200ac7563a580140643d1179c8b4b6a6b0fc9838de2a9b8/numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318", size = 19523451, upload-time = "2024-08-26T20:05:47.479Z" }, + { url = "https://files.pythonhosted.org/packages/25/7f/0b209498009ad6453e4efc2c65bcdf0ae08a182b2b7877d7ab38a92dc542/numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8", size = 19927572, upload-time = "2024-08-26T20:06:17.137Z" }, + { url = "https://files.pythonhosted.org/packages/3e/df/2619393b1e1b565cd2d4c4403bdd979621e2c4dea1f8532754b2598ed63b/numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326", size = 14400722, upload-time = "2024-08-26T20:06:39.16Z" }, + { url = "https://files.pythonhosted.org/packages/22/ad/77e921b9f256d5da36424ffb711ae79ca3f451ff8489eeca544d0701d74a/numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97", size = 6472170, upload-time = "2024-08-26T20:06:50.361Z" }, + { url = "https://files.pythonhosted.org/packages/10/05/3442317535028bc29cf0c0dd4c191a4481e8376e9f0db6bcf29703cadae6/numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131", size = 15905558, upload-time = "2024-08-26T20:07:13.881Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cf/034500fb83041aa0286e0fb16e7c76e5c8b67c0711bb6e9e9737a717d5fe/numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448", size = 21169137, upload-time = "2024-08-26T20:07:45.345Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d9/32de45561811a4b87fbdee23b5797394e3d1504b4a7cf40c10199848893e/numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195", size = 13703552, upload-time = "2024-08-26T20:08:06.666Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ca/2f384720020c7b244d22508cb7ab23d95f179fcfff33c31a6eeba8d6c512/numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57", size = 5298957, upload-time = "2024-08-26T20:08:15.83Z" }, + { url = "https://files.pythonhosted.org/packages/0e/78/a3e4f9fb6aa4e6fdca0c5428e8ba039408514388cf62d89651aade838269/numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a", size = 6905573, upload-time = "2024-08-26T20:08:27.185Z" }, + { url = "https://files.pythonhosted.org/packages/a0/72/cfc3a1beb2caf4efc9d0b38a15fe34025230da27e1c08cc2eb9bfb1c7231/numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669", size = 13914330, upload-time = "2024-08-26T20:08:48.058Z" }, + { url = "https://files.pythonhosted.org/packages/ba/a8/c17acf65a931ce551fee11b72e8de63bf7e8a6f0e21add4c937c83563538/numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951", size = 19534895, upload-time = "2024-08-26T20:09:16.536Z" }, + { url = "https://files.pythonhosted.org/packages/ba/86/8767f3d54f6ae0165749f84648da9dcc8cd78ab65d415494962c86fac80f/numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9", size = 19937253, upload-time = "2024-08-26T20:09:46.263Z" }, + { url = "https://files.pythonhosted.org/packages/df/87/f76450e6e1c14e5bb1eae6836478b1028e096fd02e85c1c37674606ab752/numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15", size = 14414074, upload-time = "2024-08-26T20:10:08.483Z" }, + { url = "https://files.pythonhosted.org/packages/5c/ca/0f0f328e1e59f73754f06e1adfb909de43726d4f24c6a3f8805f34f2b0fa/numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4", size = 6470640, upload-time = "2024-08-26T20:10:19.732Z" }, + { url = "https://files.pythonhosted.org/packages/eb/57/3a3f14d3a759dcf9bf6e9eda905794726b758819df4663f217d658a58695/numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc", size = 15910230, upload-time = "2024-08-26T20:10:43.413Z" }, + { url = "https://files.pythonhosted.org/packages/45/40/2e117be60ec50d98fa08c2f8c48e09b3edea93cfcabd5a9ff6925d54b1c2/numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b", size = 20895803, upload-time = "2024-08-26T20:11:13.916Z" }, + { url = "https://files.pythonhosted.org/packages/46/92/1b8b8dee833f53cef3e0a3f69b2374467789e0bb7399689582314df02651/numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e", size = 13471835, upload-time = "2024-08-26T20:11:34.779Z" }, + { url = "https://files.pythonhosted.org/packages/7f/19/e2793bde475f1edaea6945be141aef6c8b4c669b90c90a300a8954d08f0a/numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c", size = 5038499, upload-time = "2024-08-26T20:11:43.902Z" }, + { url = "https://files.pythonhosted.org/packages/e3/ff/ddf6dac2ff0dd50a7327bcdba45cb0264d0e96bb44d33324853f781a8f3c/numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c", size = 6633497, upload-time = "2024-08-26T20:11:55.09Z" }, + { url = "https://files.pythonhosted.org/packages/72/21/67f36eac8e2d2cd652a2e69595a54128297cdcb1ff3931cfc87838874bd4/numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692", size = 13621158, upload-time = "2024-08-26T20:12:14.95Z" }, + { url = "https://files.pythonhosted.org/packages/39/68/e9f1126d757653496dbc096cb429014347a36b228f5a991dae2c6b6cfd40/numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a", size = 19236173, upload-time = "2024-08-26T20:12:44.049Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e9/1f5333281e4ebf483ba1c888b1d61ba7e78d7e910fdd8e6499667041cc35/numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c", size = 19634174, upload-time = "2024-08-26T20:13:13.634Z" }, + { url = "https://files.pythonhosted.org/packages/71/af/a469674070c8d8408384e3012e064299f7a2de540738a8e414dcfd639996/numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded", size = 14099701, upload-time = "2024-08-26T20:13:34.851Z" }, + { url = "https://files.pythonhosted.org/packages/d0/3d/08ea9f239d0e0e939b6ca52ad403c84a2bce1bde301a8eb4888c1c1543f1/numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5", size = 6174313, upload-time = "2024-08-26T20:13:45.653Z" }, + { url = "https://files.pythonhosted.org/packages/b2/b5/4ac39baebf1fdb2e72585c8352c56d063b6126be9fc95bd2bb5ef5770c20/numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", size = 15606179, upload-time = "2024-08-26T20:14:08.786Z" }, + { url = "https://files.pythonhosted.org/packages/43/c1/41c8f6df3162b0c6ffd4437d729115704bd43363de0090c7f913cfbc2d89/numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c", size = 21169942, upload-time = "2024-08-26T20:14:40.108Z" }, + { url = "https://files.pythonhosted.org/packages/39/bc/fd298f308dcd232b56a4031fd6ddf11c43f9917fbc937e53762f7b5a3bb1/numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd", size = 13711512, upload-time = "2024-08-26T20:15:00.985Z" }, + { url = "https://files.pythonhosted.org/packages/96/ff/06d1aa3eeb1c614eda245c1ba4fb88c483bee6520d361641331872ac4b82/numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b", size = 5306976, upload-time = "2024-08-26T20:15:10.876Z" }, + { url = "https://files.pythonhosted.org/packages/2d/98/121996dcfb10a6087a05e54453e28e58694a7db62c5a5a29cee14c6e047b/numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729", size = 6906494, upload-time = "2024-08-26T20:15:22.055Z" }, + { url = "https://files.pythonhosted.org/packages/15/31/9dffc70da6b9bbf7968f6551967fc21156207366272c2a40b4ed6008dc9b/numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1", size = 13912596, upload-time = "2024-08-26T20:15:42.452Z" }, + { url = "https://files.pythonhosted.org/packages/b9/14/78635daab4b07c0930c919d451b8bf8c164774e6a3413aed04a6d95758ce/numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd", size = 19526099, upload-time = "2024-08-26T20:16:11.048Z" }, + { url = "https://files.pythonhosted.org/packages/26/4c/0eeca4614003077f68bfe7aac8b7496f04221865b3a5e7cb230c9d055afd/numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d", size = 19932823, upload-time = "2024-08-26T20:16:40.171Z" }, + { url = "https://files.pythonhosted.org/packages/f1/46/ea25b98b13dccaebddf1a803f8c748680d972e00507cd9bc6dcdb5aa2ac1/numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d", size = 14404424, upload-time = "2024-08-26T20:17:02.604Z" }, + { url = "https://files.pythonhosted.org/packages/c8/a6/177dd88d95ecf07e722d21008b1b40e681a929eb9e329684d449c36586b2/numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa", size = 6476809, upload-time = "2024-08-26T20:17:13.553Z" }, + { url = "https://files.pythonhosted.org/packages/ea/2b/7fc9f4e7ae5b507c1a3a21f0f15ed03e794c1242ea8a242ac158beb56034/numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73", size = 15911314, upload-time = "2024-08-26T20:17:36.72Z" }, + { url = "https://files.pythonhosted.org/packages/8f/3b/df5a870ac6a3be3a86856ce195ef42eec7ae50d2a202be1f5a4b3b340e14/numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8", size = 21025288, upload-time = "2024-08-26T20:18:07.732Z" }, + { url = "https://files.pythonhosted.org/packages/2c/97/51af92f18d6f6f2d9ad8b482a99fb74e142d71372da5d834b3a2747a446e/numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4", size = 6762793, upload-time = "2024-08-26T20:18:19.125Z" }, + { url = "https://files.pythonhosted.org/packages/12/46/de1fbd0c1b5ccaa7f9a005b66761533e2f6a3e560096682683a223631fe9/numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c", size = 19334885, upload-time = "2024-08-26T20:18:47.237Z" }, + { url = "https://files.pythonhosted.org/packages/cc/dc/d330a6faefd92b446ec0f0dfea4c3207bb1fef3c4771d19cf4543efd2c78/numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385", size = 15828784, upload-time = "2024-08-26T20:19:11.19Z" }, +] + +[[package]] +name = "numpy" +version = "2.2.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.10.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload-time = "2025-05-17T21:27:58.555Z" }, + { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048, upload-time = "2025-05-17T21:28:21.406Z" }, + { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542, upload-time = "2025-05-17T21:28:30.931Z" }, + { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301, upload-time = "2025-05-17T21:28:41.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320, upload-time = "2025-05-17T21:29:02.78Z" }, + { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050, upload-time = "2025-05-17T21:29:27.675Z" }, + { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034, upload-time = "2025-05-17T21:29:51.102Z" }, + { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185, upload-time = "2025-05-17T21:30:18.703Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149, upload-time = "2025-05-17T21:30:29.788Z" }, + { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620, upload-time = "2025-05-17T21:30:48.994Z" }, + { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963, upload-time = "2025-05-17T21:31:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743, upload-time = "2025-05-17T21:31:41.087Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616, upload-time = "2025-05-17T21:31:50.072Z" }, + { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579, upload-time = "2025-05-17T21:32:01.712Z" }, + { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005, upload-time = "2025-05-17T21:32:23.332Z" }, + { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570, upload-time = "2025-05-17T21:32:47.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548, upload-time = "2025-05-17T21:33:11.728Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521, upload-time = "2025-05-17T21:33:39.139Z" }, + { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866, upload-time = "2025-05-17T21:33:50.273Z" }, + { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455, upload-time = "2025-05-17T21:34:09.135Z" }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828, upload-time = "2025-05-17T21:37:56.699Z" }, + { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006, upload-time = "2025-05-17T21:38:18.291Z" }, + { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765, upload-time = "2025-05-17T21:38:27.319Z" }, + { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736, upload-time = "2025-05-17T21:38:38.141Z" }, + { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719, upload-time = "2025-05-17T21:38:58.433Z" }, + { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072, upload-time = "2025-05-17T21:39:22.638Z" }, + { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213, upload-time = "2025-05-17T21:39:45.865Z" }, + { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632, upload-time = "2025-05-17T21:40:13.331Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532, upload-time = "2025-05-17T21:43:46.099Z" }, + { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885, upload-time = "2025-05-17T21:44:05.145Z" }, + { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467, upload-time = "2025-05-17T21:40:44Z" }, + { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144, upload-time = "2025-05-17T21:41:05.695Z" }, + { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217, upload-time = "2025-05-17T21:41:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014, upload-time = "2025-05-17T21:41:27.321Z" }, + { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935, upload-time = "2025-05-17T21:41:49.738Z" }, + { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122, upload-time = "2025-05-17T21:42:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143, upload-time = "2025-05-17T21:42:37.464Z" }, + { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260, upload-time = "2025-05-17T21:43:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225, upload-time = "2025-05-17T21:43:16.254Z" }, + { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374, upload-time = "2025-05-17T21:43:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391, upload-time = "2025-05-17T21:44:35.948Z" }, + { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754, upload-time = "2025-05-17T21:44:47.446Z" }, + { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476, upload-time = "2025-05-17T21:45:11.871Z" }, + { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, +] + +[[package]] +name = "numpy" +version = "2.4.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/24/62/ae72ff66c0f1fd959925b4c11f8c2dea61f47f6acaea75a08512cdfe3fed/numpy-2.4.1.tar.gz", hash = "sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690", size = 20721320, upload-time = "2026-01-10T06:44:59.619Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a5/34/2b1bc18424f3ad9af577f6ce23600319968a70575bd7db31ce66731bbef9/numpy-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5", size = 16944563, upload-time = "2026-01-10T06:42:14.615Z" }, + { url = "https://files.pythonhosted.org/packages/2c/57/26e5f97d075aef3794045a6ca9eada6a4ed70eb9a40e7a4a93f9ac80d704/numpy-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425", size = 12645658, upload-time = "2026-01-10T06:42:17.298Z" }, + { url = "https://files.pythonhosted.org/packages/8e/ba/80fc0b1e3cb2fd5c6143f00f42eb67762aa043eaa05ca924ecc3222a7849/numpy-2.4.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba", size = 5474132, upload-time = "2026-01-10T06:42:19.637Z" }, + { url = "https://files.pythonhosted.org/packages/40/ae/0a5b9a397f0e865ec171187c78d9b57e5588afc439a04ba9cab1ebb2c945/numpy-2.4.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501", size = 6804159, upload-time = "2026-01-10T06:42:21.44Z" }, + { url = "https://files.pythonhosted.org/packages/86/9c/841c15e691c7085caa6fd162f063eff494099c8327aeccd509d1ab1e36ab/numpy-2.4.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a", size = 14708058, upload-time = "2026-01-10T06:42:23.546Z" }, + { url = "https://files.pythonhosted.org/packages/5d/9d/7862db06743f489e6a502a3b93136d73aea27d97b2cf91504f70a27501d6/numpy-2.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509", size = 16651501, upload-time = "2026-01-10T06:42:25.909Z" }, + { url = "https://files.pythonhosted.org/packages/a6/9c/6fc34ebcbd4015c6e5f0c0ce38264010ce8a546cb6beacb457b84a75dfc8/numpy-2.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc", size = 16492627, upload-time = "2026-01-10T06:42:28.938Z" }, + { url = "https://files.pythonhosted.org/packages/aa/63/2494a8597502dacda439f61b3c0db4da59928150e62be0e99395c3ad23c5/numpy-2.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82", size = 18585052, upload-time = "2026-01-10T06:42:31.312Z" }, + { url = "https://files.pythonhosted.org/packages/6a/93/098e1162ae7522fc9b618d6272b77404c4656c72432ecee3abc029aa3de0/numpy-2.4.1-cp311-cp311-win32.whl", hash = "sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0", size = 6236575, upload-time = "2026-01-10T06:42:33.872Z" }, + { url = "https://files.pythonhosted.org/packages/8c/de/f5e79650d23d9e12f38a7bc6b03ea0835b9575494f8ec94c11c6e773b1b1/numpy-2.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574", size = 12604479, upload-time = "2026-01-10T06:42:35.778Z" }, + { url = "https://files.pythonhosted.org/packages/dd/65/e1097a7047cff12ce3369bd003811516b20ba1078dbdec135e1cd7c16c56/numpy-2.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73", size = 10578325, upload-time = "2026-01-10T06:42:38.518Z" }, + { url = "https://files.pythonhosted.org/packages/78/7f/ec53e32bf10c813604edf07a3682616bd931d026fcde7b6d13195dfb684a/numpy-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2", size = 16656888, upload-time = "2026-01-10T06:42:40.913Z" }, + { url = "https://files.pythonhosted.org/packages/b8/e0/1f9585d7dae8f14864e948fd7fa86c6cb72dee2676ca2748e63b1c5acfe0/numpy-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8", size = 12373956, upload-time = "2026-01-10T06:42:43.091Z" }, + { url = "https://files.pythonhosted.org/packages/8e/43/9762e88909ff2326f5e7536fa8cb3c49fb03a7d92705f23e6e7f553d9cb3/numpy-2.4.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a", size = 5202567, upload-time = "2026-01-10T06:42:45.107Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ee/34b7930eb61e79feb4478800a4b95b46566969d837546aa7c034c742ef98/numpy-2.4.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0", size = 6549459, upload-time = "2026-01-10T06:42:48.152Z" }, + { url = "https://files.pythonhosted.org/packages/79/e3/5f115fae982565771be994867c89bcd8d7208dbfe9469185497d70de5ddf/numpy-2.4.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c", size = 14404859, upload-time = "2026-01-10T06:42:49.947Z" }, + { url = "https://files.pythonhosted.org/packages/d9/7d/9c8a781c88933725445a859cac5d01b5871588a15969ee6aeb618ba99eee/numpy-2.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02", size = 16371419, upload-time = "2026-01-10T06:42:52.409Z" }, + { url = "https://files.pythonhosted.org/packages/a6/d2/8aa084818554543f17cf4162c42f162acbd3bb42688aefdba6628a859f77/numpy-2.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162", size = 16182131, upload-time = "2026-01-10T06:42:54.694Z" }, + { url = "https://files.pythonhosted.org/packages/60/db/0425216684297c58a8df35f3284ef56ec4a043e6d283f8a59c53562caf1b/numpy-2.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9", size = 18295342, upload-time = "2026-01-10T06:42:56.991Z" }, + { url = "https://files.pythonhosted.org/packages/31/4c/14cb9d86240bd8c386c881bafbe43f001284b7cce3bc01623ac9475da163/numpy-2.4.1-cp312-cp312-win32.whl", hash = "sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f", size = 5959015, upload-time = "2026-01-10T06:42:59.631Z" }, + { url = "https://files.pythonhosted.org/packages/51/cf/52a703dbeb0c65807540d29699fef5fda073434ff61846a564d5c296420f/numpy-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87", size = 12310730, upload-time = "2026-01-10T06:43:01.627Z" }, + { url = "https://files.pythonhosted.org/packages/69/80/a828b2d0ade5e74a9fe0f4e0a17c30fdc26232ad2bc8c9f8b3197cf7cf18/numpy-2.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8", size = 10312166, upload-time = "2026-01-10T06:43:03.673Z" }, + { url = "https://files.pythonhosted.org/packages/04/68/732d4b7811c00775f3bd522a21e8dd5a23f77eb11acdeb663e4a4ebf0ef4/numpy-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b", size = 16652495, upload-time = "2026-01-10T06:43:06.283Z" }, + { url = "https://files.pythonhosted.org/packages/20/ca/857722353421a27f1465652b2c66813eeeccea9d76d5f7b74b99f298e60e/numpy-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f", size = 12368657, upload-time = "2026-01-10T06:43:09.094Z" }, + { url = "https://files.pythonhosted.org/packages/81/0d/2377c917513449cc6240031a79d30eb9a163d32a91e79e0da47c43f2c0c8/numpy-2.4.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9", size = 5197256, upload-time = "2026-01-10T06:43:13.634Z" }, + { url = "https://files.pythonhosted.org/packages/17/39/569452228de3f5de9064ac75137082c6214be1f5c532016549a7923ab4b5/numpy-2.4.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e", size = 6545212, upload-time = "2026-01-10T06:43:15.661Z" }, + { url = "https://files.pythonhosted.org/packages/8c/a4/77333f4d1e4dac4395385482557aeecf4826e6ff517e32ca48e1dafbe42a/numpy-2.4.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5", size = 14402871, upload-time = "2026-01-10T06:43:17.324Z" }, + { url = "https://files.pythonhosted.org/packages/ba/87/d341e519956273b39d8d47969dd1eaa1af740615394fe67d06f1efa68773/numpy-2.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8", size = 16359305, upload-time = "2026-01-10T06:43:19.376Z" }, + { url = "https://files.pythonhosted.org/packages/32/91/789132c6666288eaa20ae8066bb99eba1939362e8f1a534949a215246e97/numpy-2.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c", size = 16181909, upload-time = "2026-01-10T06:43:21.808Z" }, + { url = "https://files.pythonhosted.org/packages/cf/b8/090b8bd27b82a844bb22ff8fdf7935cb1980b48d6e439ae116f53cdc2143/numpy-2.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2", size = 18284380, upload-time = "2026-01-10T06:43:23.957Z" }, + { url = "https://files.pythonhosted.org/packages/67/78/722b62bd31842ff029412271556a1a27a98f45359dea78b1548a3a9996aa/numpy-2.4.1-cp313-cp313-win32.whl", hash = "sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d", size = 5957089, upload-time = "2026-01-10T06:43:27.535Z" }, + { url = "https://files.pythonhosted.org/packages/da/a6/cf32198b0b6e18d4fbfa9a21a992a7fca535b9bb2b0cdd217d4a3445b5ca/numpy-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb", size = 12307230, upload-time = "2026-01-10T06:43:29.298Z" }, + { url = "https://files.pythonhosted.org/packages/44/6c/534d692bfb7d0afe30611320c5fb713659dcb5104d7cc182aff2aea092f5/numpy-2.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5", size = 10313125, upload-time = "2026-01-10T06:43:31.782Z" }, + { url = "https://files.pythonhosted.org/packages/da/a1/354583ac5c4caa566de6ddfbc42744409b515039e085fab6e0ff942e0df5/numpy-2.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7", size = 12496156, upload-time = "2026-01-10T06:43:34.237Z" }, + { url = "https://files.pythonhosted.org/packages/51/b0/42807c6e8cce58c00127b1dc24d365305189991f2a7917aa694a109c8d7d/numpy-2.4.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d", size = 5324663, upload-time = "2026-01-10T06:43:36.211Z" }, + { url = "https://files.pythonhosted.org/packages/fe/55/7a621694010d92375ed82f312b2f28017694ed784775269115323e37f5e2/numpy-2.4.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15", size = 6645224, upload-time = "2026-01-10T06:43:37.884Z" }, + { url = "https://files.pythonhosted.org/packages/50/96/9fa8635ed9d7c847d87e30c834f7109fac5e88549d79ef3324ab5c20919f/numpy-2.4.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9", size = 14462352, upload-time = "2026-01-10T06:43:39.479Z" }, + { url = "https://files.pythonhosted.org/packages/03/d1/8cf62d8bb2062da4fb82dd5d49e47c923f9c0738032f054e0a75342faba7/numpy-2.4.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2", size = 16407279, upload-time = "2026-01-10T06:43:41.93Z" }, + { url = "https://files.pythonhosted.org/packages/86/1c/95c86e17c6b0b31ce6ef219da00f71113b220bcb14938c8d9a05cee0ff53/numpy-2.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505", size = 16248316, upload-time = "2026-01-10T06:43:44.121Z" }, + { url = "https://files.pythonhosted.org/packages/30/b4/e7f5ff8697274c9d0fa82398b6a372a27e5cef069b37df6355ccb1f1db1a/numpy-2.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2", size = 18329884, upload-time = "2026-01-10T06:43:46.613Z" }, + { url = "https://files.pythonhosted.org/packages/37/a4/b073f3e9d77f9aec8debe8ca7f9f6a09e888ad1ba7488f0c3b36a94c03ac/numpy-2.4.1-cp313-cp313t-win32.whl", hash = "sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4", size = 6081138, upload-time = "2026-01-10T06:43:48.854Z" }, + { url = "https://files.pythonhosted.org/packages/16/16/af42337b53844e67752a092481ab869c0523bc95c4e5c98e4dac4e9581ac/numpy-2.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510", size = 12447478, upload-time = "2026-01-10T06:43:50.476Z" }, + { url = "https://files.pythonhosted.org/packages/6c/f8/fa85b2eac68ec631d0b631abc448552cb17d39afd17ec53dcbcc3537681a/numpy-2.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261", size = 10382981, upload-time = "2026-01-10T06:43:52.575Z" }, + { url = "https://files.pythonhosted.org/packages/1b/a7/ef08d25698e0e4b4efbad8d55251d20fe2a15f6d9aa7c9b30cd03c165e6f/numpy-2.4.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc", size = 16652046, upload-time = "2026-01-10T06:43:54.797Z" }, + { url = "https://files.pythonhosted.org/packages/8f/39/e378b3e3ca13477e5ac70293ec027c438d1927f18637e396fe90b1addd72/numpy-2.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3", size = 12378858, upload-time = "2026-01-10T06:43:57.099Z" }, + { url = "https://files.pythonhosted.org/packages/c3/74/7ec6154f0006910ed1fdbb7591cf4432307033102b8a22041599935f8969/numpy-2.4.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220", size = 5207417, upload-time = "2026-01-10T06:43:59.037Z" }, + { url = "https://files.pythonhosted.org/packages/f7/b7/053ac11820d84e42f8feea5cb81cc4fcd1091499b45b1ed8c7415b1bf831/numpy-2.4.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee", size = 6542643, upload-time = "2026-01-10T06:44:01.852Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c4/2e7908915c0e32ca636b92e4e4a3bdec4cb1e7eb0f8aedf1ed3c68a0d8cd/numpy-2.4.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556", size = 14418963, upload-time = "2026-01-10T06:44:04.047Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c0/3ed5083d94e7ffd7c404e54619c088e11f2e1939a9544f5397f4adb1b8ba/numpy-2.4.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844", size = 16363811, upload-time = "2026-01-10T06:44:06.207Z" }, + { url = "https://files.pythonhosted.org/packages/0e/68/42b66f1852bf525050a67315a4fb94586ab7e9eaa541b1bef530fab0c5dd/numpy-2.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3", size = 16197643, upload-time = "2026-01-10T06:44:08.33Z" }, + { url = "https://files.pythonhosted.org/packages/d2/40/e8714fc933d85f82c6bfc7b998a0649ad9769a32f3494ba86598aaf18a48/numpy-2.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205", size = 18289601, upload-time = "2026-01-10T06:44:10.841Z" }, + { url = "https://files.pythonhosted.org/packages/80/9a/0d44b468cad50315127e884802351723daca7cf1c98d102929468c81d439/numpy-2.4.1-cp314-cp314-win32.whl", hash = "sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745", size = 6005722, upload-time = "2026-01-10T06:44:13.332Z" }, + { url = "https://files.pythonhosted.org/packages/7e/bb/c6513edcce5a831810e2dddc0d3452ce84d208af92405a0c2e58fd8e7881/numpy-2.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d", size = 12438590, upload-time = "2026-01-10T06:44:15.006Z" }, + { url = "https://files.pythonhosted.org/packages/e9/da/a598d5cb260780cf4d255102deba35c1d072dc028c4547832f45dd3323a8/numpy-2.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df", size = 10596180, upload-time = "2026-01-10T06:44:17.386Z" }, + { url = "https://files.pythonhosted.org/packages/de/bc/ea3f2c96fcb382311827231f911723aeff596364eb6e1b6d1d91128aa29b/numpy-2.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f", size = 12498774, upload-time = "2026-01-10T06:44:19.467Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ab/ef9d939fe4a812648c7a712610b2ca6140b0853c5efea361301006c02ae5/numpy-2.4.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0", size = 5327274, upload-time = "2026-01-10T06:44:23.189Z" }, + { url = "https://files.pythonhosted.org/packages/bd/31/d381368e2a95c3b08b8cf7faac6004849e960f4a042d920337f71cef0cae/numpy-2.4.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c", size = 6648306, upload-time = "2026-01-10T06:44:25.012Z" }, + { url = "https://files.pythonhosted.org/packages/c8/e5/0989b44ade47430be6323d05c23207636d67d7362a1796ccbccac6773dd2/numpy-2.4.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93", size = 14464653, upload-time = "2026-01-10T06:44:26.706Z" }, + { url = "https://files.pythonhosted.org/packages/10/a7/cfbe475c35371cae1358e61f20c5f075badc18c4797ab4354140e1d283cf/numpy-2.4.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42", size = 16405144, upload-time = "2026-01-10T06:44:29.378Z" }, + { url = "https://files.pythonhosted.org/packages/f8/a3/0c63fe66b534888fa5177cc7cef061541064dbe2b4b60dcc60ffaf0d2157/numpy-2.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01", size = 16247425, upload-time = "2026-01-10T06:44:31.721Z" }, + { url = "https://files.pythonhosted.org/packages/6b/2b/55d980cfa2c93bd40ff4c290bf824d792bd41d2fe3487b07707559071760/numpy-2.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b", size = 18330053, upload-time = "2026-01-10T06:44:34.617Z" }, + { url = "https://files.pythonhosted.org/packages/23/12/8b5fc6b9c487a09a7957188e0943c9ff08432c65e34567cabc1623b03a51/numpy-2.4.1-cp314-cp314t-win32.whl", hash = "sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a", size = 6152482, upload-time = "2026-01-10T06:44:36.798Z" }, + { url = "https://files.pythonhosted.org/packages/00/a5/9f8ca5856b8940492fc24fbe13c1bc34d65ddf4079097cf9e53164d094e1/numpy-2.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2", size = 12627117, upload-time = "2026-01-10T06:44:38.828Z" }, + { url = "https://files.pythonhosted.org/packages/ad/0d/eca3d962f9eef265f01a8e0d20085c6dd1f443cbffc11b6dede81fd82356/numpy-2.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295", size = 10667121, upload-time = "2026-01-10T06:44:41.644Z" }, + { url = "https://files.pythonhosted.org/packages/1e/48/d86f97919e79314a1cdee4c832178763e6e98e623e123d0bada19e92c15a/numpy-2.4.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1", size = 16822202, upload-time = "2026-01-10T06:44:43.738Z" }, + { url = "https://files.pythonhosted.org/packages/51/e9/1e62a7f77e0f37dcfb0ad6a9744e65df00242b6ea37dfafb55debcbf5b55/numpy-2.4.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344", size = 12569985, upload-time = "2026-01-10T06:44:45.945Z" }, + { url = "https://files.pythonhosted.org/packages/c7/7e/914d54f0c801342306fdcdce3e994a56476f1b818c46c47fc21ae968088c/numpy-2.4.1-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e", size = 5398484, upload-time = "2026-01-10T06:44:48.012Z" }, + { url = "https://files.pythonhosted.org/packages/1c/d8/9570b68584e293a33474e7b5a77ca404f1dcc655e40050a600dee81d27fb/numpy-2.4.1-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426", size = 6713216, upload-time = "2026-01-10T06:44:49.725Z" }, + { url = "https://files.pythonhosted.org/packages/33/9b/9dd6e2db8d49eb24f86acaaa5258e5f4c8ed38209a4ee9de2d1a0ca25045/numpy-2.4.1-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696", size = 14538937, upload-time = "2026-01-10T06:44:51.498Z" }, + { url = "https://files.pythonhosted.org/packages/53/87/d5bd995b0f798a37105b876350d346eea5838bd8f77ea3d7a48392f3812b/numpy-2.4.1-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be", size = 16479830, upload-time = "2026-01-10T06:44:53.931Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c7/b801bf98514b6ae6475e941ac05c58e6411dd863ea92916bfd6d510b08c1/numpy-2.4.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33", size = 12492579, upload-time = "2026-01-10T06:44:57.094Z" }, +] + +[[package]] +name = "packaging" +version = "26.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, +] + +[[package]] +name = "pandas" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.10.*'", + "python_full_version < '3.10'", +] +dependencies = [ + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "python-dateutil", marker = "python_full_version < '3.11'" }, + { name = "pytz", marker = "python_full_version < '3.11'" }, + { name = "tzdata", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload-time = "2025-09-29T23:34:51.853Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/f7/f425a00df4fcc22b292c6895c6831c0c8ae1d9fac1e024d16f98a9ce8749/pandas-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:376c6446ae31770764215a6c937f72d917f214b43560603cd60da6408f183b6c", size = 11555763, upload-time = "2025-09-29T23:16:53.287Z" }, + { url = "https://files.pythonhosted.org/packages/13/4f/66d99628ff8ce7857aca52fed8f0066ce209f96be2fede6cef9f84e8d04f/pandas-2.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e19d192383eab2f4ceb30b412b22ea30690c9e618f78870357ae1d682912015a", size = 10801217, upload-time = "2025-09-29T23:17:04.522Z" }, + { url = "https://files.pythonhosted.org/packages/1d/03/3fc4a529a7710f890a239cc496fc6d50ad4a0995657dccc1d64695adb9f4/pandas-2.3.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5caf26f64126b6c7aec964f74266f435afef1c1b13da3b0636c7518a1fa3e2b1", size = 12148791, upload-time = "2025-09-29T23:17:18.444Z" }, + { url = "https://files.pythonhosted.org/packages/40/a8/4dac1f8f8235e5d25b9955d02ff6f29396191d4e665d71122c3722ca83c5/pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dd7478f1463441ae4ca7308a70e90b33470fa593429f9d4c578dd00d1fa78838", size = 12769373, upload-time = "2025-09-29T23:17:35.846Z" }, + { url = "https://files.pythonhosted.org/packages/df/91/82cc5169b6b25440a7fc0ef3a694582418d875c8e3ebf796a6d6470aa578/pandas-2.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4793891684806ae50d1288c9bae9330293ab4e083ccd1c5e383c34549c6e4250", size = 13200444, upload-time = "2025-09-29T23:17:49.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/ae/89b3283800ab58f7af2952704078555fa60c807fff764395bb57ea0b0dbd/pandas-2.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28083c648d9a99a5dd035ec125d42439c6c1c525098c58af0fc38dd1a7a1b3d4", size = 13858459, upload-time = "2025-09-29T23:18:03.722Z" }, + { url = "https://files.pythonhosted.org/packages/85/72/530900610650f54a35a19476eca5104f38555afccda1aa11a92ee14cb21d/pandas-2.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:503cf027cf9940d2ceaa1a93cfb5f8c8c7e6e90720a2850378f0b3f3b1e06826", size = 11346086, upload-time = "2025-09-29T23:18:18.505Z" }, + { url = "https://files.pythonhosted.org/packages/c1/fa/7ac648108144a095b4fb6aa3de1954689f7af60a14cf25583f4960ecb878/pandas-2.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:602b8615ebcc4a0c1751e71840428ddebeb142ec02c786e8ad6b1ce3c8dec523", size = 11578790, upload-time = "2025-09-29T23:18:30.065Z" }, + { url = "https://files.pythonhosted.org/packages/9b/35/74442388c6cf008882d4d4bdfc4109be87e9b8b7ccd097ad1e7f006e2e95/pandas-2.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8fe25fc7b623b0ef6b5009149627e34d2a4657e880948ec3c840e9402e5c1b45", size = 10833831, upload-time = "2025-09-29T23:38:56.071Z" }, + { url = "https://files.pythonhosted.org/packages/fe/e4/de154cbfeee13383ad58d23017da99390b91d73f8c11856f2095e813201b/pandas-2.3.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b468d3dad6ff947df92dcb32ede5b7bd41a9b3cceef0a30ed925f6d01fb8fa66", size = 12199267, upload-time = "2025-09-29T23:18:41.627Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c9/63f8d545568d9ab91476b1818b4741f521646cbdd151c6efebf40d6de6f7/pandas-2.3.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b", size = 12789281, upload-time = "2025-09-29T23:18:56.834Z" }, + { url = "https://files.pythonhosted.org/packages/f2/00/a5ac8c7a0e67fd1a6059e40aa08fa1c52cc00709077d2300e210c3ce0322/pandas-2.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37b5848ba49824e5c30bedb9c830ab9b7751fd049bc7914533e01c65f79791", size = 13240453, upload-time = "2025-09-29T23:19:09.247Z" }, + { url = "https://files.pythonhosted.org/packages/27/4d/5c23a5bc7bd209231618dd9e606ce076272c9bc4f12023a70e03a86b4067/pandas-2.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db4301b2d1f926ae677a751eb2bd0e8c5f5319c9cb3f88b0becbbb0b07b34151", size = 13890361, upload-time = "2025-09-29T23:19:25.342Z" }, + { url = "https://files.pythonhosted.org/packages/8e/59/712db1d7040520de7a4965df15b774348980e6df45c129b8c64d0dbe74ef/pandas-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c", size = 11348702, upload-time = "2025-09-29T23:19:38.296Z" }, + { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846, upload-time = "2025-09-29T23:19:48.856Z" }, + { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618, upload-time = "2025-09-29T23:39:08.659Z" }, + { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212, upload-time = "2025-09-29T23:19:59.765Z" }, + { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693, upload-time = "2025-09-29T23:20:14.098Z" }, + { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002, upload-time = "2025-09-29T23:20:26.76Z" }, + { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971, upload-time = "2025-09-29T23:20:41.344Z" }, + { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722, upload-time = "2025-09-29T23:20:54.139Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload-time = "2025-09-29T23:21:05.024Z" }, + { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload-time = "2025-09-29T23:21:15.979Z" }, + { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload-time = "2025-09-29T23:21:27.165Z" }, + { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload-time = "2025-09-29T23:21:40.532Z" }, + { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload-time = "2025-09-29T23:21:55.77Z" }, + { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload-time = "2025-09-29T23:22:10.109Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload-time = "2025-09-29T23:25:04.889Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload-time = "2025-09-29T23:22:24.343Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload-time = "2025-09-29T23:22:37.762Z" }, + { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload-time = "2025-09-29T23:22:51.688Z" }, + { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload-time = "2025-09-29T23:23:05.042Z" }, + { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload-time = "2025-09-29T23:23:28.57Z" }, + { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload-time = "2025-09-29T23:24:24.876Z" }, + { url = "https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0", size = 11540635, upload-time = "2025-09-29T23:25:52.486Z" }, + { url = "https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593", size = 10759079, upload-time = "2025-09-29T23:26:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/ca/05/d01ef80a7a3a12b2f8bbf16daba1e17c98a2f039cbc8e2f77a2c5a63d382/pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c", size = 11814049, upload-time = "2025-09-29T23:27:15.384Z" }, + { url = "https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b", size = 12332638, upload-time = "2025-09-29T23:27:51.625Z" }, + { url = "https://files.pythonhosted.org/packages/c5/33/dd70400631b62b9b29c3c93d2feee1d0964dc2bae2e5ad7a6c73a7f25325/pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6", size = 12886834, upload-time = "2025-09-29T23:28:21.289Z" }, + { url = "https://files.pythonhosted.org/packages/d3/18/b5d48f55821228d0d2692b34fd5034bb185e854bdb592e9c640f6290e012/pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3", size = 13409925, upload-time = "2025-09-29T23:28:58.261Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/124ac75fcd0ecc09b8fdccb0246ef65e35b012030defb0e0eba2cbbbe948/pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5", size = 11109071, upload-time = "2025-09-29T23:32:27.484Z" }, + { url = "https://files.pythonhosted.org/packages/89/9c/0e21c895c38a157e0faa1fb64587a9226d6dd46452cac4532d80c3c4a244/pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec", size = 12048504, upload-time = "2025-09-29T23:29:31.47Z" }, + { url = "https://files.pythonhosted.org/packages/d7/82/b69a1c95df796858777b68fbe6a81d37443a33319761d7c652ce77797475/pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7", size = 11410702, upload-time = "2025-09-29T23:29:54.591Z" }, + { url = "https://files.pythonhosted.org/packages/f9/88/702bde3ba0a94b8c73a0181e05144b10f13f29ebfc2150c3a79062a8195d/pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450", size = 11634535, upload-time = "2025-09-29T23:30:21.003Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1e/1bac1a839d12e6a82ec6cb40cda2edde64a2013a66963293696bbf31fbbb/pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5", size = 12121582, upload-time = "2025-09-29T23:30:43.391Z" }, + { url = "https://files.pythonhosted.org/packages/44/91/483de934193e12a3b1d6ae7c8645d083ff88dec75f46e827562f1e4b4da6/pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788", size = 12699963, upload-time = "2025-09-29T23:31:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/70/44/5191d2e4026f86a2a109053e194d3ba7a31a2d10a9c2348368c63ed4e85a/pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87", size = 13202175, upload-time = "2025-09-29T23:31:59.173Z" }, + { url = "https://files.pythonhosted.org/packages/56/b4/52eeb530a99e2a4c55ffcd352772b599ed4473a0f892d127f4147cf0f88e/pandas-2.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c503ba5216814e295f40711470446bc3fd00f0faea8a086cbc688808e26f92a2", size = 11567720, upload-time = "2025-09-29T23:33:06.209Z" }, + { url = "https://files.pythonhosted.org/packages/48/4a/2d8b67632a021bced649ba940455ed441ca854e57d6e7658a6024587b083/pandas-2.3.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a637c5cdfa04b6d6e2ecedcb81fc52ffb0fd78ce2ebccc9ea964df9f658de8c8", size = 10810302, upload-time = "2025-09-29T23:33:35.846Z" }, + { url = "https://files.pythonhosted.org/packages/13/e6/d2465010ee0569a245c975dc6967b801887068bc893e908239b1f4b6c1ac/pandas-2.3.3-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:854d00d556406bffe66a4c0802f334c9ad5a96b4f1f868adf036a21b11ef13ff", size = 12154874, upload-time = "2025-09-29T23:33:49.939Z" }, + { url = "https://files.pythonhosted.org/packages/1f/18/aae8c0aa69a386a3255940e9317f793808ea79d0a525a97a903366bb2569/pandas-2.3.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bf1f8a81d04ca90e32a0aceb819d34dbd378a98bf923b6398b9a3ec0bf44de29", size = 12790141, upload-time = "2025-09-29T23:34:05.655Z" }, + { url = "https://files.pythonhosted.org/packages/f7/26/617f98de789de00c2a444fbe6301bb19e66556ac78cff933d2c98f62f2b4/pandas-2.3.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:23ebd657a4d38268c7dfbdf089fbc31ea709d82e4923c5ffd4fbd5747133ce73", size = 13208697, upload-time = "2025-09-29T23:34:21.835Z" }, + { url = "https://files.pythonhosted.org/packages/b9/fb/25709afa4552042bd0e15717c75e9b4a2294c3dc4f7e6ea50f03c5136600/pandas-2.3.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5554c929ccc317d41a5e3d1234f3be588248e61f08a74dd17c9eabb535777dc9", size = 13879233, upload-time = "2025-09-29T23:34:35.079Z" }, + { url = "https://files.pythonhosted.org/packages/98/af/7be05277859a7bc399da8ba68b88c96b27b48740b6cf49688899c6eb4176/pandas-2.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:d3e28b3e83862ccf4d85ff19cf8c20b2ae7e503881711ff2d534dc8f761131aa", size = 11359119, upload-time = "2025-09-29T23:34:46.339Z" }, +] + +[[package]] +name = "pandas" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", +] +dependencies = [ + { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "python-dateutil", marker = "python_full_version >= '3.11'" }, + { name = "tzdata", marker = "(python_full_version >= '3.11' and sys_platform == 'emscripten') or (python_full_version >= '3.11' and sys_platform == 'win32')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/de/da/b1dc0481ab8d55d0f46e343cfe67d4551a0e14fcee52bd38ca1bd73258d8/pandas-3.0.0.tar.gz", hash = "sha256:0facf7e87d38f721f0af46fe70d97373a37701b1c09f7ed7aeeb292ade5c050f", size = 4633005, upload-time = "2026-01-21T15:52:04.726Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/1e/b184654a856e75e975a6ee95d6577b51c271cd92cb2b020c9378f53e0032/pandas-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d64ce01eb9cdca96a15266aa679ae50212ec52757c79204dbc7701a222401850", size = 10313247, upload-time = "2026-01-21T15:50:15.775Z" }, + { url = "https://files.pythonhosted.org/packages/dd/5e/e04a547ad0f0183bf151fd7c7a477468e3b85ff2ad231c566389e6cc9587/pandas-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:613e13426069793aa1ec53bdcc3b86e8d32071daea138bbcf4fa959c9cdaa2e2", size = 9913131, upload-time = "2026-01-21T15:50:18.611Z" }, + { url = "https://files.pythonhosted.org/packages/a2/93/bb77bfa9fc2aba9f7204db807d5d3fb69832ed2854c60ba91b4c65ba9219/pandas-3.0.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0192fee1f1a8e743b464a6607858ee4b071deb0b118eb143d71c2a1d170996d5", size = 10741925, upload-time = "2026-01-21T15:50:21.058Z" }, + { url = "https://files.pythonhosted.org/packages/62/fb/89319812eb1d714bfc04b7f177895caeba8ab4a37ef6712db75ed786e2e0/pandas-3.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0b853319dec8d5e0c8b875374c078ef17f2269986a78168d9bd57e49bf650ae", size = 11245979, upload-time = "2026-01-21T15:50:23.413Z" }, + { url = "https://files.pythonhosted.org/packages/a9/63/684120486f541fc88da3862ed31165b3b3e12b6a1c7b93be4597bc84e26c/pandas-3.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:707a9a877a876c326ae2cb640fbdc4ef63b0a7b9e2ef55c6df9942dcee8e2af9", size = 11756337, upload-time = "2026-01-21T15:50:25.932Z" }, + { url = "https://files.pythonhosted.org/packages/39/92/7eb0ad232312b59aec61550c3c81ad0743898d10af5df7f80bc5e5065416/pandas-3.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:afd0aa3d0b5cda6e0b8ffc10dbcca3b09ef3cbcd3fe2b27364f85fdc04e1989d", size = 12325517, upload-time = "2026-01-21T15:50:27.952Z" }, + { url = "https://files.pythonhosted.org/packages/51/27/bf9436dd0a4fc3130acec0828951c7ef96a0631969613a9a35744baf27f6/pandas-3.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:113b4cca2614ff7e5b9fee9b6f066618fe73c5a83e99d721ffc41217b2bf57dd", size = 9881576, upload-time = "2026-01-21T15:50:30.149Z" }, + { url = "https://files.pythonhosted.org/packages/e7/2b/c618b871fce0159fd107516336e82891b404e3f340821853c2fc28c7830f/pandas-3.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c14837eba8e99a8da1527c0280bba29b0eb842f64aa94982c5e21227966e164b", size = 9140807, upload-time = "2026-01-21T15:50:32.308Z" }, + { url = "https://files.pythonhosted.org/packages/0b/38/db33686f4b5fa64d7af40d96361f6a4615b8c6c8f1b3d334eee46ae6160e/pandas-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9803b31f5039b3c3b10cc858c5e40054adb4b29b4d81cb2fd789f4121c8efbcd", size = 10334013, upload-time = "2026-01-21T15:50:34.771Z" }, + { url = "https://files.pythonhosted.org/packages/a5/7b/9254310594e9774906bacdd4e732415e1f86ab7dbb4b377ef9ede58cd8ec/pandas-3.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14c2a4099cd38a1d18ff108168ea417909b2dea3bd1ebff2ccf28ddb6a74d740", size = 9874154, upload-time = "2026-01-21T15:50:36.67Z" }, + { url = "https://files.pythonhosted.org/packages/63/d4/726c5a67a13bc66643e66d2e9ff115cead482a44fc56991d0c4014f15aaf/pandas-3.0.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d257699b9a9960e6125686098d5714ac59d05222bef7a5e6af7a7fd87c650801", size = 10384433, upload-time = "2026-01-21T15:50:39.132Z" }, + { url = "https://files.pythonhosted.org/packages/bf/2e/9211f09bedb04f9832122942de8b051804b31a39cfbad199a819bb88d9f3/pandas-3.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:69780c98f286076dcafca38d8b8eee1676adf220199c0a39f0ecbf976b68151a", size = 10864519, upload-time = "2026-01-21T15:50:41.043Z" }, + { url = "https://files.pythonhosted.org/packages/00/8d/50858522cdc46ac88b9afdc3015e298959a70a08cd21e008a44e9520180c/pandas-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4a66384f017240f3858a4c8a7cf21b0591c3ac885cddb7758a589f0f71e87ebb", size = 11394124, upload-time = "2026-01-21T15:50:43.377Z" }, + { url = "https://files.pythonhosted.org/packages/86/3f/83b2577db02503cd93d8e95b0f794ad9d4be0ba7cb6c8bcdcac964a34a42/pandas-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be8c515c9bc33989d97b89db66ea0cececb0f6e3c2a87fcc8b69443a6923e95f", size = 11920444, upload-time = "2026-01-21T15:50:45.932Z" }, + { url = "https://files.pythonhosted.org/packages/64/2d/4f8a2f192ed12c90a0aab47f5557ece0e56b0370c49de9454a09de7381b2/pandas-3.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:a453aad8c4f4e9f166436994a33884442ea62aa8b27d007311e87521b97246e1", size = 9730970, upload-time = "2026-01-21T15:50:47.962Z" }, + { url = "https://files.pythonhosted.org/packages/d4/64/ff571be435cf1e643ca98d0945d76732c0b4e9c37191a89c8550b105eed1/pandas-3.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:da768007b5a33057f6d9053563d6b74dd6d029c337d93c6d0d22a763a5c2ecc0", size = 9041950, upload-time = "2026-01-21T15:50:50.422Z" }, + { url = "https://files.pythonhosted.org/packages/6f/fa/7f0ac4ca8877c57537aaff2a842f8760e630d8e824b730eb2e859ffe96ca/pandas-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b78d646249b9a2bc191040988c7bb524c92fa8534fb0898a0741d7e6f2ffafa6", size = 10307129, upload-time = "2026-01-21T15:50:52.877Z" }, + { url = "https://files.pythonhosted.org/packages/6f/11/28a221815dcea4c0c9414dfc845e34a84a6a7dabc6da3194498ed5ba4361/pandas-3.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bc9cba7b355cb4162442a88ce495e01cb605f17ac1e27d6596ac963504e0305f", size = 9850201, upload-time = "2026-01-21T15:50:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/ba/da/53bbc8c5363b7e5bd10f9ae59ab250fc7a382ea6ba08e4d06d8694370354/pandas-3.0.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c9a1a149aed3b6c9bf246033ff91e1b02d529546c5d6fb6b74a28fea0cf4c70", size = 10354031, upload-time = "2026-01-21T15:50:57.463Z" }, + { url = "https://files.pythonhosted.org/packages/f7/a3/51e02ebc2a14974170d51e2410dfdab58870ea9bcd37cda15bd553d24dc4/pandas-3.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95683af6175d884ee89471842acfca29172a85031fccdabc35e50c0984470a0e", size = 10861165, upload-time = "2026-01-21T15:50:59.32Z" }, + { url = "https://files.pythonhosted.org/packages/a5/fe/05a51e3cac11d161472b8297bd41723ea98013384dd6d76d115ce3482f9b/pandas-3.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1fbbb5a7288719e36b76b4f18d46ede46e7f916b6c8d9915b756b0a6c3f792b3", size = 11359359, upload-time = "2026-01-21T15:51:02.014Z" }, + { url = "https://files.pythonhosted.org/packages/ee/56/ba620583225f9b85a4d3e69c01df3e3870659cc525f67929b60e9f21dcd1/pandas-3.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8e8b9808590fa364416b49b2a35c1f4cf2785a6c156935879e57f826df22038e", size = 11912907, upload-time = "2026-01-21T15:51:05.175Z" }, + { url = "https://files.pythonhosted.org/packages/c9/8c/c6638d9f67e45e07656b3826405c5cc5f57f6fd07c8b2572ade328c86e22/pandas-3.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:98212a38a709feb90ae658cb6227ea3657c22ba8157d4b8f913cd4c950de5e7e", size = 9732138, upload-time = "2026-01-21T15:51:07.569Z" }, + { url = "https://files.pythonhosted.org/packages/7b/bf/bd1335c3bf1770b6d8fed2799993b11c4971af93bb1b729b9ebbc02ca2ec/pandas-3.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:177d9df10b3f43b70307a149d7ec49a1229a653f907aa60a48f1877d0e6be3be", size = 9033568, upload-time = "2026-01-21T15:51:09.484Z" }, + { url = "https://files.pythonhosted.org/packages/8e/c6/f5e2171914d5e29b9171d495344097d54e3ffe41d2d85d8115baba4dc483/pandas-3.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2713810ad3806767b89ad3b7b69ba153e1c6ff6d9c20f9c2140379b2a98b6c98", size = 10741936, upload-time = "2026-01-21T15:51:11.693Z" }, + { url = "https://files.pythonhosted.org/packages/51/88/9a0164f99510a1acb9f548691f022c756c2314aad0d8330a24616c14c462/pandas-3.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:15d59f885ee5011daf8335dff47dcb8a912a27b4ad7826dc6cbe809fd145d327", size = 10393884, upload-time = "2026-01-21T15:51:14.197Z" }, + { url = "https://files.pythonhosted.org/packages/e0/53/b34d78084d88d8ae2b848591229da8826d1e65aacf00b3abe34023467648/pandas-3.0.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24e6547fb64d2c92665dd2adbfa4e85fa4fd70a9c070e7cfb03b629a0bbab5eb", size = 10310740, upload-time = "2026-01-21T15:51:16.093Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d3/bee792e7c3d6930b74468d990604325701412e55d7aaf47460a22311d1a5/pandas-3.0.0-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:48ee04b90e2505c693d3f8e8f524dab8cb8aaf7ddcab52c92afa535e717c4812", size = 10700014, upload-time = "2026-01-21T15:51:18.818Z" }, + { url = "https://files.pythonhosted.org/packages/55/db/2570bc40fb13aaed1cbc3fbd725c3a60ee162477982123c3adc8971e7ac1/pandas-3.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:66f72fb172959af42a459e27a8d8d2c7e311ff4c1f7db6deb3b643dbc382ae08", size = 11323737, upload-time = "2026-01-21T15:51:20.784Z" }, + { url = "https://files.pythonhosted.org/packages/bc/2e/297ac7f21c8181b62a4cccebad0a70caf679adf3ae5e83cb676194c8acc3/pandas-3.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4a4a400ca18230976724a5066f20878af785f36c6756e498e94c2a5e5d57779c", size = 11771558, upload-time = "2026-01-21T15:51:22.977Z" }, + { url = "https://files.pythonhosted.org/packages/0a/46/e1c6876d71c14332be70239acce9ad435975a80541086e5ffba2f249bcf6/pandas-3.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:940eebffe55528074341a5a36515f3e4c5e25e958ebbc764c9502cfc35ba3faa", size = 10473771, upload-time = "2026-01-21T15:51:25.285Z" }, + { url = "https://files.pythonhosted.org/packages/c0/db/0270ad9d13c344b7a36fa77f5f8344a46501abf413803e885d22864d10bf/pandas-3.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:597c08fb9fef0edf1e4fa2f9828dd27f3d78f9b8c9b4a748d435ffc55732310b", size = 10312075, upload-time = "2026-01-21T15:51:28.5Z" }, + { url = "https://files.pythonhosted.org/packages/09/9f/c176f5e9717f7c91becfe0f55a52ae445d3f7326b4a2cf355978c51b7913/pandas-3.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:447b2d68ac5edcbf94655fe909113a6dba6ef09ad7f9f60c80477825b6c489fe", size = 9900213, upload-time = "2026-01-21T15:51:30.955Z" }, + { url = "https://files.pythonhosted.org/packages/d9/e7/63ad4cc10b257b143e0a5ebb04304ad806b4e1a61c5da25f55896d2ca0f4/pandas-3.0.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:debb95c77ff3ed3ba0d9aa20c3a2f19165cc7956362f9873fce1ba0a53819d70", size = 10428768, upload-time = "2026-01-21T15:51:33.018Z" }, + { url = "https://files.pythonhosted.org/packages/9e/0e/4e4c2d8210f20149fd2248ef3fff26623604922bd564d915f935a06dd63d/pandas-3.0.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fedabf175e7cd82b69b74c30adbaa616de301291a5231138d7242596fc296a8d", size = 10882954, upload-time = "2026-01-21T15:51:35.287Z" }, + { url = "https://files.pythonhosted.org/packages/c6/60/c9de8ac906ba1f4d2250f8a951abe5135b404227a55858a75ad26f84db47/pandas-3.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:412d1a89aab46889f3033a386912efcdfa0f1131c5705ff5b668dda88305e986", size = 11430293, upload-time = "2026-01-21T15:51:37.57Z" }, + { url = "https://files.pythonhosted.org/packages/a1/69/806e6637c70920e5787a6d6896fd707f8134c2c55cd761e7249a97b7dc5a/pandas-3.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e979d22316f9350c516479dd3a92252be2937a9531ed3a26ec324198a99cdd49", size = 11952452, upload-time = "2026-01-21T15:51:39.618Z" }, + { url = "https://files.pythonhosted.org/packages/cb/de/918621e46af55164c400ab0ef389c9d969ab85a43d59ad1207d4ddbe30a5/pandas-3.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:083b11415b9970b6e7888800c43c82e81a06cd6b06755d84804444f0007d6bb7", size = 9851081, upload-time = "2026-01-21T15:51:41.758Z" }, + { url = "https://files.pythonhosted.org/packages/91/a1/3562a18dd0bd8c73344bfa26ff90c53c72f827df119d6d6b1dacc84d13e3/pandas-3.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:5db1e62cb99e739fa78a28047e861b256d17f88463c76b8dafc7c1338086dca8", size = 9174610, upload-time = "2026-01-21T15:51:44.312Z" }, + { url = "https://files.pythonhosted.org/packages/ce/26/430d91257eaf366f1737d7a1c158677caaf6267f338ec74e3a1ec444111c/pandas-3.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:697b8f7d346c68274b1b93a170a70974cdc7d7354429894d5927c1effdcccd73", size = 10761999, upload-time = "2026-01-21T15:51:46.899Z" }, + { url = "https://files.pythonhosted.org/packages/ec/1a/954eb47736c2b7f7fe6a9d56b0cb6987773c00faa3c6451a43db4beb3254/pandas-3.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8cb3120f0d9467ed95e77f67a75e030b67545bcfa08964e349252d674171def2", size = 10410279, upload-time = "2026-01-21T15:51:48.89Z" }, + { url = "https://files.pythonhosted.org/packages/20/fc/b96f3a5a28b250cd1b366eb0108df2501c0f38314a00847242abab71bb3a/pandas-3.0.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:33fd3e6baa72899746b820c31e4b9688c8e1b7864d7aec2de7ab5035c285277a", size = 10330198, upload-time = "2026-01-21T15:51:51.015Z" }, + { url = "https://files.pythonhosted.org/packages/90/b3/d0e2952f103b4fbef1ef22d0c2e314e74fc9064b51cee30890b5e3286ee6/pandas-3.0.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8942e333dc67ceda1095227ad0febb05a3b36535e520154085db632c40ad084", size = 10728513, upload-time = "2026-01-21T15:51:53.387Z" }, + { url = "https://files.pythonhosted.org/packages/76/81/832894f286df828993dc5fd61c63b231b0fb73377e99f6c6c369174cf97e/pandas-3.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:783ac35c4d0fe0effdb0d67161859078618b1b6587a1af15928137525217a721", size = 11345550, upload-time = "2026-01-21T15:51:55.329Z" }, + { url = "https://files.pythonhosted.org/packages/34/a0/ed160a00fb4f37d806406bc0a79a8b62fe67f29d00950f8d16203ff3409b/pandas-3.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:125eb901e233f155b268bbef9abd9afb5819db74f0e677e89a61b246228c71ac", size = 11799386, upload-time = "2026-01-21T15:51:57.457Z" }, + { url = "https://files.pythonhosted.org/packages/36/c8/2ac00d7255252c5e3cf61b35ca92ca25704b0188f7454ca4aec08a33cece/pandas-3.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b86d113b6c109df3ce0ad5abbc259fe86a1bd4adfd4a31a89da42f84f65509bb", size = 10873041, upload-time = "2026-01-21T15:52:00.034Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3f/a80ac00acbc6b35166b42850e98a4f466e2c0d9c64054161ba9620f95680/pandas-3.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:1c39eab3ad38f2d7a249095f0a3d8f8c22cc0f847e98ccf5bbe732b272e2d9fa", size = 9441003, upload-time = "2026-01-21T15:52:02.281Z" }, +] + +[[package]] +name = "plotly" +version = "6.5.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "narwhals" }, + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e3/4f/8a10a9b9f5192cb6fdef62f1d77fa7d834190b2c50c0cd256bd62879212b/plotly-6.5.2.tar.gz", hash = "sha256:7478555be0198562d1435dee4c308268187553cc15516a2f4dd034453699e393", size = 7015695, upload-time = "2026-01-14T21:26:51.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/67/f95b5460f127840310d2187f916cf0023b5875c0717fdf893f71e1325e87/plotly-6.5.2-py3-none-any.whl", hash = "sha256:91757653bd9c550eeea2fa2404dba6b85d1e366d54804c340b2c874e5a7eb4a4", size = 9895973, upload-time = "2026-01-14T21:26:47.135Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload-time = "2025-03-25T02:25:00.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, +] + +[[package]] +name = "scipy" +version = "1.13.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +dependencies = [ + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/00/48c2f661e2816ccf2ecd77982f6605b2950afe60f60a52b4cbbc2504aa8f/scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c", size = 57210720, upload-time = "2024-05-23T03:29:26.079Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/59/41b2529908c002ade869623b87eecff3e11e3ce62e996d0bdcb536984187/scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca", size = 39328076, upload-time = "2024-05-23T03:19:01.687Z" }, + { url = "https://files.pythonhosted.org/packages/d5/33/f1307601f492f764062ce7dd471a14750f3360e33cd0f8c614dae208492c/scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f", size = 30306232, upload-time = "2024-05-23T03:19:09.089Z" }, + { url = "https://files.pythonhosted.org/packages/c0/66/9cd4f501dd5ea03e4a4572ecd874936d0da296bd04d1c45ae1a4a75d9c3a/scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989", size = 33743202, upload-time = "2024-05-23T03:19:15.138Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ba/7255e5dc82a65adbe83771c72f384d99c43063648456796436c9a5585ec3/scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f", size = 38577335, upload-time = "2024-05-23T03:19:21.984Z" }, + { url = "https://files.pythonhosted.org/packages/49/a5/bb9ded8326e9f0cdfdc412eeda1054b914dfea952bda2097d174f8832cc0/scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94", size = 38820728, upload-time = "2024-05-23T03:19:28.225Z" }, + { url = "https://files.pythonhosted.org/packages/12/30/df7a8fcc08f9b4a83f5f27cfaaa7d43f9a2d2ad0b6562cced433e5b04e31/scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54", size = 46210588, upload-time = "2024-05-23T03:19:35.661Z" }, + { url = "https://files.pythonhosted.org/packages/b4/15/4a4bb1b15bbd2cd2786c4f46e76b871b28799b67891f23f455323a0cdcfb/scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9", size = 39333805, upload-time = "2024-05-23T03:19:43.081Z" }, + { url = "https://files.pythonhosted.org/packages/ba/92/42476de1af309c27710004f5cdebc27bec62c204db42e05b23a302cb0c9a/scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326", size = 30317687, upload-time = "2024-05-23T03:19:48.799Z" }, + { url = "https://files.pythonhosted.org/packages/80/ba/8be64fe225360a4beb6840f3cbee494c107c0887f33350d0a47d55400b01/scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299", size = 33694638, upload-time = "2024-05-23T03:19:55.104Z" }, + { url = "https://files.pythonhosted.org/packages/36/07/035d22ff9795129c5a847c64cb43c1fa9188826b59344fee28a3ab02e283/scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa", size = 38569931, upload-time = "2024-05-23T03:20:01.82Z" }, + { url = "https://files.pythonhosted.org/packages/d9/10/f9b43de37e5ed91facc0cfff31d45ed0104f359e4f9a68416cbf4e790241/scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59", size = 38838145, upload-time = "2024-05-23T03:20:09.173Z" }, + { url = "https://files.pythonhosted.org/packages/4a/48/4513a1a5623a23e95f94abd675ed91cfb19989c58e9f6f7d03990f6caf3d/scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b", size = 46196227, upload-time = "2024-05-23T03:20:16.433Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7b/fb6b46fbee30fc7051913068758414f2721003a89dd9a707ad49174e3843/scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1", size = 39357301, upload-time = "2024-05-23T03:20:23.538Z" }, + { url = "https://files.pythonhosted.org/packages/dc/5a/2043a3bde1443d94014aaa41e0b50c39d046dda8360abd3b2a1d3f79907d/scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d", size = 30363348, upload-time = "2024-05-23T03:20:29.885Z" }, + { url = "https://files.pythonhosted.org/packages/e7/cb/26e4a47364bbfdb3b7fb3363be6d8a1c543bcd70a7753ab397350f5f189a/scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627", size = 33406062, upload-time = "2024-05-23T03:20:36.012Z" }, + { url = "https://files.pythonhosted.org/packages/88/ab/6ecdc526d509d33814835447bbbeedbebdec7cca46ef495a61b00a35b4bf/scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884", size = 38218311, upload-time = "2024-05-23T03:20:42.086Z" }, + { url = "https://files.pythonhosted.org/packages/0b/00/9f54554f0f8318100a71515122d8f4f503b1a2c4b4cfab3b4b68c0eb08fa/scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16", size = 38442493, upload-time = "2024-05-23T03:20:48.292Z" }, + { url = "https://files.pythonhosted.org/packages/3e/df/963384e90733e08eac978cd103c34df181d1fec424de383cdc443f418dd4/scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949", size = 45910955, upload-time = "2024-05-23T03:20:55.091Z" }, + { url = "https://files.pythonhosted.org/packages/7f/29/c2ea58c9731b9ecb30b6738113a95d147e83922986b34c685b8f6eefde21/scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5", size = 39352927, upload-time = "2024-05-23T03:21:01.95Z" }, + { url = "https://files.pythonhosted.org/packages/5c/c0/e71b94b20ccf9effb38d7147c0064c08c622309fd487b1b677771a97d18c/scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24", size = 30324538, upload-time = "2024-05-23T03:21:07.634Z" }, + { url = "https://files.pythonhosted.org/packages/6d/0f/aaa55b06d474817cea311e7b10aab2ea1fd5d43bc6a2861ccc9caec9f418/scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004", size = 33732190, upload-time = "2024-05-23T03:21:14.41Z" }, + { url = "https://files.pythonhosted.org/packages/35/f5/d0ad1a96f80962ba65e2ce1de6a1e59edecd1f0a7b55990ed208848012e0/scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d", size = 38612244, upload-time = "2024-05-23T03:21:21.827Z" }, + { url = "https://files.pythonhosted.org/packages/8d/02/1165905f14962174e6569076bcc3315809ae1291ed14de6448cc151eedfd/scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c", size = 38845637, upload-time = "2024-05-23T03:21:28.729Z" }, + { url = "https://files.pythonhosted.org/packages/3e/77/dab54fe647a08ee4253963bcd8f9cf17509c8ca64d6335141422fe2e2114/scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2", size = 46227440, upload-time = "2024-05-23T03:21:35.888Z" }, +] + +[[package]] +name = "scipy" +version = "1.15.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/2f/4966032c5f8cc7e6a60f1b2e0ad686293b9474b65246b0c642e3ef3badd0/scipy-1.15.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a345928c86d535060c9c2b25e71e87c39ab2f22fc96e9636bd74d1dbf9de448c", size = 38702770, upload-time = "2025-05-08T16:04:20.849Z" }, + { url = "https://files.pythonhosted.org/packages/a0/6e/0c3bf90fae0e910c274db43304ebe25a6b391327f3f10b5dcc638c090795/scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ad3432cb0f9ed87477a8d97f03b763fd1d57709f1bbde3c9369b1dff5503b253", size = 30094511, upload-time = "2025-05-08T16:04:27.103Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b1/4deb37252311c1acff7f101f6453f0440794f51b6eacb1aad4459a134081/scipy-1.15.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:aef683a9ae6eb00728a542b796f52a5477b78252edede72b8327a886ab63293f", size = 22368151, upload-time = "2025-05-08T16:04:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/38/7d/f457626e3cd3c29b3a49ca115a304cebb8cc6f31b04678f03b216899d3c6/scipy-1.15.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:1c832e1bd78dea67d5c16f786681b28dd695a8cb1fb90af2e27580d3d0967e92", size = 25121732, upload-time = "2025-05-08T16:04:36.596Z" }, + { url = "https://files.pythonhosted.org/packages/db/0a/92b1de4a7adc7a15dcf5bddc6e191f6f29ee663b30511ce20467ef9b82e4/scipy-1.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:263961f658ce2165bbd7b99fa5135195c3a12d9bef045345016b8b50c315cb82", size = 35547617, upload-time = "2025-05-08T16:04:43.546Z" }, + { url = "https://files.pythonhosted.org/packages/8e/6d/41991e503e51fc1134502694c5fa7a1671501a17ffa12716a4a9151af3df/scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2abc762b0811e09a0d3258abee2d98e0c703eee49464ce0069590846f31d40", size = 37662964, upload-time = "2025-05-08T16:04:49.431Z" }, + { url = "https://files.pythonhosted.org/packages/25/e1/3df8f83cb15f3500478c889be8fb18700813b95e9e087328230b98d547ff/scipy-1.15.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed7284b21a7a0c8f1b6e5977ac05396c0d008b89e05498c8b7e8f4a1423bba0e", size = 37238749, upload-time = "2025-05-08T16:04:55.215Z" }, + { url = "https://files.pythonhosted.org/packages/93/3e/b3257cf446f2a3533ed7809757039016b74cd6f38271de91682aa844cfc5/scipy-1.15.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5380741e53df2c566f4d234b100a484b420af85deb39ea35a1cc1be84ff53a5c", size = 40022383, upload-time = "2025-05-08T16:05:01.914Z" }, + { url = "https://files.pythonhosted.org/packages/d1/84/55bc4881973d3f79b479a5a2e2df61c8c9a04fcb986a213ac9c02cfb659b/scipy-1.15.3-cp310-cp310-win_amd64.whl", hash = "sha256:9d61e97b186a57350f6d6fd72640f9e99d5a4a2b8fbf4b9ee9a841eab327dc13", size = 41259201, upload-time = "2025-05-08T16:05:08.166Z" }, + { url = "https://files.pythonhosted.org/packages/96/ab/5cc9f80f28f6a7dff646c5756e559823614a42b1939d86dd0ed550470210/scipy-1.15.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:993439ce220d25e3696d1b23b233dd010169b62f6456488567e830654ee37a6b", size = 38714255, upload-time = "2025-05-08T16:05:14.596Z" }, + { url = "https://files.pythonhosted.org/packages/4a/4a/66ba30abe5ad1a3ad15bfb0b59d22174012e8056ff448cb1644deccbfed2/scipy-1.15.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:34716e281f181a02341ddeaad584205bd2fd3c242063bd3423d61ac259ca7eba", size = 30111035, upload-time = "2025-05-08T16:05:20.152Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fa/a7e5b95afd80d24313307f03624acc65801846fa75599034f8ceb9e2cbf6/scipy-1.15.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3b0334816afb8b91dab859281b1b9786934392aa3d527cd847e41bb6f45bee65", size = 22384499, upload-time = "2025-05-08T16:05:24.494Z" }, + { url = "https://files.pythonhosted.org/packages/17/99/f3aaddccf3588bb4aea70ba35328c204cadd89517a1612ecfda5b2dd9d7a/scipy-1.15.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6db907c7368e3092e24919b5e31c76998b0ce1684d51a90943cb0ed1b4ffd6c1", size = 25152602, upload-time = "2025-05-08T16:05:29.313Z" }, + { url = "https://files.pythonhosted.org/packages/56/c5/1032cdb565f146109212153339f9cb8b993701e9fe56b1c97699eee12586/scipy-1.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721d6b4ef5dc82ca8968c25b111e307083d7ca9091bc38163fb89243e85e3889", size = 35503415, upload-time = "2025-05-08T16:05:34.699Z" }, + { url = "https://files.pythonhosted.org/packages/bd/37/89f19c8c05505d0601ed5650156e50eb881ae3918786c8fd7262b4ee66d3/scipy-1.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39cb9c62e471b1bb3750066ecc3a3f3052b37751c7c3dfd0fd7e48900ed52982", size = 37652622, upload-time = "2025-05-08T16:05:40.762Z" }, + { url = "https://files.pythonhosted.org/packages/7e/31/be59513aa9695519b18e1851bb9e487de66f2d31f835201f1b42f5d4d475/scipy-1.15.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:795c46999bae845966368a3c013e0e00947932d68e235702b5c3f6ea799aa8c9", size = 37244796, upload-time = "2025-05-08T16:05:48.119Z" }, + { url = "https://files.pythonhosted.org/packages/10/c0/4f5f3eeccc235632aab79b27a74a9130c6c35df358129f7ac8b29f562ac7/scipy-1.15.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:18aaacb735ab38b38db42cb01f6b92a2d0d4b6aabefeb07f02849e47f8fb3594", size = 40047684, upload-time = "2025-05-08T16:05:54.22Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a7/0ddaf514ce8a8714f6ed243a2b391b41dbb65251affe21ee3077ec45ea9a/scipy-1.15.3-cp311-cp311-win_amd64.whl", hash = "sha256:ae48a786a28412d744c62fd7816a4118ef97e5be0bee968ce8f0a2fba7acf3bb", size = 41246504, upload-time = "2025-05-08T16:06:00.437Z" }, + { url = "https://files.pythonhosted.org/packages/37/4b/683aa044c4162e10ed7a7ea30527f2cbd92e6999c10a8ed8edb253836e9c/scipy-1.15.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac6310fdbfb7aa6612408bd2f07295bcbd3fda00d2d702178434751fe48e019", size = 38766735, upload-time = "2025-05-08T16:06:06.471Z" }, + { url = "https://files.pythonhosted.org/packages/7b/7e/f30be3d03de07f25dc0ec926d1681fed5c732d759ac8f51079708c79e680/scipy-1.15.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:185cd3d6d05ca4b44a8f1595af87f9c372bb6acf9c808e99aa3e9aa03bd98cf6", size = 30173284, upload-time = "2025-05-08T16:06:11.686Z" }, + { url = "https://files.pythonhosted.org/packages/07/9c/0ddb0d0abdabe0d181c1793db51f02cd59e4901da6f9f7848e1f96759f0d/scipy-1.15.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:05dc6abcd105e1a29f95eada46d4a3f251743cfd7d3ae8ddb4088047f24ea477", size = 22446958, upload-time = "2025-05-08T16:06:15.97Z" }, + { url = "https://files.pythonhosted.org/packages/af/43/0bce905a965f36c58ff80d8bea33f1f9351b05fad4beaad4eae34699b7a1/scipy-1.15.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:06efcba926324df1696931a57a176c80848ccd67ce6ad020c810736bfd58eb1c", size = 25242454, upload-time = "2025-05-08T16:06:20.394Z" }, + { url = "https://files.pythonhosted.org/packages/56/30/a6f08f84ee5b7b28b4c597aca4cbe545535c39fe911845a96414700b64ba/scipy-1.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05045d8b9bfd807ee1b9f38761993297b10b245f012b11b13b91ba8945f7e45", size = 35210199, upload-time = "2025-05-08T16:06:26.159Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1f/03f52c282437a168ee2c7c14a1a0d0781a9a4a8962d84ac05c06b4c5b555/scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271e3713e645149ea5ea3e97b57fdab61ce61333f97cfae392c28ba786f9bb49", size = 37309455, upload-time = "2025-05-08T16:06:32.778Z" }, + { url = "https://files.pythonhosted.org/packages/89/b1/fbb53137f42c4bf630b1ffdfc2151a62d1d1b903b249f030d2b1c0280af8/scipy-1.15.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cfd56fc1a8e53f6e89ba3a7a7251f7396412d655bca2aa5611c8ec9a6784a1e", size = 36885140, upload-time = "2025-05-08T16:06:39.249Z" }, + { url = "https://files.pythonhosted.org/packages/2e/2e/025e39e339f5090df1ff266d021892694dbb7e63568edcfe43f892fa381d/scipy-1.15.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ff17c0bb1cb32952c09217d8d1eed9b53d1463e5f1dd6052c7857f83127d539", size = 39710549, upload-time = "2025-05-08T16:06:45.729Z" }, + { url = "https://files.pythonhosted.org/packages/e6/eb/3bf6ea8ab7f1503dca3a10df2e4b9c3f6b3316df07f6c0ded94b281c7101/scipy-1.15.3-cp312-cp312-win_amd64.whl", hash = "sha256:52092bc0472cfd17df49ff17e70624345efece4e1a12b23783a1ac59a1b728ed", size = 40966184, upload-time = "2025-05-08T16:06:52.623Z" }, + { url = "https://files.pythonhosted.org/packages/73/18/ec27848c9baae6e0d6573eda6e01a602e5649ee72c27c3a8aad673ebecfd/scipy-1.15.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c620736bcc334782e24d173c0fdbb7590a0a436d2fdf39310a8902505008759", size = 38728256, upload-time = "2025-05-08T16:06:58.696Z" }, + { url = "https://files.pythonhosted.org/packages/74/cd/1aef2184948728b4b6e21267d53b3339762c285a46a274ebb7863c9e4742/scipy-1.15.3-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:7e11270a000969409d37ed399585ee530b9ef6aa99d50c019de4cb01e8e54e62", size = 30109540, upload-time = "2025-05-08T16:07:04.209Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d8/59e452c0a255ec352bd0a833537a3bc1bfb679944c4938ab375b0a6b3a3e/scipy-1.15.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8c9ed3ba2c8a2ce098163a9bdb26f891746d02136995df25227a20e71c396ebb", size = 22383115, upload-time = "2025-05-08T16:07:08.998Z" }, + { url = "https://files.pythonhosted.org/packages/08/f5/456f56bbbfccf696263b47095291040655e3cbaf05d063bdc7c7517f32ac/scipy-1.15.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0bdd905264c0c9cfa74a4772cdb2070171790381a5c4d312c973382fc6eaf730", size = 25163884, upload-time = "2025-05-08T16:07:14.091Z" }, + { url = "https://files.pythonhosted.org/packages/a2/66/a9618b6a435a0f0c0b8a6d0a2efb32d4ec5a85f023c2b79d39512040355b/scipy-1.15.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79167bba085c31f38603e11a267d862957cbb3ce018d8b38f79ac043bc92d825", size = 35174018, upload-time = "2025-05-08T16:07:19.427Z" }, + { url = "https://files.pythonhosted.org/packages/b5/09/c5b6734a50ad4882432b6bb7c02baf757f5b2f256041da5df242e2d7e6b6/scipy-1.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9deabd6d547aee2c9a81dee6cc96c6d7e9a9b1953f74850c179f91fdc729cb7", size = 37269716, upload-time = "2025-05-08T16:07:25.712Z" }, + { url = "https://files.pythonhosted.org/packages/77/0a/eac00ff741f23bcabd352731ed9b8995a0a60ef57f5fd788d611d43d69a1/scipy-1.15.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dde4fc32993071ac0c7dd2d82569e544f0bdaff66269cb475e0f369adad13f11", size = 36872342, upload-time = "2025-05-08T16:07:31.468Z" }, + { url = "https://files.pythonhosted.org/packages/fe/54/4379be86dd74b6ad81551689107360d9a3e18f24d20767a2d5b9253a3f0a/scipy-1.15.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f77f853d584e72e874d87357ad70f44b437331507d1c311457bed8ed2b956126", size = 39670869, upload-time = "2025-05-08T16:07:38.002Z" }, + { url = "https://files.pythonhosted.org/packages/87/2e/892ad2862ba54f084ffe8cc4a22667eaf9c2bcec6d2bff1d15713c6c0703/scipy-1.15.3-cp313-cp313-win_amd64.whl", hash = "sha256:b90ab29d0c37ec9bf55424c064312930ca5f4bde15ee8619ee44e69319aab163", size = 40988851, upload-time = "2025-05-08T16:08:33.671Z" }, + { url = "https://files.pythonhosted.org/packages/1b/e9/7a879c137f7e55b30d75d90ce3eb468197646bc7b443ac036ae3fe109055/scipy-1.15.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3ac07623267feb3ae308487c260ac684b32ea35fd81e12845039952f558047b8", size = 38863011, upload-time = "2025-05-08T16:07:44.039Z" }, + { url = "https://files.pythonhosted.org/packages/51/d1/226a806bbd69f62ce5ef5f3ffadc35286e9fbc802f606a07eb83bf2359de/scipy-1.15.3-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6487aa99c2a3d509a5227d9a5e889ff05830a06b2ce08ec30df6d79db5fcd5c5", size = 30266407, upload-time = "2025-05-08T16:07:49.891Z" }, + { url = "https://files.pythonhosted.org/packages/e5/9b/f32d1d6093ab9eeabbd839b0f7619c62e46cc4b7b6dbf05b6e615bbd4400/scipy-1.15.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:50f9e62461c95d933d5c5ef4a1f2ebf9a2b4e83b0db374cb3f1de104d935922e", size = 22540030, upload-time = "2025-05-08T16:07:54.121Z" }, + { url = "https://files.pythonhosted.org/packages/e7/29/c278f699b095c1a884f29fda126340fcc201461ee8bfea5c8bdb1c7c958b/scipy-1.15.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:14ed70039d182f411ffc74789a16df3835e05dc469b898233a245cdfd7f162cb", size = 25218709, upload-time = "2025-05-08T16:07:58.506Z" }, + { url = "https://files.pythonhosted.org/packages/24/18/9e5374b617aba742a990581373cd6b68a2945d65cc588482749ef2e64467/scipy-1.15.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a769105537aa07a69468a0eefcd121be52006db61cdd8cac8a0e68980bbb723", size = 34809045, upload-time = "2025-05-08T16:08:03.929Z" }, + { url = "https://files.pythonhosted.org/packages/e1/fe/9c4361e7ba2927074360856db6135ef4904d505e9b3afbbcb073c4008328/scipy-1.15.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db984639887e3dffb3928d118145ffe40eff2fa40cb241a306ec57c219ebbbb", size = 36703062, upload-time = "2025-05-08T16:08:09.558Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8e/038ccfe29d272b30086b25a4960f757f97122cb2ec42e62b460d02fe98e9/scipy-1.15.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:40e54d5c7e7ebf1aa596c374c49fa3135f04648a0caabcb66c52884b943f02b4", size = 36393132, upload-time = "2025-05-08T16:08:15.34Z" }, + { url = "https://files.pythonhosted.org/packages/10/7e/5c12285452970be5bdbe8352c619250b97ebf7917d7a9a9e96b8a8140f17/scipy-1.15.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5e721fed53187e71d0ccf382b6bf977644c533e506c4d33c3fb24de89f5c3ed5", size = 38979503, upload-time = "2025-05-08T16:08:21.513Z" }, + { url = "https://files.pythonhosted.org/packages/81/06/0a5e5349474e1cbc5757975b21bd4fad0e72ebf138c5592f191646154e06/scipy-1.15.3-cp313-cp313t-win_amd64.whl", hash = "sha256:76ad1fb5f8752eabf0fa02e4cc0336b4e8f021e2d5f061ed37d6d264db35e3ca", size = 40308097, upload-time = "2025-05-08T16:08:27.627Z" }, +] + +[[package]] +name = "scipy" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", +] +dependencies = [ + { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/56/3e/9cca699f3486ce6bc12ff46dc2031f1ec8eb9ccc9a320fdaf925f1417426/scipy-1.17.0.tar.gz", hash = "sha256:2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e", size = 30396830, upload-time = "2026-01-10T21:34:23.009Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/4b/c89c131aa87cad2b77a54eb0fb94d633a842420fa7e919dc2f922037c3d8/scipy-1.17.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:2abd71643797bd8a106dff97894ff7869eeeb0af0f7a5ce02e4227c6a2e9d6fd", size = 31381316, upload-time = "2026-01-10T21:24:33.42Z" }, + { url = "https://files.pythonhosted.org/packages/5e/5f/a6b38f79a07d74989224d5f11b55267714707582908a5f1ae854cf9a9b84/scipy-1.17.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:ef28d815f4d2686503e5f4f00edc387ae58dfd7a2f42e348bb53359538f01558", size = 27966760, upload-time = "2026-01-10T21:24:38.911Z" }, + { url = "https://files.pythonhosted.org/packages/c1/20/095ad24e031ee8ed3c5975954d816b8e7e2abd731e04f8be573de8740885/scipy-1.17.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:272a9f16d6bb4667e8b50d25d71eddcc2158a214df1b566319298de0939d2ab7", size = 20138701, upload-time = "2026-01-10T21:24:43.249Z" }, + { url = "https://files.pythonhosted.org/packages/89/11/4aad2b3858d0337756f3323f8960755704e530b27eb2a94386c970c32cbe/scipy-1.17.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:7204fddcbec2fe6598f1c5fdf027e9f259106d05202a959a9f1aecf036adc9f6", size = 22480574, upload-time = "2026-01-10T21:24:47.266Z" }, + { url = "https://files.pythonhosted.org/packages/85/bd/f5af70c28c6da2227e510875cadf64879855193a687fb19951f0f44cfd6b/scipy-1.17.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fc02c37a5639ee67d8fb646ffded6d793c06c5622d36b35cfa8fe5ececb8f042", size = 32862414, upload-time = "2026-01-10T21:24:52.566Z" }, + { url = "https://files.pythonhosted.org/packages/ef/df/df1457c4df3826e908879fe3d76bc5b6e60aae45f4ee42539512438cfd5d/scipy-1.17.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dac97a27520d66c12a34fd90a4fe65f43766c18c0d6e1c0a80f114d2260080e4", size = 35112380, upload-time = "2026-01-10T21:24:58.433Z" }, + { url = "https://files.pythonhosted.org/packages/5f/bb/88e2c16bd1dd4de19d80d7c5e238387182993c2fb13b4b8111e3927ad422/scipy-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ebb7446a39b3ae0fe8f416a9a3fdc6fba3f11c634f680f16a239c5187bc487c0", size = 34922676, upload-time = "2026-01-10T21:25:04.287Z" }, + { url = "https://files.pythonhosted.org/packages/02/ba/5120242cc735f71fc002cff0303d536af4405eb265f7c60742851e7ccfe9/scipy-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:474da16199f6af66601a01546144922ce402cb17362e07d82f5a6cf8f963e449", size = 37507599, upload-time = "2026-01-10T21:25:09.851Z" }, + { url = "https://files.pythonhosted.org/packages/52/c8/08629657ac6c0da198487ce8cd3de78e02cfde42b7f34117d56a3fe249dc/scipy-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:255c0da161bd7b32a6c898e7891509e8a9289f0b1c6c7d96142ee0d2b114c2ea", size = 36380284, upload-time = "2026-01-10T21:25:15.632Z" }, + { url = "https://files.pythonhosted.org/packages/6c/4a/465f96d42c6f33ad324a40049dfd63269891db9324aa66c4a1c108c6f994/scipy-1.17.0-cp311-cp311-win_arm64.whl", hash = "sha256:85b0ac3ad17fa3be50abd7e69d583d98792d7edc08367e01445a1e2076005379", size = 24370427, upload-time = "2026-01-10T21:25:20.514Z" }, + { url = "https://files.pythonhosted.org/packages/0b/11/7241a63e73ba5a516f1930ac8d5b44cbbfabd35ac73a2d08ca206df007c4/scipy-1.17.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:0d5018a57c24cb1dd828bcf51d7b10e65986d549f52ef5adb6b4d1ded3e32a57", size = 31364580, upload-time = "2026-01-10T21:25:25.717Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1d/5057f812d4f6adc91a20a2d6f2ebcdb517fdbc87ae3acc5633c9b97c8ba5/scipy-1.17.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:88c22af9e5d5a4f9e027e26772cc7b5922fab8bcc839edb3ae33de404feebd9e", size = 27969012, upload-time = "2026-01-10T21:25:30.921Z" }, + { url = "https://files.pythonhosted.org/packages/e3/21/f6ec556c1e3b6ec4e088da667d9987bb77cc3ab3026511f427dc8451187d/scipy-1.17.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f3cd947f20fe17013d401b64e857c6b2da83cae567adbb75b9dcba865abc66d8", size = 20140691, upload-time = "2026-01-10T21:25:34.802Z" }, + { url = "https://files.pythonhosted.org/packages/7a/fe/5e5ad04784964ba964a96f16c8d4676aa1b51357199014dce58ab7ec5670/scipy-1.17.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e8c0b331c2c1f531eb51f1b4fc9ba709521a712cce58f1aa627bc007421a5306", size = 22463015, upload-time = "2026-01-10T21:25:39.277Z" }, + { url = "https://files.pythonhosted.org/packages/4a/69/7c347e857224fcaf32a34a05183b9d8a7aca25f8f2d10b8a698b8388561a/scipy-1.17.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5194c445d0a1c7a6c1a4a4681b6b7c71baad98ff66d96b949097e7513c9d6742", size = 32724197, upload-time = "2026-01-10T21:25:44.084Z" }, + { url = "https://files.pythonhosted.org/packages/d1/fe/66d73b76d378ba8cc2fe605920c0c75092e3a65ae746e1e767d9d020a75a/scipy-1.17.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9eeb9b5f5997f75507814ed9d298ab23f62cf79f5a3ef90031b1ee2506abdb5b", size = 35009148, upload-time = "2026-01-10T21:25:50.591Z" }, + { url = "https://files.pythonhosted.org/packages/af/07/07dec27d9dc41c18d8c43c69e9e413431d20c53a0339c388bcf72f353c4b/scipy-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:40052543f7bbe921df4408f46003d6f01c6af109b9e2c8a66dd1cf6cf57f7d5d", size = 34798766, upload-time = "2026-01-10T21:25:59.41Z" }, + { url = "https://files.pythonhosted.org/packages/81/61/0470810c8a093cdacd4ba7504b8a218fd49ca070d79eca23a615f5d9a0b0/scipy-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0cf46c8013fec9d3694dc572f0b54100c28405d55d3e2cb15e2895b25057996e", size = 37405953, upload-time = "2026-01-10T21:26:07.75Z" }, + { url = "https://files.pythonhosted.org/packages/92/ce/672ed546f96d5d41ae78c4b9b02006cedd0b3d6f2bf5bb76ea455c320c28/scipy-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:0937a0b0d8d593a198cededd4c439a0ea216a3f36653901ea1f3e4be949056f8", size = 36328121, upload-time = "2026-01-10T21:26:16.509Z" }, + { url = "https://files.pythonhosted.org/packages/9d/21/38165845392cae67b61843a52c6455d47d0cc2a40dd495c89f4362944654/scipy-1.17.0-cp312-cp312-win_arm64.whl", hash = "sha256:f603d8a5518c7426414d1d8f82e253e454471de682ce5e39c29adb0df1efb86b", size = 24314368, upload-time = "2026-01-10T21:26:23.087Z" }, + { url = "https://files.pythonhosted.org/packages/0c/51/3468fdfd49387ddefee1636f5cf6d03ce603b75205bf439bbf0e62069bfd/scipy-1.17.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:65ec32f3d32dfc48c72df4291345dae4f048749bc8d5203ee0a3f347f96c5ce6", size = 31344101, upload-time = "2026-01-10T21:26:30.25Z" }, + { url = "https://files.pythonhosted.org/packages/b2/9a/9406aec58268d437636069419e6977af953d1e246df941d42d3720b7277b/scipy-1.17.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:1f9586a58039d7229ce77b52f8472c972448cded5736eaf102d5658bbac4c269", size = 27950385, upload-time = "2026-01-10T21:26:36.801Z" }, + { url = "https://files.pythonhosted.org/packages/4f/98/e7342709e17afdfd1b26b56ae499ef4939b45a23a00e471dfb5375eea205/scipy-1.17.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9fad7d3578c877d606b1150135c2639e9de9cecd3705caa37b66862977cc3e72", size = 20122115, upload-time = "2026-01-10T21:26:42.107Z" }, + { url = "https://files.pythonhosted.org/packages/fd/0e/9eeeb5357a64fd157cbe0302c213517c541cc16b8486d82de251f3c68ede/scipy-1.17.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:423ca1f6584fc03936972b5f7c06961670dbba9f234e71676a7c7ccf938a0d61", size = 22442402, upload-time = "2026-01-10T21:26:48.029Z" }, + { url = "https://files.pythonhosted.org/packages/c9/10/be13397a0e434f98e0c79552b2b584ae5bb1c8b2be95db421533bbca5369/scipy-1.17.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fe508b5690e9eaaa9467fc047f833af58f1152ae51a0d0aed67aa5801f4dd7d6", size = 32696338, upload-time = "2026-01-10T21:26:55.521Z" }, + { url = "https://files.pythonhosted.org/packages/63/1e/12fbf2a3bb240161651c94bb5cdd0eae5d4e8cc6eaeceb74ab07b12a753d/scipy-1.17.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6680f2dfd4f6182e7d6db161344537da644d1cf85cf293f015c60a17ecf08752", size = 34977201, upload-time = "2026-01-10T21:27:03.501Z" }, + { url = "https://files.pythonhosted.org/packages/19/5b/1a63923e23ccd20bd32156d7dd708af5bbde410daa993aa2500c847ab2d2/scipy-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eec3842ec9ac9de5917899b277428886042a93db0b227ebbe3a333b64ec7643d", size = 34777384, upload-time = "2026-01-10T21:27:11.423Z" }, + { url = "https://files.pythonhosted.org/packages/39/22/b5da95d74edcf81e540e467202a988c50fef41bd2011f46e05f72ba07df6/scipy-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d7425fcafbc09a03731e1bc05581f5fad988e48c6a861f441b7ab729a49a55ea", size = 37379586, upload-time = "2026-01-10T21:27:20.171Z" }, + { url = "https://files.pythonhosted.org/packages/b9/b6/8ac583d6da79e7b9e520579f03007cb006f063642afd6b2eeb16b890bf93/scipy-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:87b411e42b425b84777718cc41516b8a7e0795abfa8e8e1d573bf0ef014f0812", size = 36287211, upload-time = "2026-01-10T21:28:43.122Z" }, + { url = "https://files.pythonhosted.org/packages/55/fb/7db19e0b3e52f882b420417644ec81dd57eeef1bd1705b6f689d8ff93541/scipy-1.17.0-cp313-cp313-win_arm64.whl", hash = "sha256:357ca001c6e37601066092e7c89cca2f1ce74e2a520ca78d063a6d2201101df2", size = 24312646, upload-time = "2026-01-10T21:28:49.893Z" }, + { url = "https://files.pythonhosted.org/packages/20/b6/7feaa252c21cc7aff335c6c55e1b90ab3e3306da3f048109b8b639b94648/scipy-1.17.0-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:ec0827aa4d36cb79ff1b81de898e948a51ac0b9b1c43e4a372c0508c38c0f9a3", size = 31693194, upload-time = "2026-01-10T21:27:27.454Z" }, + { url = "https://files.pythonhosted.org/packages/76/bb/bbb392005abce039fb7e672cb78ac7d158700e826b0515cab6b5b60c26fb/scipy-1.17.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:819fc26862b4b3c73a60d486dbb919202f3d6d98c87cf20c223511429f2d1a97", size = 28365415, upload-time = "2026-01-10T21:27:34.26Z" }, + { url = "https://files.pythonhosted.org/packages/37/da/9d33196ecc99fba16a409c691ed464a3a283ac454a34a13a3a57c0d66f3a/scipy-1.17.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:363ad4ae2853d88ebcde3ae6ec46ccca903ea9835ee8ba543f12f575e7b07e4e", size = 20537232, upload-time = "2026-01-10T21:27:40.306Z" }, + { url = "https://files.pythonhosted.org/packages/56/9d/f4b184f6ddb28e9a5caea36a6f98e8ecd2a524f9127354087ce780885d83/scipy-1.17.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:979c3a0ff8e5ba254d45d59ebd38cde48fce4f10b5125c680c7a4bfe177aab07", size = 22791051, upload-time = "2026-01-10T21:27:46.539Z" }, + { url = "https://files.pythonhosted.org/packages/9b/9d/025cccdd738a72140efc582b1641d0dd4caf2e86c3fb127568dc80444e6e/scipy-1.17.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:130d12926ae34399d157de777472bf82e9061c60cc081372b3118edacafe1d00", size = 32815098, upload-time = "2026-01-10T21:27:54.389Z" }, + { url = "https://files.pythonhosted.org/packages/48/5f/09b879619f8bca15ce392bfc1894bd9c54377e01d1b3f2f3b595a1b4d945/scipy-1.17.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e886000eb4919eae3a44f035e63f0fd8b651234117e8f6f29bad1cd26e7bc45", size = 35031342, upload-time = "2026-01-10T21:28:03.012Z" }, + { url = "https://files.pythonhosted.org/packages/f2/9a/f0f0a9f0aa079d2f106555b984ff0fbb11a837df280f04f71f056ea9c6e4/scipy-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:13c4096ac6bc31d706018f06a49abe0485f96499deb82066b94d19b02f664209", size = 34893199, upload-time = "2026-01-10T21:28:10.832Z" }, + { url = "https://files.pythonhosted.org/packages/90/b8/4f0f5cf0c5ea4d7548424e6533e6b17d164f34a6e2fb2e43ffebb6697b06/scipy-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cacbaddd91fcffde703934897c5cd2c7cb0371fac195d383f4e1f1c5d3f3bd04", size = 37438061, upload-time = "2026-01-10T21:28:19.684Z" }, + { url = "https://files.pythonhosted.org/packages/f9/cc/2bd59140ed3b2fa2882fb15da0a9cb1b5a6443d67cfd0d98d4cec83a57ec/scipy-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:edce1a1cf66298cccdc48a1bdf8fb10a3bf58e8b58d6c3883dd1530e103f87c0", size = 36328593, upload-time = "2026-01-10T21:28:28.007Z" }, + { url = "https://files.pythonhosted.org/packages/13/1b/c87cc44a0d2c7aaf0f003aef2904c3d097b422a96c7e7c07f5efd9073c1b/scipy-1.17.0-cp313-cp313t-win_arm64.whl", hash = "sha256:30509da9dbec1c2ed8f168b8d8aa853bc6723fede1dbc23c7d43a56f5ab72a67", size = 24625083, upload-time = "2026-01-10T21:28:35.188Z" }, + { url = "https://files.pythonhosted.org/packages/1a/2d/51006cd369b8e7879e1c630999a19d1fbf6f8b5ed3e33374f29dc87e53b3/scipy-1.17.0-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:c17514d11b78be8f7e6331b983a65a7f5ca1fd037b95e27b280921fe5606286a", size = 31346803, upload-time = "2026-01-10T21:28:57.24Z" }, + { url = "https://files.pythonhosted.org/packages/d6/2e/2349458c3ce445f53a6c93d4386b1c4c5c0c540917304c01222ff95ff317/scipy-1.17.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:4e00562e519c09da34c31685f6acc3aa384d4d50604db0f245c14e1b4488bfa2", size = 27967182, upload-time = "2026-01-10T21:29:04.107Z" }, + { url = "https://files.pythonhosted.org/packages/5e/7c/df525fbfa77b878d1cfe625249529514dc02f4fd5f45f0f6295676a76528/scipy-1.17.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:f7df7941d71314e60a481e02d5ebcb3f0185b8d799c70d03d8258f6c80f3d467", size = 20139125, upload-time = "2026-01-10T21:29:10.179Z" }, + { url = "https://files.pythonhosted.org/packages/33/11/fcf9d43a7ed1234d31765ec643b0515a85a30b58eddccc5d5a4d12b5f194/scipy-1.17.0-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:aabf057c632798832f071a8dde013c2e26284043934f53b00489f1773b33527e", size = 22443554, upload-time = "2026-01-10T21:29:15.888Z" }, + { url = "https://files.pythonhosted.org/packages/80/5c/ea5d239cda2dd3d31399424967a24d556cf409fbea7b5b21412b0fd0a44f/scipy-1.17.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a38c3337e00be6fd8a95b4ed66b5d988bac4ec888fd922c2ea9fe5fb1603dd67", size = 32757834, upload-time = "2026-01-10T21:29:23.406Z" }, + { url = "https://files.pythonhosted.org/packages/b8/7e/8c917cc573310e5dc91cbeead76f1b600d3fb17cf0969db02c9cf92e3cfa/scipy-1.17.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00fb5f8ec8398ad90215008d8b6009c9db9fa924fd4c7d6be307c6f945f9cd73", size = 34995775, upload-time = "2026-01-10T21:29:31.915Z" }, + { url = "https://files.pythonhosted.org/packages/c5/43/176c0c3c07b3f7df324e7cdd933d3e2c4898ca202b090bd5ba122f9fe270/scipy-1.17.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f2a4942b0f5f7c23c7cd641a0ca1955e2ae83dedcff537e3a0259096635e186b", size = 34841240, upload-time = "2026-01-10T21:29:39.995Z" }, + { url = "https://files.pythonhosted.org/packages/44/8c/d1f5f4b491160592e7f084d997de53a8e896a3ac01cd07e59f43ca222744/scipy-1.17.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:dbf133ced83889583156566d2bdf7a07ff89228fe0c0cb727f777de92092ec6b", size = 37394463, upload-time = "2026-01-10T21:29:48.723Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ec/42a6657f8d2d087e750e9a5dde0b481fd135657f09eaf1cf5688bb23c338/scipy-1.17.0-cp314-cp314-win_amd64.whl", hash = "sha256:3625c631a7acd7cfd929e4e31d2582cf00f42fcf06011f59281271746d77e061", size = 37053015, upload-time = "2026-01-10T21:30:51.418Z" }, + { url = "https://files.pythonhosted.org/packages/27/58/6b89a6afd132787d89a362d443a7bddd511b8f41336a1ae47f9e4f000dc4/scipy-1.17.0-cp314-cp314-win_arm64.whl", hash = "sha256:9244608d27eafe02b20558523ba57f15c689357c85bdcfe920b1828750aa26eb", size = 24951312, upload-time = "2026-01-10T21:30:56.771Z" }, + { url = "https://files.pythonhosted.org/packages/e9/01/f58916b9d9ae0112b86d7c3b10b9e685625ce6e8248df139d0fcb17f7397/scipy-1.17.0-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:2b531f57e09c946f56ad0b4a3b2abee778789097871fc541e267d2eca081cff1", size = 31706502, upload-time = "2026-01-10T21:29:56.326Z" }, + { url = "https://files.pythonhosted.org/packages/59/8e/2912a87f94a7d1f8b38aabc0faf74b82d3b6c9e22be991c49979f0eceed8/scipy-1.17.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:13e861634a2c480bd237deb69333ac79ea1941b94568d4b0efa5db5e263d4fd1", size = 28380854, upload-time = "2026-01-10T21:30:01.554Z" }, + { url = "https://files.pythonhosted.org/packages/bd/1c/874137a52dddab7d5d595c1887089a2125d27d0601fce8c0026a24a92a0b/scipy-1.17.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:eb2651271135154aa24f6481cbae5cc8af1f0dd46e6533fb7b56aa9727b6a232", size = 20552752, upload-time = "2026-01-10T21:30:05.93Z" }, + { url = "https://files.pythonhosted.org/packages/3f/f0/7518d171cb735f6400f4576cf70f756d5b419a07fe1867da34e2c2c9c11b/scipy-1.17.0-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:c5e8647f60679790c2f5c76be17e2e9247dc6b98ad0d3b065861e082c56e078d", size = 22803972, upload-time = "2026-01-10T21:30:10.651Z" }, + { url = "https://files.pythonhosted.org/packages/7c/74/3498563a2c619e8a3ebb4d75457486c249b19b5b04a30600dfd9af06bea5/scipy-1.17.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5fb10d17e649e1446410895639f3385fd2bf4c3c7dfc9bea937bddcbc3d7b9ba", size = 32829770, upload-time = "2026-01-10T21:30:16.359Z" }, + { url = "https://files.pythonhosted.org/packages/48/d1/7b50cedd8c6c9d6f706b4b36fa8544d829c712a75e370f763b318e9638c1/scipy-1.17.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8547e7c57f932e7354a2319fab613981cde910631979f74c9b542bb167a8b9db", size = 35051093, upload-time = "2026-01-10T21:30:22.987Z" }, + { url = "https://files.pythonhosted.org/packages/e2/82/a2d684dfddb87ba1b3ea325df7c3293496ee9accb3a19abe9429bce94755/scipy-1.17.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:33af70d040e8af9d5e7a38b5ed3b772adddd281e3062ff23fec49e49681c38cf", size = 34909905, upload-time = "2026-01-10T21:30:28.704Z" }, + { url = "https://files.pythonhosted.org/packages/ef/5e/e565bd73991d42023eb82bb99e51c5b3d9e2c588ca9d4b3e2cc1d3ca62a6/scipy-1.17.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f9eb55bb97d00f8b7ab95cb64f873eb0bf54d9446264d9f3609130381233483f", size = 37457743, upload-time = "2026-01-10T21:30:34.819Z" }, + { url = "https://files.pythonhosted.org/packages/58/a8/a66a75c3d8f1fb2b83f66007d6455a06a6f6cf5618c3dc35bc9b69dd096e/scipy-1.17.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1ff269abf702f6c7e67a4b7aad981d42871a11b9dd83c58d2d2ea624efbd1088", size = 37098574, upload-time = "2026-01-10T21:30:40.782Z" }, + { url = "https://files.pythonhosted.org/packages/56/a5/df8f46ef7da168f1bc52cd86e09a9de5c6f19cc1da04454d51b7d4f43408/scipy-1.17.0-cp314-cp314t-win_arm64.whl", hash = "sha256:031121914e295d9791319a1875444d55079885bbae5bdc9c5e0f2ee5f09d34ff", size = 25246266, upload-time = "2026-01-10T21:30:45.923Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "tzdata" +version = "2025.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772, upload-time = "2025-12-13T17:45:35.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload-time = "2025-12-13T17:45:33.889Z" }, +] + +[[package]] +name = "visiomode-analysis" +source = { editable = "." } +dependencies = [ + { name = "jinja2" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pandas", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "plotly" }, + { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "scipy", version = "1.17.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, +] + +[package.metadata] +requires-dist = [ + { name = "jinja2" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "plotly" }, + { name = "scipy" }, +] From 53cac2bb9a3ad7ae636451491af1f11023bbb3f2 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 27 Jan 2026 16:16:48 +0000 Subject: [PATCH 02/64] add click --- pyproject.toml | 1 + src/visiomode_analysis/__init__.py | 0 uv.lock | 48 ++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 src/visiomode_analysis/__init__.py diff --git a/pyproject.toml b/pyproject.toml index 5b33574..8392946 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,7 @@ classifiers = [ "Programming Language :: Python :: Implementation :: PyPy", ] dependencies = [ + "Click", "pandas", "numpy", "scipy", diff --git a/src/visiomode_analysis/__init__.py b/src/visiomode_analysis/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/uv.lock b/uv.lock index 4dc9a16..e315145 100644 --- a/uv.lock +++ b/uv.lock @@ -12,6 +12,51 @@ resolution-markers = [ "python_full_version < '3.10'", ] +[[package]] +name = "click" +version = "8.1.8" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload-time = "2024-12-21T18:38:44.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188, upload-time = "2024-12-21T18:38:41.666Z" }, +] + +[[package]] +name = "click" +version = "8.3.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'", + "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + [[package]] name = "jinja2" version = "3.1.6" @@ -718,6 +763,8 @@ wheels = [ name = "visiomode-analysis" source = { editable = "." } dependencies = [ + { name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "click", version = "8.3.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "jinja2" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, @@ -732,6 +779,7 @@ dependencies = [ [package.metadata] requires-dist = [ + { name = "click" }, { name = "jinja2" }, { name = "numpy" }, { name = "pandas" }, From bed98ea6102afbd05d99fab5874dd528c615e380 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 27 Jan 2026 16:46:19 +0000 Subject: [PATCH 03/64] add cli skeleton --- src/visiomode_analysis/__init__.py | 37 ++++++++++++++++++++++ src/visiomode_analysis/group/__init__.py | 27 ++++++++++++++++ src/visiomode_analysis/session/__init__.py | 27 ++++++++++++++++ src/visiomode_analysis/subject/__init__.py | 27 ++++++++++++++++ 4 files changed, 118 insertions(+) create mode 100644 src/visiomode_analysis/group/__init__.py create mode 100644 src/visiomode_analysis/session/__init__.py create mode 100644 src/visiomode_analysis/subject/__init__.py diff --git a/src/visiomode_analysis/__init__.py b/src/visiomode_analysis/__init__.py index e69de29..92268dd 100644 --- a/src/visiomode_analysis/__init__.py +++ b/src/visiomode_analysis/__init__.py @@ -0,0 +1,37 @@ +# Copyright (c) 2026 Constantinos Eleftheriou . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of this +# software and associated documentation files (the "Software"), to deal in the +# Software without restriction, including without limitation the rights to use, copy, +# modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +# and to permit persons to whom the Software is furnished to do so, subject to the +# following conditions: +# +# The above copyright notice and this permission notice shall be included in all copies +# or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +# IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + + +import click + +from visiomode_analysis import session, subject, group +from visiomode_analysis.__about__ import __version__ + + +@click.group() +@click.version_option(__version__) +def cli(): + """Visiomode data processing CLI.""" + + +cli.add_command(session.session_cmd) +cli.add_command(subject.subject_cmd) +cli.add_command(group.group_cmd) diff --git a/src/visiomode_analysis/group/__init__.py b/src/visiomode_analysis/group/__init__.py new file mode 100644 index 0000000..39f79bb --- /dev/null +++ b/src/visiomode_analysis/group/__init__.py @@ -0,0 +1,27 @@ +# Copyright (c) 2026 Constantinos Eleftheriou . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of this +# software and associated documentation files (the "Software"), to deal in the +# Software without restriction, including without limitation the rights to use, copy, +# modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +# and to permit persons to whom the Software is furnished to do so, subject to the +# following conditions: +# +# The above copyright notice and this permission notice shall be included in all copies +# or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +# IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + + +import click + + +@click.command("group") +def group_cmd(): ... diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py new file mode 100644 index 0000000..c2977bb --- /dev/null +++ b/src/visiomode_analysis/session/__init__.py @@ -0,0 +1,27 @@ +# Copyright (c) 2026 Constantinos Eleftheriou . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of this +# software and associated documentation files (the "Software"), to deal in the +# Software without restriction, including without limitation the rights to use, copy, +# modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +# and to permit persons to whom the Software is furnished to do so, subject to the +# following conditions: +# +# The above copyright notice and this permission notice shall be included in all copies +# or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +# IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + + +import click + + +@click.command("session") +def session_cmd(): ... diff --git a/src/visiomode_analysis/subject/__init__.py b/src/visiomode_analysis/subject/__init__.py new file mode 100644 index 0000000..dca65ce --- /dev/null +++ b/src/visiomode_analysis/subject/__init__.py @@ -0,0 +1,27 @@ +# Copyright (c) 2026 Constantinos Eleftheriou . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of this +# software and associated documentation files (the "Software"), to deal in the +# Software without restriction, including without limitation the rights to use, copy, +# modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +# and to permit persons to whom the Software is furnished to do so, subject to the +# following conditions: +# +# The above copyright notice and this permission notice shall be included in all copies +# or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +# IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + + +import click + + +@click.command("subject") +def subject_cmd(): ... From 14dcdf43276f1c532f305581346486722f59e16c Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 28 Jan 2026 16:14:25 +0000 Subject: [PATCH 04/64] add summarise command, session_cmd wrapper --- src/visiomode_analysis/session/__init__.py | 85 +++++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index c2977bb..bf8984a 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -20,8 +20,91 @@ # SOFTWARE. +import os +import json import click +import datetime +import pandas as pd @click.command("session") -def session_cmd(): ... +@click.argument( + "path", + type=click.Path(exists=True, dir_okay=False), +) +@click.option( + "-o", + "--output-dir", + type=click.Path(dir_okay=True), + default=".", + help="Output directory for report and trials files.", +) +def session_cmd(**kwargs): + """Generate a session report and extract trials from a Visiomode JSON file.""" + out_dir = summarise(**kwargs) + click.echo(f"Files saved under {out_dir}") + + +def summarise(path: str, output_dir: str = ".") -> str: + """Generate a session summary report and trials file from a raw Visiomode JSON. + + Args: + path (str): Path to Visiomode JSON file. + output_dir (str, optional): Output directory for report and trials files. Defaults to ".". + + Returns: + str: Returns directory under which files were saved + """ + extract_trials(path, to_csv=True, output_dir=output_dir) + generate_report(path, output_dir=output_dir) + + return output_dir + + +def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd.DataFrame: + """Parse a Visiomode JSON file and return a trials dataframe. Optionally save to CSV. + + Args: + path (str): Path to Visiomode JSON file. + to_csv (bool, optional): Save trials dataframe as a CSV. If True, indicate which directory to save in via `output_dir`. Defaults to False. + output_dir (str, optional): Output directory for trials CSV file. Only used if `to_csv` is True. Defaults to current directory. + + Returns: + pd.DataFrame: Session trials dataframe, where each row is a trial. + """ + animal_id = path.split("/")[-1].split("_")[0].strip("sub-") + experiment = path.split("/")[-1].split("_")[1].replace("exp-", "") + + session_date = datetime.datetime.strptime(path.split(os.sep)[-1].split("_")[2].strip("ses-")[:8], "%Y%m%d") + interaction = path.split(os.sep)[-1].split("_")[-1].replace("behaviour-", "").replace(".json", "") + trials = [] + protocol = None + with open(f, "r") as fp: + session_data = json.load(fp) + protocol = session_data["protocol"] + trials = session_data["trials"] + session = [ + { + "animal_id": animal_id, + "session_date": session_date, + "protocol": protocol, + "interaction": interaction, + "experiment": experiment, + **trial, + } + for trial in trials + ] + + df = pd.DataFrame(session) + + if to_csv: + out_path = ( + f"{output_dir}{os.sep}{animal_id}_{experiment}_{str(session_date)}_behaviour-{interaction}_trials.csv" + ) + df.to_csv(out_path) + + return df + + +def generate_report(path: str, output_dir: str = ".") -> str: + return "" From d3bbb0d9ea70e662b0c123bd70a7df3659d54e1b Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 28 Jan 2026 18:06:15 +0000 Subject: [PATCH 05/64] add html templates, add metadata getter function --- src/visiomode_analysis/reports/__init__.py | 0 .../reports/templates/base.html | 290 ++++++++++++++++++ .../reports/templates/session.html | 62 ++++ src/visiomode_analysis/session/__init__.py | 144 ++++++++- 4 files changed, 479 insertions(+), 17 deletions(-) create mode 100644 src/visiomode_analysis/reports/__init__.py create mode 100644 src/visiomode_analysis/reports/templates/base.html create mode 100644 src/visiomode_analysis/reports/templates/session.html diff --git a/src/visiomode_analysis/reports/__init__.py b/src/visiomode_analysis/reports/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/visiomode_analysis/reports/templates/base.html b/src/visiomode_analysis/reports/templates/base.html new file mode 100644 index 0000000..4ede349 --- /dev/null +++ b/src/visiomode_analysis/reports/templates/base.html @@ -0,0 +1,290 @@ + + + + + + + + + Visiomode Report + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+ {% block content %}{% endblock %} +
+
+
+
+ + + + {% block scripts %}{% endblock %} + + + \ No newline at end of file diff --git a/src/visiomode_analysis/reports/templates/session.html b/src/visiomode_analysis/reports/templates/session.html new file mode 100644 index 0000000..2f8922b --- /dev/null +++ b/src/visiomode_analysis/reports/templates/session.html @@ -0,0 +1,62 @@ +{% extends "base.html" %} + +{% block toc %} + +{% endblock %} + + +{% block content %} +
+

Visiomode Session Report

+

{{ session_id }}

+
+ + +
+

Session metadata

+ +
+
+ Subject ID: {{ subject_id or "Unknown" }} +
+
+ Session date: {{ session_date or "Unknown" }} +
+
+ Experiment ID: {{ experiment_id or "Unknown" }} +
+
+
+
+ Session duration: {{ duration or "Unknown" }} +
+
+ Number of trials: {{ trials_num or "Unknown" }} +
+
+ File size: {{ '%0.2f'| format(filesize|float) or "Unknown" }} MB +
+
+
+ +
+

Timeseries integrity

+ +
+
Timestamp series
+ {{ fig_integrity_timestamps | safe }} +
+ +
+
Timedelta series
+ {{ fig_integrity_timestamp_jumps | safe }} +
+
+ + +{% endblock %} \ No newline at end of file diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index bf8984a..18f4633 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -25,6 +25,18 @@ import click import datetime import pandas as pd +import numpy as np + +from pathlib import Path +from jinja2 import Environment +from jinja2 import PackageLoader +from jinja2 import select_autoescape + + +SESSION_REPORT_TEMPLATE = "session.html" + + +env = Environment(loader=PackageLoader("visiomode_analysis.report", "templates"), autoescape=select_autoescape()) @click.command("session") @@ -61,6 +73,30 @@ def summarise(path: str, output_dir: str = ".") -> str: return output_dir +def get_metadata(path: str) -> dict: + animal_id = path.split(os.sep)[-1].split("_")[0].strip("sub-") + experiment = path.split(os.sep)[-1].split("_")[1].replace("exp-", "") + + session_date = datetime.datetime.strptime(path.split(os.sep)[-1].split("_")[2].strip("ses-")[:8], "%Y%m%d") + interaction = path.split(os.sep)[-1].split("_")[-1].replace("behaviour-", "").replace(".json", "") + + with open(path, "r") as fp: + session_data = json.load(fp) + protocol = session_data.get("protocol", "unknown") + version = session_data.get("version", "unknown") + duration = session_data.get("duration", "unknown") + response_device = session_data.get("spec", {}).get("response_device", "unknown") + + return { + "animal_id": animal_id, + "experiment": experiment, + "session_date": session_date, + "interaction": interaction, + "protocol": protocol, + "version": version, + } + + def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd.DataFrame: """Parse a Visiomode JSON file and return a trials dataframe. Optionally save to CSV. @@ -72,24 +108,20 @@ def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd Returns: pd.DataFrame: Session trials dataframe, where each row is a trial. """ - animal_id = path.split("/")[-1].split("_")[0].strip("sub-") - experiment = path.split("/")[-1].split("_")[1].replace("exp-", "") + metadata = get_metadata(path) - session_date = datetime.datetime.strptime(path.split(os.sep)[-1].split("_")[2].strip("ses-")[:8], "%Y%m%d") - interaction = path.split(os.sep)[-1].split("_")[-1].replace("behaviour-", "").replace(".json", "") trials = [] - protocol = None - with open(f, "r") as fp: + with open(path, "r") as fp: session_data = json.load(fp) - protocol = session_data["protocol"] - trials = session_data["trials"] + trials = _flatten_trials(session_data) + session = [ { - "animal_id": animal_id, - "session_date": session_date, - "protocol": protocol, - "interaction": interaction, - "experiment": experiment, + "animal_id": metadata.get("animal_id"), + "session_date": metadata.get("session_date"), + "protocol": metadata.get("protocol"), + "interaction": metadata.get("interaction"), + "experiment": metadata.get("experiment"), **trial, } for trial in trials @@ -97,14 +129,92 @@ def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd df = pd.DataFrame(session) + # Convert legacy outcomes if they're still about + df = df.replace({"hit": "correct", "false_alarm": "incorrect", "miss": "no_response"}) + if to_csv: - out_path = ( - f"{output_dir}{os.sep}{animal_id}_{experiment}_{str(session_date)}_behaviour-{interaction}_trials.csv" - ) + out_path = f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date'))}_behaviour-{metadata.get('interaction')}_trials.csv" df.to_csv(out_path) return df def generate_report(path: str, output_dir: str = ".") -> str: - return "" + template = env.get_template(SESSION_REPORT_TEMPLATE) + + template_identifiers = { + "subject_id": ..., + "session_date": ..., + "experiment_id": ..., + "duration": ..., + "trials_num": ..., + "protocol": ..., + "response_device": ..., + "reward_profile": ..., + "iti": ..., + "si": ..., + "corrections_enabled": ..., + "stimuli": ..., + } + + out_path = output_dir / Path(path.split("/")[-1].replace(".h5", "_report.html")) + out_path.write_text(template.render(template_identifiers), encoding="utf-8") + return str(out_path) + + +def _flatten_trials(session): + session_start_time = datetime.datetime.fromisoformat(session["timestamp"]) + + for trial in session.get("trials"): + start_time = (datetime.datetime.fromisoformat(trial["timestamp"]) - session_start_time).total_seconds() + + stimulus_duration = float((session.get("spec").get("stimulus_duration") or -1) / 1000) + + stop_time = start_time + trial["iti"] + stimulus_duration + if trial["response"].get("timestamp"): + stop_time = ( + datetime.datetime.fromisoformat(trial["response"]["timestamp"]) - session_start_time + ).total_seconds() + + response = trial["response"].get("name") + response_time = trial["response_time"] + + pos_x = trial["response"].get("pos_x", 0) + pos_y = trial["response"].get("pos_y", 0) + dist_x = trial["response"].get("dist_x", 0) + dist_y = trial["response"].get("dist_y", 0) + + sdt_type = trial.get("sdt_type", "unavailable") + + stimulus = {} + if trial.get("stimulus"): + if trial.get("stimulus") == "None": + stimulus = {} + elif trial.get("stimulus").get("common_name"): + # handle single stimulus on screen tasks + stimulus = {f"stim_{key}": value for key, value in trial.get("stimulus").items()} + elif trial.get("stimulus").get("target"): + # 2AFC / nAFC + target_stim = {f"target_{key}": value for key, value in trial.get("stimulus").get("target").items()} + distractor_stim = { + f"distractor_{key}": value for key, value in trial.get("stimulus").get("distractor").items() + } + stimulus = {**target_stim, **distractor_stim} + + cue_onset = start_time + trial["iti"] if stimulus else "NA" + + yield { + "start_time": start_time, + "stop_time": stop_time, + "cue_onset": cue_onset, + "response": response, + "response_time": response_time, + "outcome": trial["outcome"], + "correction": trial["correction"], + "pos_x": pos_x, + "pos_y": pos_y, + "dist_x": dist_x, + "dist_y": dist_y, + "sdt_type": sdt_type, + **stimulus, + } From 92f7dc5462471d8b3151c3ab63e070ff02a1ce33 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 2 Feb 2026 17:36:55 +0000 Subject: [PATCH 06/64] add sdt type determinant for old sessions --- src/visiomode_analysis/session/__init__.py | 47 ++++++++++++++++++++-- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 18f4633..238d300 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -35,6 +35,11 @@ SESSION_REPORT_TEMPLATE = "session.html" +HIT = "hit" +MISS = "miss" +FALSE_ALARM = "false_alarm" +CORRECT_REJECTION = "correct_rejection" + env = Environment(loader=PackageLoader("visiomode_analysis.report", "templates"), autoescape=select_autoescape()) @@ -82,10 +87,21 @@ def get_metadata(path: str) -> dict: with open(path, "r") as fp: session_data = json.load(fp) + + session_start_time = session_data.get("timestamp") protocol = session_data.get("protocol", "unknown") version = session_data.get("version", "unknown") duration = session_data.get("duration", "unknown") response_device = session_data.get("spec", {}).get("response_device", "unknown") + reward_profile = session_data.get("spec", {}).get("reward_profile", "unknown") + stimulus_duration = session_data.get("spec", {}).get("stimulus_duration", "unknown") + iti = session_data.get("spec", {}).get("iti", "unknown") + corrections_enabled = session_data.get("spec", {}).get("corrections_enabled", "unknown") + stimuli = { + "target": session_data.get("spec", {}).get("target", None), + "distractor": session_data.get("spec", {}).get("distractor", None), + } + device = session_data.get("device", "unknown") return { "animal_id": animal_id, @@ -94,6 +110,10 @@ def get_metadata(path: str) -> dict: "interaction": interaction, "protocol": protocol, "version": version, + "duration": duration, + "session_start_time": session_start_time, + "response_device": response_device, + "stimuli": stimuli, } @@ -163,12 +183,13 @@ def generate_report(path: str, output_dir: str = ".") -> str: def _flatten_trials(session): - session_start_time = datetime.datetime.fromisoformat(session["timestamp"]) + metadata = get_metadata(session) + session_start_time = datetime.datetime.fromisoformat(metadata.get("session_start_time", "")) for trial in session.get("trials"): start_time = (datetime.datetime.fromisoformat(trial["timestamp"]) - session_start_time).total_seconds() - stimulus_duration = float((session.get("spec").get("stimulus_duration") or -1) / 1000) + stimulus_duration = float((metadata.get("stimulus_duration") or -1) / 1000) stop_time = start_time + trial["iti"] + stimulus_duration if trial["response"].get("timestamp"): @@ -184,8 +205,6 @@ def _flatten_trials(session): dist_x = trial["response"].get("dist_x", 0) dist_y = trial["response"].get("dist_y", 0) - sdt_type = trial.get("sdt_type", "unavailable") - stimulus = {} if trial.get("stimulus"): if trial.get("stimulus") == "None": @@ -200,9 +219,29 @@ def _flatten_trials(session): f"distractor_{key}": value for key, value in trial.get("stimulus").get("distractor").items() } stimulus = {**target_stim, **distractor_stim} + else: + stimulus = { + "target_id": metadata.get("stimuli", {}).get("target"), + "distractor_id": metadata.get("stimuli", {}).get("distractor"), + } cue_onset = start_time + trial["iti"] if stimulus else "NA" + sdt_type = None + if trial.get("sdt_type"): + sdt_type = trial.get("sdt_type") + elif metadata.get("protocol") == "gonogo": + if trial.get("response") and trial.get("outcome") == "correct": + sdt_type = HIT + elif trial.get("response") and trial.get("outcome") == "incorrect": + sdt_type = FALSE_ALARM + elif not trial.get("response") and trial.get("outcome") == "correct": + sdt_type = CORRECT_REJECTION + elif not trial.get("response") and trial.get("outcome") == "incorrect": + sdt_type = MISS + else: + sdt_type = "NA" + yield { "start_time": start_time, "stop_time": stop_time, From a7770b1f1f43cad887af6ed1e80e76c33ca6d78f Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 2 Feb 2026 17:45:24 +0000 Subject: [PATCH 07/64] add metadata fields --- src/visiomode_analysis/session/__init__.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 238d300..5832f2c 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -102,6 +102,7 @@ def get_metadata(path: str) -> dict: "distractor": session_data.get("spec", {}).get("distractor", None), } device = session_data.get("device", "unknown") + notes = session_data.get("notes") return { "animal_id": animal_id, @@ -113,7 +114,13 @@ def get_metadata(path: str) -> dict: "duration": duration, "session_start_time": session_start_time, "response_device": response_device, + "reward_profile": reward_profile, + "stimulus_duration": stimulus_duration, + "iti": iti, + "corrections_enabled": corrections_enabled, + "device": device, "stimuli": stimuli, + "notes": notes, } From 48f1355b073015313535248ffa134cf115665567 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Fri, 6 Feb 2026 14:40:10 +0000 Subject: [PATCH 08/64] refine metadata extraction, stimulus info extraction and sdt extraction if it doesn't exist --- src/visiomode_analysis/session/__init__.py | 64 ++++++++++++++-------- 1 file changed, 42 insertions(+), 22 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 5832f2c..97db67b 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -32,6 +32,8 @@ from jinja2 import PackageLoader from jinja2 import select_autoescape +from collections.abc import Iterator + SESSION_REPORT_TEMPLATE = "session.html" @@ -41,7 +43,7 @@ CORRECT_REJECTION = "correct_rejection" -env = Environment(loader=PackageLoader("visiomode_analysis.report", "templates"), autoescape=select_autoescape()) +env = Environment(loader=PackageLoader("visiomode_analysis.reports", "templates"), autoescape=select_autoescape()) @click.command("session") @@ -79,23 +81,18 @@ def summarise(path: str, output_dir: str = ".") -> str: def get_metadata(path: str) -> dict: - animal_id = path.split(os.sep)[-1].split("_")[0].strip("sub-") - experiment = path.split(os.sep)[-1].split("_")[1].replace("exp-", "") - - session_date = datetime.datetime.strptime(path.split(os.sep)[-1].split("_")[2].strip("ses-")[:8], "%Y%m%d") - interaction = path.split(os.sep)[-1].split("_")[-1].replace("behaviour-", "").replace(".json", "") - with open(path, "r") as fp: session_data = json.load(fp) + # Prefer the JSON for the following session_start_time = session_data.get("timestamp") protocol = session_data.get("protocol", "unknown") version = session_data.get("version", "unknown") duration = session_data.get("duration", "unknown") response_device = session_data.get("spec", {}).get("response_device", "unknown") reward_profile = session_data.get("spec", {}).get("reward_profile", "unknown") - stimulus_duration = session_data.get("spec", {}).get("stimulus_duration", "unknown") - iti = session_data.get("spec", {}).get("iti", "unknown") + stimulus_duration = float(session_data.get("spec", {}).get("stimulus_duration", -1)) + iti = float(session_data.get("spec", {}).get("iti", -1)) corrections_enabled = session_data.get("spec", {}).get("corrections_enabled", "unknown") stimuli = { "target": session_data.get("spec", {}).get("target", None), @@ -104,6 +101,30 @@ def get_metadata(path: str) -> dict: device = session_data.get("device", "unknown") notes = session_data.get("notes") + # Prefer file name for the following, or defer to JSON if mangled + + if "sub-" in path.split(os.sep)[-1]: + animal_id = path.split(os.sep)[-1].split("_")[0].strip("sub-") + else: + animal_id = session_data.get("animal_id", "unknown") + + if "exp-" in path.split(os.sep)[-1]: + experiment = path.split(os.sep)[-1].split("_")[1].replace("exp-", "") + else: + experiment = session_data.get("experiment", "unknown") + + if "ses-" in path.split(os.sep)[-1]: + session_date = datetime.datetime.strptime( + path.split(os.sep)[-1].split("_")[2].strip("ses-")[:8], "%Y%m%d" + ).date() + else: + session_date = datetime.datetime.fromisoformat(session_start_time).date() + + if "behaviour-" in path.split(os.sep)[-1]: + interaction = path.split(os.sep)[-1].split("_")[-1].replace("behaviour-", "").replace(".json", "") + else: + interaction = session_data.get("interaction", "unknown") + return { "animal_id": animal_id, "experiment": experiment, @@ -137,10 +158,10 @@ def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd """ metadata = get_metadata(path) - trials = [] + trials: Iterator[dict] with open(path, "r") as fp: session_data = json.load(fp) - trials = _flatten_trials(session_data) + trials = _flatten_trials(session_data, metadata=metadata) session = [ { @@ -189,30 +210,29 @@ def generate_report(path: str, output_dir: str = ".") -> str: return str(out_path) -def _flatten_trials(session): - metadata = get_metadata(session) +def _flatten_trials(session: dict, metadata: dict) -> Iterator[dict]: session_start_time = datetime.datetime.fromisoformat(metadata.get("session_start_time", "")) - for trial in session.get("trials"): + for trial in session.get("trials", []): start_time = (datetime.datetime.fromisoformat(trial["timestamp"]) - session_start_time).total_seconds() - stimulus_duration = float((metadata.get("stimulus_duration") or -1) / 1000) + stimulus_duration = metadata.get("stimulus_duration", -1) / 1000 stop_time = start_time + trial["iti"] + stimulus_duration - if trial["response"].get("timestamp"): + if trial.get("response") and trial.get("response", {}).get("timestamp"): stop_time = ( datetime.datetime.fromisoformat(trial["response"]["timestamp"]) - session_start_time ).total_seconds() - response = trial["response"].get("name") + response = trial.get("response").get("name") if trial.get("response") else None response_time = trial["response_time"] - pos_x = trial["response"].get("pos_x", 0) - pos_y = trial["response"].get("pos_y", 0) - dist_x = trial["response"].get("dist_x", 0) - dist_y = trial["response"].get("dist_y", 0) + pos_x = trial.get("response").get("pos_x", 0) if trial.get("response") else None + pos_y = trial.get("response").get("pos_y", 0) if trial.get("response") else None + dist_x = trial.get("response").get("dist_x", 0) if trial.get("response") else None + dist_y = trial.get("response").get("dist_y", 0) if trial.get("response") else None - stimulus = {} + stimulus: dict = {} if trial.get("stimulus"): if trial.get("stimulus") == "None": stimulus = {} From e5f97256a2e1e584e1c5eea09af6e7eebac8684d Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Fri, 6 Feb 2026 14:40:24 +0000 Subject: [PATCH 09/64] session analysis api explorer --- exploratory/session-api.ipynb | 416 ++++++++++++++++++++++++++++++++++ 1 file changed, 416 insertions(+) create mode 100644 exploratory/session-api.ipynb diff --git a/exploratory/session-api.ipynb b/exploratory/session-api.ipynb new file mode 100644 index 0000000..eafa12a --- /dev/null +++ b/exploratory/session-api.ipynb @@ -0,0 +1,416 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "85b00c2c", + "metadata": {}, + "outputs": [], + "source": [ + "from visiomode_analysis import session" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "6aa96b71", + "metadata": {}, + "outputs": [], + "source": [ + "path = \"./test_data/example-gonogo-leverpush.json\"\n", + "\n", + "df = session.extract_trials(path)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "772564e1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animal_idsession_dateprotocolinteractionexperimentstart_timestop_timecue_onsetresponseresponse_timeoutcomecorrectionpos_xpos_ydist_xdist_ysdt_typetarget_iddistractor_id
0MM2292022-03-09 12:04:03.108928gonogounknown109hrb21d4.48467913.4846799.484679None-1.000000correctFalseNaNNaNNaNNaNcorrect_rejectionmovinggratingisoluminantgray
1MM2292022-03-09 12:04:03.108928gonogounknown109hrb21d14.99183919.06567519.991839None4.072411precuedFalse400.0240.00.00.0NAmovinggratingisoluminantgray
2MM2292022-03-09 12:04:03.108928gonogounknown109hrb21d19.06717925.19655424.067179None1.128456correctFalse400.0240.00.00.0correctmovinggratingisoluminantgray
3MM2292022-03-09 12:04:03.108928gonogounknown109hrb21d26.70047335.70047331.700473None-1.000000correctFalseNaNNaNNaNNaNcorrect_rejectionmovinggratingisoluminantgray
4MM2292022-03-09 12:04:03.108928gonogounknown109hrb21d37.20694543.88107242.206945None1.670673correctFalse400.0240.00.00.0correctmovinggratingisoluminantgray
............................................................
300MM2292022-03-09 12:04:03.108928gonogounknown109hrb21d1765.8470141774.0558251770.847014None3.207015incorrectTrue400.0240.00.00.0incorrectmovinggratingisoluminantgray
301MM2292022-03-09 12:04:03.108928gonogounknown109hrb21d1774.0574611781.8511671779.057461None2.791260incorrectTrue400.0240.00.00.0incorrectmovinggratingisoluminantgray
302MM2292022-03-09 12:04:03.108928gonogounknown109hrb21d1781.8528391786.3257651786.852839None4.472022precuedTrue400.0240.00.00.0NAmovinggratingisoluminantgray
303MM2292022-03-09 12:04:03.108928gonogounknown109hrb21d1786.3277441795.3277441791.327744None-1.000000correctTrueNaNNaNNaNNaNcorrect_rejectionmovinggratingisoluminantgray
304MM2292022-03-09 12:04:03.108928gonogounknown109hrb21d1796.8319601802.6626951801.831960None0.828844incorrectFalse400.0240.00.00.0incorrectmovinggratingisoluminantgray
\n", + "

305 rows × 19 columns

\n", + "
" + ], + "text/plain": [ + " animal_id session_date protocol interaction experiment \\\n", + "0 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", + "1 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", + "2 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", + "3 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", + "4 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", + ".. ... ... ... ... ... \n", + "300 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", + "301 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", + "302 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", + "303 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", + "304 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", + "\n", + " start_time stop_time cue_onset response response_time outcome \\\n", + "0 4.484679 13.484679 9.484679 None -1.000000 correct \n", + "1 14.991839 19.065675 19.991839 None 4.072411 precued \n", + "2 19.067179 25.196554 24.067179 None 1.128456 correct \n", + "3 26.700473 35.700473 31.700473 None -1.000000 correct \n", + "4 37.206945 43.881072 42.206945 None 1.670673 correct \n", + ".. ... ... ... ... ... ... \n", + "300 1765.847014 1774.055825 1770.847014 None 3.207015 incorrect \n", + "301 1774.057461 1781.851167 1779.057461 None 2.791260 incorrect \n", + "302 1781.852839 1786.325765 1786.852839 None 4.472022 precued \n", + "303 1786.327744 1795.327744 1791.327744 None -1.000000 correct \n", + "304 1796.831960 1802.662695 1801.831960 None 0.828844 incorrect \n", + "\n", + " correction pos_x pos_y dist_x dist_y sdt_type \\\n", + "0 False NaN NaN NaN NaN correct_rejection \n", + "1 False 400.0 240.0 0.0 0.0 NA \n", + "2 False 400.0 240.0 0.0 0.0 correct \n", + "3 False NaN NaN NaN NaN correct_rejection \n", + "4 False 400.0 240.0 0.0 0.0 correct \n", + ".. ... ... ... ... ... ... \n", + "300 True 400.0 240.0 0.0 0.0 incorrect \n", + "301 True 400.0 240.0 0.0 0.0 incorrect \n", + "302 True 400.0 240.0 0.0 0.0 NA \n", + "303 True NaN NaN NaN NaN correct_rejection \n", + "304 False 400.0 240.0 0.0 0.0 incorrect \n", + "\n", + " target_id distractor_id \n", + "0 movinggrating isoluminantgray \n", + "1 movinggrating isoluminantgray \n", + "2 movinggrating isoluminantgray \n", + "3 movinggrating isoluminantgray \n", + "4 movinggrating isoluminantgray \n", + ".. ... ... \n", + "300 movinggrating isoluminantgray \n", + "301 movinggrating isoluminantgray \n", + "302 movinggrating isoluminantgray \n", + "303 movinggrating isoluminantgray \n", + "304 movinggrating isoluminantgray \n", + "\n", + "[305 rows x 19 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fdcc5f6", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.14.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 8365a36997b45604d29624cb7a737bf110d590e4 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Fri, 6 Feb 2026 15:43:50 +0000 Subject: [PATCH 10/64] interaction is now environemnt --- exploratory/session-api.ipynb | 250 +++++++++++++-------- src/visiomode_analysis/session/__init__.py | 60 +++-- 2 files changed, 199 insertions(+), 111 deletions(-) diff --git a/exploratory/session-api.ipynb b/exploratory/session-api.ipynb index eafa12a..91943de 100644 --- a/exploratory/session-api.ipynb +++ b/exploratory/session-api.ipynb @@ -66,22 +66,21 @@ " dist_x\n", " dist_y\n", " sdt_type\n", - " target_id\n", - " distractor_id\n", + " stim_id\n", " \n", " \n", " \n", " \n", " 0\n", " MM229\n", - " 2022-03-09 12:04:03.108928\n", + " 2022-03-09\n", " gonogo\n", " unknown\n", " 109hrb21d\n", " 4.484679\n", " 13.484679\n", " 9.484679\n", - " None\n", + " NaN\n", " -1.000000\n", " correct\n", " False\n", @@ -90,20 +89,19 @@ " NaN\n", " NaN\n", " correct_rejection\n", - " movinggrating\n", - " isoluminantgray\n", + " NaN\n", " \n", " \n", " 1\n", " MM229\n", - " 2022-03-09 12:04:03.108928\n", + " 2022-03-09\n", " gonogo\n", " unknown\n", " 109hrb21d\n", " 14.991839\n", " 19.065675\n", - " 19.991839\n", - " None\n", + " NA\n", + " leverpush\n", " 4.072411\n", " precued\n", " False\n", @@ -112,20 +110,19 @@ " 0.0\n", " 0.0\n", " NA\n", - " movinggrating\n", - " isoluminantgray\n", + " NaN\n", " \n", " \n", " 2\n", " MM229\n", - " 2022-03-09 12:04:03.108928\n", + " 2022-03-09\n", " gonogo\n", " unknown\n", " 109hrb21d\n", " 19.067179\n", " 25.196554\n", " 24.067179\n", - " None\n", + " leverpush\n", " 1.128456\n", " correct\n", " False\n", @@ -134,20 +131,19 @@ " 0.0\n", " 0.0\n", " correct\n", - " movinggrating\n", - " isoluminantgray\n", + " NaN\n", " \n", " \n", " 3\n", " MM229\n", - " 2022-03-09 12:04:03.108928\n", + " 2022-03-09\n", " gonogo\n", " unknown\n", " 109hrb21d\n", " 26.700473\n", " 35.700473\n", " 31.700473\n", - " None\n", + " NaN\n", " -1.000000\n", " correct\n", " False\n", @@ -156,20 +152,19 @@ " NaN\n", " NaN\n", " correct_rejection\n", - " movinggrating\n", - " isoluminantgray\n", + " NaN\n", " \n", " \n", " 4\n", " MM229\n", - " 2022-03-09 12:04:03.108928\n", + " 2022-03-09\n", " gonogo\n", " unknown\n", " 109hrb21d\n", " 37.206945\n", " 43.881072\n", " 42.206945\n", - " None\n", + " leverpush\n", " 1.670673\n", " correct\n", " False\n", @@ -178,8 +173,7 @@ " 0.0\n", " 0.0\n", " correct\n", - " movinggrating\n", - " isoluminantgray\n", + " NaN\n", " \n", " \n", " ...\n", @@ -201,19 +195,18 @@ " ...\n", " ...\n", " ...\n", - " ...\n", " \n", " \n", " 300\n", " MM229\n", - " 2022-03-09 12:04:03.108928\n", + " 2022-03-09\n", " gonogo\n", " unknown\n", " 109hrb21d\n", " 1765.847014\n", " 1774.055825\n", " 1770.847014\n", - " None\n", + " leverpush\n", " 3.207015\n", " incorrect\n", " True\n", @@ -222,20 +215,19 @@ " 0.0\n", " 0.0\n", " incorrect\n", - " movinggrating\n", - " isoluminantgray\n", + " NaN\n", " \n", " \n", " 301\n", " MM229\n", - " 2022-03-09 12:04:03.108928\n", + " 2022-03-09\n", " gonogo\n", " unknown\n", " 109hrb21d\n", " 1774.057461\n", " 1781.851167\n", " 1779.057461\n", - " None\n", + " leverpush\n", " 2.791260\n", " incorrect\n", " True\n", @@ -244,20 +236,19 @@ " 0.0\n", " 0.0\n", " incorrect\n", - " movinggrating\n", - " isoluminantgray\n", + " NaN\n", " \n", " \n", " 302\n", " MM229\n", - " 2022-03-09 12:04:03.108928\n", + " 2022-03-09\n", " gonogo\n", " unknown\n", " 109hrb21d\n", " 1781.852839\n", " 1786.325765\n", - " 1786.852839\n", - " None\n", + " NA\n", + " leverpush\n", " 4.472022\n", " precued\n", " True\n", @@ -266,20 +257,19 @@ " 0.0\n", " 0.0\n", " NA\n", - " movinggrating\n", - " isoluminantgray\n", + " NaN\n", " \n", " \n", " 303\n", " MM229\n", - " 2022-03-09 12:04:03.108928\n", + " 2022-03-09\n", " gonogo\n", " unknown\n", " 109hrb21d\n", " 1786.327744\n", " 1795.327744\n", " 1791.327744\n", - " None\n", + " NaN\n", " -1.000000\n", " correct\n", " True\n", @@ -288,20 +278,19 @@ " NaN\n", " NaN\n", " correct_rejection\n", - " movinggrating\n", - " isoluminantgray\n", + " NaN\n", " \n", " \n", " 304\n", " MM229\n", - " 2022-03-09 12:04:03.108928\n", + " 2022-03-09\n", " gonogo\n", " unknown\n", " 109hrb21d\n", " 1796.831960\n", " 1802.662695\n", - " 1801.831960\n", - " None\n", + " 1801.83196\n", + " leverpush\n", " 0.828844\n", " incorrect\n", " False\n", @@ -310,68 +299,54 @@ " 0.0\n", " 0.0\n", " incorrect\n", - " movinggrating\n", - " isoluminantgray\n", + " NaN\n", " \n", " \n", "\n", - "

305 rows × 19 columns

\n", + "

305 rows × 18 columns

\n", "" ], "text/plain": [ - " animal_id session_date protocol interaction experiment \\\n", - "0 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", - "1 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", - "2 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", - "3 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", - "4 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", - ".. ... ... ... ... ... \n", - "300 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", - "301 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", - "302 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", - "303 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", - "304 MM229 2022-03-09 12:04:03.108928 gonogo unknown 109hrb21d \n", - "\n", - " start_time stop_time cue_onset response response_time outcome \\\n", - "0 4.484679 13.484679 9.484679 None -1.000000 correct \n", - "1 14.991839 19.065675 19.991839 None 4.072411 precued \n", - "2 19.067179 25.196554 24.067179 None 1.128456 correct \n", - "3 26.700473 35.700473 31.700473 None -1.000000 correct \n", - "4 37.206945 43.881072 42.206945 None 1.670673 correct \n", - ".. ... ... ... ... ... ... \n", - "300 1765.847014 1774.055825 1770.847014 None 3.207015 incorrect \n", - "301 1774.057461 1781.851167 1779.057461 None 2.791260 incorrect \n", - "302 1781.852839 1786.325765 1786.852839 None 4.472022 precued \n", - "303 1786.327744 1795.327744 1791.327744 None -1.000000 correct \n", - "304 1796.831960 1802.662695 1801.831960 None 0.828844 incorrect \n", + " animal_id session_date protocol interaction experiment start_time \\\n", + "0 MM229 2022-03-09 gonogo unknown 109hrb21d 4.484679 \n", + "1 MM229 2022-03-09 gonogo unknown 109hrb21d 14.991839 \n", + "2 MM229 2022-03-09 gonogo unknown 109hrb21d 19.067179 \n", + "3 MM229 2022-03-09 gonogo unknown 109hrb21d 26.700473 \n", + "4 MM229 2022-03-09 gonogo unknown 109hrb21d 37.206945 \n", + ".. ... ... ... ... ... ... \n", + "300 MM229 2022-03-09 gonogo unknown 109hrb21d 1765.847014 \n", + "301 MM229 2022-03-09 gonogo unknown 109hrb21d 1774.057461 \n", + "302 MM229 2022-03-09 gonogo unknown 109hrb21d 1781.852839 \n", + "303 MM229 2022-03-09 gonogo unknown 109hrb21d 1786.327744 \n", + "304 MM229 2022-03-09 gonogo unknown 109hrb21d 1796.831960 \n", "\n", - " correction pos_x pos_y dist_x dist_y sdt_type \\\n", - "0 False NaN NaN NaN NaN correct_rejection \n", - "1 False 400.0 240.0 0.0 0.0 NA \n", - "2 False 400.0 240.0 0.0 0.0 correct \n", - "3 False NaN NaN NaN NaN correct_rejection \n", - "4 False 400.0 240.0 0.0 0.0 correct \n", - ".. ... ... ... ... ... ... \n", - "300 True 400.0 240.0 0.0 0.0 incorrect \n", - "301 True 400.0 240.0 0.0 0.0 incorrect \n", - "302 True 400.0 240.0 0.0 0.0 NA \n", - "303 True NaN NaN NaN NaN correct_rejection \n", - "304 False 400.0 240.0 0.0 0.0 incorrect \n", + " stop_time cue_onset response response_time outcome \\\n", + "0 13.484679 9.484679 NaN -1.000000 correct \n", + "1 19.065675 NA leverpush 4.072411 precued \n", + "2 25.196554 24.067179 leverpush 1.128456 correct \n", + "3 35.700473 31.700473 NaN -1.000000 correct \n", + "4 43.881072 42.206945 leverpush 1.670673 correct \n", + ".. ... ... ... ... ... \n", + "300 1774.055825 1770.847014 leverpush 3.207015 incorrect \n", + "301 1781.851167 1779.057461 leverpush 2.791260 incorrect \n", + "302 1786.325765 NA leverpush 4.472022 precued \n", + "303 1795.327744 1791.327744 NaN -1.000000 correct \n", + "304 1802.662695 1801.83196 leverpush 0.828844 incorrect \n", "\n", - " target_id distractor_id \n", - "0 movinggrating isoluminantgray \n", - "1 movinggrating isoluminantgray \n", - "2 movinggrating isoluminantgray \n", - "3 movinggrating isoluminantgray \n", - "4 movinggrating isoluminantgray \n", - ".. ... ... \n", - "300 movinggrating isoluminantgray \n", - "301 movinggrating isoluminantgray \n", - "302 movinggrating isoluminantgray \n", - "303 movinggrating isoluminantgray \n", - "304 movinggrating isoluminantgray \n", + " correction pos_x pos_y dist_x dist_y sdt_type stim_id \n", + "0 False NaN NaN NaN NaN correct_rejection NaN \n", + "1 False 400.0 240.0 0.0 0.0 NA NaN \n", + "2 False 400.0 240.0 0.0 0.0 correct NaN \n", + "3 False NaN NaN NaN NaN correct_rejection NaN \n", + "4 False 400.0 240.0 0.0 0.0 correct NaN \n", + ".. ... ... ... ... ... ... ... \n", + "300 True 400.0 240.0 0.0 0.0 incorrect NaN \n", + "301 True 400.0 240.0 0.0 0.0 incorrect NaN \n", + "302 True 400.0 240.0 0.0 0.0 NA NaN \n", + "303 True NaN NaN NaN NaN correct_rejection NaN \n", + "304 False 400.0 240.0 0.0 0.0 incorrect NaN \n", "\n", - "[305 rows x 19 columns]" + "[305 rows x 18 columns]" ] }, "execution_count": 3, @@ -385,9 +360,88 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "2fdcc5f6", "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'animal_id': 'MM229',\n", + " 'experiment': '109hrb21d',\n", + " 'session_date': datetime.date(2022, 3, 9),\n", + " 'interaction': 'unknown',\n", + " 'protocol': 'gonogo',\n", + " 'version': 'unknown',\n", + " 'duration': 30.0,\n", + " 'session_start_time': '2022-03-09T12:04:03.108928',\n", + " 'response_device': 'leverpush',\n", + " 'reward_profile': 'waterreward',\n", + " 'stimulus_duration': 4000.0,\n", + " 'iti': 5000.0,\n", + " 'corrections_enabled': 'true',\n", + " 'device': 'meso-2',\n", + " 'stimuli': {'target': 'movinggrating', 'distractor': 'isoluminantgray'},\n", + " 'notes': ''}" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "session.get_metadata(path)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "046be0af", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "metadata = json.load(open(path, \"r\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "64029d34", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'stim_id': None,\n", + " 'stim_period': '30',\n", + " 'stim_contrast': '1.0',\n", + " 'stim_freq': '1.0'}" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "{\n", + " \"stim_id\": metadata.get(\"stimuli\", {}).get(\"target\"),\n", + " **{\n", + " f\"stim_{key.replace('t_', '')}\": value\n", + " for key, value in metadata.get(\"spec\", {}).items()\n", + " if key.startswith(\"t_\")\n", + " },\n", + "}\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f7911ef4", + "metadata": {}, "outputs": [], "source": [] } diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 97db67b..c091ce6 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -95,8 +95,18 @@ def get_metadata(path: str) -> dict: iti = float(session_data.get("spec", {}).get("iti", -1)) corrections_enabled = session_data.get("spec", {}).get("corrections_enabled", "unknown") stimuli = { - "target": session_data.get("spec", {}).get("target", None), - "distractor": session_data.get("spec", {}).get("distractor", None), + "target_id": session_data.get("spec", {}).get("target"), + **{ + f"target_{key.replace('t_', '')}": value + for key, value in session_data.get("spec", {}).items() + if key.startswith("t_") + }, + "distractor_id": session_data.get("spec", {}).get("distractor"), + **{ + f"distractor_{key.replace('d_', '')}": value + for key, value in session_data.get("spec", {}).items() + if key.startswith("d_") + }, } device = session_data.get("device", "unknown") notes = session_data.get("notes") @@ -121,15 +131,15 @@ def get_metadata(path: str) -> dict: session_date = datetime.datetime.fromisoformat(session_start_time).date() if "behaviour-" in path.split(os.sep)[-1]: - interaction = path.split(os.sep)[-1].split("_")[-1].replace("behaviour-", "").replace(".json", "") + environment = path.split(os.sep)[-1].split("_")[-1].replace("behaviour-", "").replace(".json", "") else: - interaction = session_data.get("interaction", "unknown") + environment = session_data.get("environment", "unknown") return { "animal_id": animal_id, "experiment": experiment, "session_date": session_date, - "interaction": interaction, + "environment": environment, "protocol": protocol, "version": version, "duration": duration, @@ -168,7 +178,7 @@ def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd "animal_id": metadata.get("animal_id"), "session_date": metadata.get("session_date"), "protocol": metadata.get("protocol"), - "interaction": metadata.get("interaction"), + "environment": metadata.get("environment"), "experiment": metadata.get("experiment"), **trial, } @@ -181,7 +191,7 @@ def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd df = df.replace({"hit": "correct", "false_alarm": "incorrect", "miss": "no_response"}) if to_csv: - out_path = f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date'))}_behaviour-{metadata.get('interaction')}_trials.csv" + out_path = f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date'))}_behaviour-{metadata.get('environment')}_trials.csv" df.to_csv(out_path) return df @@ -224,7 +234,12 @@ def _flatten_trials(session: dict, metadata: dict) -> Iterator[dict]: datetime.datetime.fromisoformat(trial["response"]["timestamp"]) - session_start_time ).total_seconds() - response = trial.get("response").get("name") if trial.get("response") else None + response = trial.get("response").get("name") or "unknown" if trial.get("response") else None + if response == "unknown": + if metadata.get("environment") == "hf": + response = "leverpush" + elif metadata.get("environment") == "freelymoving": + response = "touch" response_time = trial["response_time"] pos_x = trial.get("response").get("pos_x", 0) if trial.get("response") else None @@ -246,11 +261,30 @@ def _flatten_trials(session: dict, metadata: dict) -> Iterator[dict]: f"distractor_{key}": value for key, value in trial.get("stimulus").get("distractor").items() } stimulus = {**target_stim, **distractor_stim} - else: - stimulus = { - "target_id": metadata.get("stimuli", {}).get("target"), - "distractor_id": metadata.get("stimuli", {}).get("distractor"), - } + else: # handle older versions of visiomode + if metadata.get("protocol") == "gonogo" or metadata.get("protocol") == "targetonly": + if (trial.get("response") and trial.get("outcome") == "correct") or ( + not trial.get("response") and trial.get("outcome") == "incorrect" + ): + stimulus = { + **{ + f"stim_{key.replace('target_', '')}": value + for key, value in metadata.get("stimuli", {}).items() + if key.startswith("target_") + }, + } + elif (trial.get("response") and trial.get("outcome") == "incorrect") or ( + not trial.get("response") and trial.get("outcome") == "correct" + ): + stimulus = { + **{ + f"stim_{key.replace('distractor_', '')}": value + for key, value in metadata.get("stimuli", {}).items() + if key.startswith("distractor_") + }, + } + else: # 2AFC + stimulus = metadata.get("stimuli", {}).items() cue_onset = start_time + trial["iti"] if stimulus else "NA" From 3c358ec516f1f42f7bda2bed603ebb9fd18c45b5 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Fri, 6 Feb 2026 16:09:14 +0000 Subject: [PATCH 11/64] unpack items properly --- src/visiomode_analysis/session/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index c091ce6..3610687 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -284,7 +284,7 @@ def _flatten_trials(session: dict, metadata: dict) -> Iterator[dict]: }, } else: # 2AFC - stimulus = metadata.get("stimuli", {}).items() + stimulus = {key: value for key, value in metadata.get("stimuli", {}).items()} cue_onset = start_time + trial["iti"] if stimulus else "NA" From 0bc4deea62719f754cee409315189c0d0fa46f82 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Fri, 6 Feb 2026 17:03:24 +0000 Subject: [PATCH 12/64] rename summary function --- exploratory/session-api.ipynb | 153 ++++++++++++++------- src/visiomode_analysis/session/__init__.py | 4 +- 2 files changed, 105 insertions(+), 52 deletions(-) diff --git a/exploratory/session-api.ipynb b/exploratory/session-api.ipynb index 91943de..42af1cf 100644 --- a/exploratory/session-api.ipynb +++ b/exploratory/session-api.ipynb @@ -52,14 +52,14 @@ " animal_id\n", " session_date\n", " protocol\n", - " interaction\n", + " environment\n", " experiment\n", " start_time\n", " stop_time\n", " cue_onset\n", " response\n", " response_time\n", - " outcome\n", + " ...\n", " correction\n", " pos_x\n", " pos_y\n", @@ -67,6 +67,9 @@ " dist_y\n", " sdt_type\n", " stim_id\n", + " stim_period\n", + " stim_contrast\n", + " stim_freq\n", " \n", " \n", " \n", @@ -82,13 +85,16 @@ " 9.484679\n", " NaN\n", " -1.000000\n", - " correct\n", + " ...\n", " False\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " correct_rejection\n", + " isoluminantgray\n", + " NaN\n", + " NaN\n", " NaN\n", " \n", " \n", @@ -101,9 +107,9 @@ " 14.991839\n", " 19.065675\n", " NA\n", - " leverpush\n", + " unknown\n", " 4.072411\n", - " precued\n", + " ...\n", " False\n", " 400.0\n", " 240.0\n", @@ -111,6 +117,9 @@ " 0.0\n", " NA\n", " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", " 2\n", @@ -122,16 +131,19 @@ " 19.067179\n", " 25.196554\n", " 24.067179\n", - " leverpush\n", + " unknown\n", " 1.128456\n", - " correct\n", + " ...\n", " False\n", " 400.0\n", " 240.0\n", " 0.0\n", " 0.0\n", " correct\n", - " NaN\n", + " movinggrating\n", + " 30\n", + " 1.0\n", + " 1.0\n", " \n", " \n", " 3\n", @@ -145,13 +157,16 @@ " 31.700473\n", " NaN\n", " -1.000000\n", - " correct\n", + " ...\n", " False\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " correct_rejection\n", + " isoluminantgray\n", + " NaN\n", + " NaN\n", " NaN\n", " \n", " \n", @@ -164,16 +179,19 @@ " 37.206945\n", " 43.881072\n", " 42.206945\n", - " leverpush\n", + " unknown\n", " 1.670673\n", - " correct\n", + " ...\n", " False\n", " 400.0\n", " 240.0\n", " 0.0\n", " 0.0\n", " correct\n", - " NaN\n", + " movinggrating\n", + " 30\n", + " 1.0\n", + " 1.0\n", " \n", " \n", " ...\n", @@ -195,6 +213,9 @@ " ...\n", " ...\n", " ...\n", + " ...\n", + " ...\n", + " ...\n", " \n", " \n", " 300\n", @@ -206,15 +227,18 @@ " 1765.847014\n", " 1774.055825\n", " 1770.847014\n", - " leverpush\n", + " unknown\n", " 3.207015\n", - " incorrect\n", + " ...\n", " True\n", " 400.0\n", " 240.0\n", " 0.0\n", " 0.0\n", " incorrect\n", + " isoluminantgray\n", + " NaN\n", + " NaN\n", " NaN\n", " \n", " \n", @@ -227,15 +251,18 @@ " 1774.057461\n", " 1781.851167\n", " 1779.057461\n", - " leverpush\n", + " unknown\n", " 2.791260\n", - " incorrect\n", + " ...\n", " True\n", " 400.0\n", " 240.0\n", " 0.0\n", " 0.0\n", " incorrect\n", + " isoluminantgray\n", + " NaN\n", + " NaN\n", " NaN\n", " \n", " \n", @@ -248,9 +275,9 @@ " 1781.852839\n", " 1786.325765\n", " NA\n", - " leverpush\n", + " unknown\n", " 4.472022\n", - " precued\n", + " ...\n", " True\n", " 400.0\n", " 240.0\n", @@ -258,6 +285,9 @@ " 0.0\n", " NA\n", " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", " 303\n", @@ -271,13 +301,16 @@ " 1791.327744\n", " NaN\n", " -1.000000\n", - " correct\n", + " ...\n", " True\n", " NaN\n", " NaN\n", " NaN\n", " NaN\n", " correct_rejection\n", + " isoluminantgray\n", + " NaN\n", + " NaN\n", " NaN\n", " \n", " \n", @@ -290,24 +323,27 @@ " 1796.831960\n", " 1802.662695\n", " 1801.83196\n", - " leverpush\n", + " unknown\n", " 0.828844\n", - " incorrect\n", + " ...\n", " False\n", " 400.0\n", " 240.0\n", " 0.0\n", " 0.0\n", " incorrect\n", + " isoluminantgray\n", + " NaN\n", + " NaN\n", " NaN\n", " \n", " \n", "\n", - "

305 rows × 18 columns

\n", + "

305 rows × 21 columns

\n", "" ], "text/plain": [ - " animal_id session_date protocol interaction experiment start_time \\\n", + " animal_id session_date protocol environment experiment start_time \\\n", "0 MM229 2022-03-09 gonogo unknown 109hrb21d 4.484679 \n", "1 MM229 2022-03-09 gonogo unknown 109hrb21d 14.991839 \n", "2 MM229 2022-03-09 gonogo unknown 109hrb21d 19.067179 \n", @@ -320,33 +356,46 @@ "303 MM229 2022-03-09 gonogo unknown 109hrb21d 1786.327744 \n", "304 MM229 2022-03-09 gonogo unknown 109hrb21d 1796.831960 \n", "\n", - " stop_time cue_onset response response_time outcome \\\n", - "0 13.484679 9.484679 NaN -1.000000 correct \n", - "1 19.065675 NA leverpush 4.072411 precued \n", - "2 25.196554 24.067179 leverpush 1.128456 correct \n", - "3 35.700473 31.700473 NaN -1.000000 correct \n", - "4 43.881072 42.206945 leverpush 1.670673 correct \n", - ".. ... ... ... ... ... \n", - "300 1774.055825 1770.847014 leverpush 3.207015 incorrect \n", - "301 1781.851167 1779.057461 leverpush 2.791260 incorrect \n", - "302 1786.325765 NA leverpush 4.472022 precued \n", - "303 1795.327744 1791.327744 NaN -1.000000 correct \n", - "304 1802.662695 1801.83196 leverpush 0.828844 incorrect \n", + " stop_time cue_onset response response_time ... correction pos_x \\\n", + "0 13.484679 9.484679 NaN -1.000000 ... False NaN \n", + "1 19.065675 NA unknown 4.072411 ... False 400.0 \n", + "2 25.196554 24.067179 unknown 1.128456 ... False 400.0 \n", + "3 35.700473 31.700473 NaN -1.000000 ... False NaN \n", + "4 43.881072 42.206945 unknown 1.670673 ... False 400.0 \n", + ".. ... ... ... ... ... ... ... \n", + "300 1774.055825 1770.847014 unknown 3.207015 ... True 400.0 \n", + "301 1781.851167 1779.057461 unknown 2.791260 ... True 400.0 \n", + "302 1786.325765 NA unknown 4.472022 ... True 400.0 \n", + "303 1795.327744 1791.327744 NaN -1.000000 ... True NaN \n", + "304 1802.662695 1801.83196 unknown 0.828844 ... False 400.0 \n", + "\n", + " pos_y dist_x dist_y sdt_type stim_id stim_period \\\n", + "0 NaN NaN NaN correct_rejection isoluminantgray NaN \n", + "1 240.0 0.0 0.0 NA NaN NaN \n", + "2 240.0 0.0 0.0 correct movinggrating 30 \n", + "3 NaN NaN NaN correct_rejection isoluminantgray NaN \n", + "4 240.0 0.0 0.0 correct movinggrating 30 \n", + ".. ... ... ... ... ... ... \n", + "300 240.0 0.0 0.0 incorrect isoluminantgray NaN \n", + "301 240.0 0.0 0.0 incorrect isoluminantgray NaN \n", + "302 240.0 0.0 0.0 NA NaN NaN \n", + "303 NaN NaN NaN correct_rejection isoluminantgray NaN \n", + "304 240.0 0.0 0.0 incorrect isoluminantgray NaN \n", "\n", - " correction pos_x pos_y dist_x dist_y sdt_type stim_id \n", - "0 False NaN NaN NaN NaN correct_rejection NaN \n", - "1 False 400.0 240.0 0.0 0.0 NA NaN \n", - "2 False 400.0 240.0 0.0 0.0 correct NaN \n", - "3 False NaN NaN NaN NaN correct_rejection NaN \n", - "4 False 400.0 240.0 0.0 0.0 correct NaN \n", - ".. ... ... ... ... ... ... ... \n", - "300 True 400.0 240.0 0.0 0.0 incorrect NaN \n", - "301 True 400.0 240.0 0.0 0.0 incorrect NaN \n", - "302 True 400.0 240.0 0.0 0.0 NA NaN \n", - "303 True NaN NaN NaN NaN correct_rejection NaN \n", - "304 False 400.0 240.0 0.0 0.0 incorrect NaN \n", + " stim_contrast stim_freq \n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 1.0 1.0 \n", + "3 NaN NaN \n", + "4 1.0 1.0 \n", + ".. ... ... \n", + "300 NaN NaN \n", + "301 NaN NaN \n", + "302 NaN NaN \n", + "303 NaN NaN \n", + "304 NaN NaN \n", "\n", - "[305 rows x 18 columns]" + "[305 rows x 21 columns]" ] }, "execution_count": 3, @@ -370,7 +419,7 @@ "{'animal_id': 'MM229',\n", " 'experiment': '109hrb21d',\n", " 'session_date': datetime.date(2022, 3, 9),\n", - " 'interaction': 'unknown',\n", + " 'environment': 'unknown',\n", " 'protocol': 'gonogo',\n", " 'version': 'unknown',\n", " 'duration': 30.0,\n", @@ -381,7 +430,11 @@ " 'iti': 5000.0,\n", " 'corrections_enabled': 'true',\n", " 'device': 'meso-2',\n", - " 'stimuli': {'target': 'movinggrating', 'distractor': 'isoluminantgray'},\n", + " 'stimuli': {'target_id': 'movinggrating',\n", + " 'target_period': '30',\n", + " 'target_contrast': '1.0',\n", + " 'target_freq': '1.0',\n", + " 'distractor_id': 'isoluminantgray'},\n", " 'notes': ''}" ] }, diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 3610687..5bf7d54 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -60,11 +60,11 @@ ) def session_cmd(**kwargs): """Generate a session report and extract trials from a Visiomode JSON file.""" - out_dir = summarise(**kwargs) + out_dir = create_session_report(**kwargs) click.echo(f"Files saved under {out_dir}") -def summarise(path: str, output_dir: str = ".") -> str: +def create_session_report(path: str, output_dir: str = ".") -> str: """Generate a session summary report and trials file from a raw Visiomode JSON. Args: From e3ad2c9fdfb78b48ce02641f1a37415a4eef8c96 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 10 Feb 2026 14:19:25 +0000 Subject: [PATCH 13/64] refactor metadata calls, summary call --- src/visiomode_analysis/session/__init__.py | 30 +++++++++++++--------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 5bf7d54..e7cb19f 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -60,11 +60,11 @@ ) def session_cmd(**kwargs): """Generate a session report and extract trials from a Visiomode JSON file.""" - out_dir = create_session_report(**kwargs) + out_dir = preprocess_session(**kwargs) click.echo(f"Files saved under {out_dir}") -def create_session_report(path: str, output_dir: str = ".") -> str: +def preprocess_session(path: str, output_dir: str = ".") -> str: """Generate a session summary report and trials file from a raw Visiomode JSON. Args: @@ -197,21 +197,27 @@ def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd return df +def summarise(df: pd.DataFrame) -> dict: + return {} + + def generate_report(path: str, output_dir: str = ".") -> str: template = env.get_template(SESSION_REPORT_TEMPLATE) + metadata = get_metadata(path) + template_identifiers = { - "subject_id": ..., - "session_date": ..., - "experiment_id": ..., - "duration": ..., + "subject_id": metadata.get("animal_id"), + "session_date": str(metadata.get("session_date")), + "experiment_id": metadata.get("experiment_id"), + "duration": metadata.get("duration"), "trials_num": ..., - "protocol": ..., - "response_device": ..., - "reward_profile": ..., - "iti": ..., - "si": ..., - "corrections_enabled": ..., + "protocol": metadata.get("protocol"), + "response_device": metadata.get("response_device"), + "reward_profile": metadata.get("reward_profile"), + "iti": metadata.get("iti"), + "si": metadata.get("si"), + "corrections_enabled": metadata.get("corrections_enabled"), "stimuli": ..., } From e3acef2cf4e9722ef7087def58d5eb5d0caec2f0 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 10 Feb 2026 18:00:49 +0000 Subject: [PATCH 14/64] refactor metrics --- src/visiomode_analysis/session/metrics.py | 229 ++++------------------ 1 file changed, 38 insertions(+), 191 deletions(-) diff --git a/src/visiomode_analysis/session/metrics.py b/src/visiomode_analysis/session/metrics.py index 5dafe1b..06a6764 100644 --- a/src/visiomode_analysis/session/metrics.py +++ b/src/visiomode_analysis/session/metrics.py @@ -1,197 +1,44 @@ -import pandas as pd +import math from scipy.stats import norm -def d_prime(df, session_type): - """Function to calculate d' from a session dataframe. - - Args: - df: Pandas dataframe with session data. - session_type: Go/NoGo or 2AFC - - Returns: - d_prime: Float representing the session d'. - - Example: - dprime = d_prime(df, session_type="gonogo") - """ - # Calculate the hit rate - hits = len( - df[(df.outcome == "correct") & (df.response.notnull()) & (df.correction == False)] - ) - misses = len( - df[(df.outcome == "incorrect") & (df.response.isnull()) & (df.correction == False)] - ) - hit_rate = (hits + 0.5) / (hits + misses + 1.0) - - # Calculate FA rate - false_alarms = len( - df[(df.outcome == "incorrect") & (df.response.notnull()) & (df.correction == False)] - ) - - correct_reject = len( - df[(df.outcome == "correct") & (df.response.isnull()) & (df.correction == False)] - ) - - fa_rate = (false_alarms + 0.5) / (false_alarms + correct_reject + 1) - - # Calculate d' - # TODO: Switch d' calculation if task is 2afc - if session_type == "gonogo": - d_prime = norm.ppf(hit_rate) - norm.ppf(fa_rate) - else: - d_prime = (1/sqrt(2))*(norm.ppf(hit_rate) - norm.ppf(fa_rate)) - - # Return d' +def d_prime(hit_rate: float, fa_rate: float, afc_correction: bool = False) -> float: + if hit_rate == 0 or fa_rate == 0: + raise ValueError("Cannot calculate a d' with hit or false alarm rate of zero.") + + if hit_rate == 1 or fa_rate == 1: + raise ValueError("Cannot calculate a d' with hit or false alarm rate of one.") + + z_H = norm.ppf(hit_rate) + z_FA = norm.ppf(fa_rate) + + d_prime = float(z_H - z_FA) + + if afc_correction: + d_prime = (1 / math.sqrt(2)) * (d_prime) + return d_prime - -def preservation_index(df): - '''Defines a function to calculate the preservation index for a single session - - Args: - df: Pandas dataframe with session data - - Output: - float representing the preservation index for a single session - - Example: - preservation = preservation_index(df)''' - - if df[df.outcome == "incorrect"].outcome.count() == 0: - return 0 - else: - return df[(df.outcome == "incorrect") & (df.correction == True)].outcome.count() / df[df.outcome == "incorrect"].outcome.count() - - -def rt_mean(df, trial_type="all", correction=False, disregard_correction=True): - '''Defines a function to calculate mean reaction time for different trial types. - - Args: - df: Pandas dataframe with session data. - trial_type: all, hits, false_alarms, cued, precued. Default output is total number of trials. - correction: "True" or "False" to specify correction or random trials, respectively. Default is false (i.e. return only random trials) - disregard_correction: Return trial count irrespective of whether they are correction or random trials. This will override the value of 'correction' if True. Default is True. - - Output: - float representing the mean RT for specified trials in a session - - Example: - hit_mean_RT = rt_mean(df, trial_type='hit')''' - - if not disregard_correction: - df = df[df.correction == correction] - - if trial_type == "all": - return df[df.response.notnull()]["response_time"].mean() - if trial_type == "hits": - return df[(df.outcome == "correct") & (df.response.notnull())]["response_time"].mean() - if trial_type == "false_alarms": - return df[(df.outcome == "incorrect") & (df.response.notnull())].mean() - if trial_type == "cued": - return df[(df.outcome != "precued")].mean() - if trial_type == "precued": - return df[(df.outcome == "precued")].mean() - else: - raise ValueError(f"Invalid trial type {trial_type}") - - -def rt_median(df, trial_type="all", correction=False, disregard_correction=True): - '''Defines a function to calculate median reaction time for different trial types. - - Args: - df: Pandas dataframe with session data. - trial_type: all, hits, false_alarms, cued, precued. Default output is total number of trials. - correction: "True" or "False" to specify correction or random trials, respectively. Default is false (i.e. return only random trials) - disregard_correction: Return trial count irrespective of whether they are correction or random trials. This will override the value of 'correction' if True. Default is True. - - Output: - float representing the median reaction time for specified trials in a session - - Example: - hit_median_RT = rt_median(df, trial_type='hit')''' - - if not disregard_correction: - df = df[df.correction == correction] - - if trial_type == "all": - return df[df.response.notnull()]["response_time"].median() - if trial_type == "hits": - return df[(df.outcome == "correct") & (df.response.notnull())]["response_time"].median() - if trial_type == "false_alarms": - return df[(df.outcome == "incorrect") & (df.response.notnull())].median() - if trial_type == "cued": - return df[(df.outcome != "precued")].median() - if trial_type == "precued": - return df[(df.outcome == "precued")].median() - else: - raise ValueError(f"Invalid trial type {trial_type}") -def response_bias(df): - '''Function to calculate response bias for a single session. - - Args: - df: dataframe containing session data. - - Output: - Float representing bias for a single session. - - Example: - bias = response_bias(df)''' - - hits = len( - df[(df.outcome == "correct") & (df.response.notnull()) & (df.correction == False)] - ) - misses = len( - df[(df.outcome == "incorrect") & (df.response.isnull()) & (df.correction == False)] - ) - hit_rate = (hits + 0.5) / (hits + misses + 1.0) - - false_alarms = len( - df[(df.outcome == "incorrect") & (df.response.notnull()) & (df.correction == False)] - ) - - correct_reject = len( - df[(df.outcome == "correct") & (df.response.isnull()) & (df.correction == False)] - ) - - fa_rate = (false_alarms + 0.5) / (false_alarms + correct_reject + 1) - - return (norm.ppf(hit_rate) + norm.ppf(fa_rate))/-2 - - -def trial_count(df, trial_type="all", correction=False, disregard_correction=True): - ''' Defines a function to return the number of trials, with the option of returning the number of trials for a particular trial type - - Args: - df: dataframe containing session data - trial_type: all, hits, misses, false_alarms, correct_rejections, cued, precued. Default output is total number of trials. - correction: "True" or "False" to specify correction or random trials, respectively. Default is False (i.e. return only random trials). - disregard_correction: Return trial count irrespective of whether they were correction trials. This will override the value of `correction` if True. Default is True - - Output: - float representing the number of trials for the specified trial type. - - Example: - no_of_hits = trial_count(df, hits)''' - - if not disregard_correction: - df = df[df.correction == correction] - - if trial_type == "all": - return df.outcome.count() - if trial_type == "hits": - return df[(df.outcome == "correct") & (df.response.notnull())].outcome.count() - if trial_type == "misses": - return df[(df.outcome == "incorrect") & (df.response.isnull())].outcome.count() - if trial_type == "false_alarms": - return df[(df.outcome == "incorrect") & (df.response.notnull())].outcome.count() - if trial_type == "correct_rejections": - return df[(df.outcome == "correct") & df(df.response.isnull())].outcome.count() - if trial_type == "cued": - return df[(df.outcome != "precued")].outcome.count() - if trial_type == "precued": - return df[(df.outcome == "precued")].outcome.count() - else: - raise ValueError(f"Invalid trial type {trial_type}") - + +def bias(hit_rate: float, fa_rate: float) -> float: + if hit_rate == 0 and fa_rate == 0: + raise ValueError("Cannot calculate C with hit and false alarm rates of zero.") + + z_H = norm.ppf(hit_rate) + z_FA = norm.ppf(fa_rate) + + decision_criterion = -(z_H + z_FA) / 2 + + return float(decision_criterion) + + +def perseveration(num_correction_trials: int, num_incorrect: int) -> float: + if num_incorrect == 0: + return 0.0 + + return float(num_correction_trials / num_incorrect) + + +def percentage_correct(num_correct: int, num_cued: int) -> float: + return float((num_correct / num_cued) * 100) From a4e07958514a78af6bd296ea5bfa75e05e4210ff Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 10 Feb 2026 18:00:59 +0000 Subject: [PATCH 15/64] add summary wip --- src/visiomode_analysis/session/__init__.py | 75 +++++++++++++++++++++- 1 file changed, 72 insertions(+), 3 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index e7cb19f..0ec6488 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -34,6 +34,8 @@ from collections.abc import Iterator +from visiomode_analysis.session import metrics + SESSION_REPORT_TEMPLATE = "session.html" @@ -188,7 +190,7 @@ def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd df = pd.DataFrame(session) # Convert legacy outcomes if they're still about - df = df.replace({"hit": "correct", "false_alarm": "incorrect", "miss": "no_response"}) + df.outcome = df.outcome.replace({"hit": "correct", "false_alarm": "incorrect", "miss": "no_response"}) if to_csv: out_path = f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date'))}_behaviour-{metadata.get('environment')}_trials.csv" @@ -197,7 +199,71 @@ def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd return df -def summarise(df: pd.DataFrame) -> dict: +def summarise(path: str) -> dict: + metadata = get_metadata(path) + df = extract_trials(path) + + # Trial counts + precued = len(df[(df.outcome == "precued")]) + + correct = len(df[(df.outcome == "correct") & (df.correction == False)]) # noqa: E712 + correct_wc = len(df[(df.outcome == "correct")]) + incorrect = len(df[(df.outcome == "incorrect") & (df.correction == False)]) # noqa: E712 + incorrect_wc = len(df[(df.outcome == "incorrect")]) + + correction_trials = len(df[(df.outcome == "incorrect") & (df.correction == True)]) # noqa: E712 + + hits = len(df[(df.sdt_type == "hit") & (df.correction == False)]) # noqa: E712 + hits_wc = len(df[(df.sdt_type == "hit")]) + + false_alarms = len(df[(df.sdt_type == "false_alarm") & (df.correction == False)]) # noqa: E712 + false_alarms_wc = len(df[(df.sdt_type == "false_alarm")]) + + correct_rejections = len(df[(df.sdt_type == "correct_rejection") & (df.correction == False)]) # noqa: E712 + correct_rejections_wc = len(df[(df.sdt_type == "correct_rejection")]) + + misses = len(df[(df.sdt_type == "miss") & (df.correction == False)]) # noqa: E712 + misses_wc = len(df[(df.sdt_type == "miss")]) + + cued = hits + misses + false_alarms + correct_rejections + cued_wc = hits_wc + misses_wc + false_alarms_wc + correct_rejections_wc + + total = cued_wc + precued + + # Trial ratios + percentage_correct = metrics.percentage_correct(num_correct=correct, num_cued=cued) + percentage_correct_wc = metrics.percentage_correct(num_correct=correct_wc, num_cued=cued_wc) + + cued_ratio = cued / precued if precued > 0 else 1.0 + correction_ratio = correction_trials / incorrect if incorrect > 0 else 0.0 + + # Signal detection theory metrics + is_2afc = True if metadata.get("protocol", "").contains("afc") else False + + hit_rate = (hits + 0.5) / (hits + misses + 1.0) + hit_rate_wc = (hits_wc + 0.5) / (hits_wc + misses_wc + 1.0) + fa_rate = (false_alarms + 0.5) / (correct_rejections + false_alarms + 1.0) + fa_rate_wc = (false_alarms_wc + 0.5) / (correct_rejections_wc + false_alarms_wc + 1.0) + + d_prime = metrics.d_prime(hit_rate, fa_rate, afc_correction=is_2afc) + d_prime_wc = metrics.d_prime(hit_rate_wc, fa_rate_wc, afc_correction=is_2afc) + + bias = metrics.bias(hit_rate, fa_rate) + bias_wc = metrics.bias(hit_rate_wc, fa_rate_wc) + + # Perseveration + perseveration = metrics.perseveration(num_correction_trials=correction_trials, num_incorrect=incorrect_wc) + + # Reaction time metrics + rt = np.median(df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"]) # noqa: E712 + rt_wc = np.median(df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"]) + + rt_hits = np.median(df[(df.sdt_type == "hit") & (df.correction == False)]["response_time"]) # noqa: E712 + rt_hits_wc = np.median(df[(df.sdt_type == "hit")]["response_time"]) + + rt_false_alarms = np.median(df[(df.sdt_type == "false_alarm") & (df.correction == False)]["response_time"]) # noqa: E712 + rt_false_alarms_wc = np.median(df[(df.sdt_type == "false_alarm")]["response_time"]) + return {} @@ -246,7 +312,10 @@ def _flatten_trials(session: dict, metadata: dict) -> Iterator[dict]: response = "leverpush" elif metadata.get("environment") == "freelymoving": response = "touch" + response_time = trial["response_time"] + # disregard negative response times + response_time = np.nan if response_time < 0 else response_time pos_x = trial.get("response").get("pos_x", 0) if trial.get("response") else None pos_y = trial.get("response").get("pos_y", 0) if trial.get("response") else None @@ -292,7 +361,7 @@ def _flatten_trials(session: dict, metadata: dict) -> Iterator[dict]: else: # 2AFC stimulus = {key: value for key, value in metadata.get("stimuli", {}).items()} - cue_onset = start_time + trial["iti"] if stimulus else "NA" + cue_onset = start_time + trial["iti"] if stimulus else np.nan sdt_type = None if trial.get("sdt_type"): From f86c9078928aa6960e3b7030b9d33e8907ac6523 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 10 Feb 2026 18:01:07 +0000 Subject: [PATCH 16/64] more api exploration --- exploratory/session-api.ipynb | 103 ++++++++++++++++++++++++---------- 1 file changed, 72 insertions(+), 31 deletions(-) diff --git a/exploratory/session-api.ipynb b/exploratory/session-api.ipynb index 42af1cf..8a7c8c2 100644 --- a/exploratory/session-api.ipynb +++ b/exploratory/session-api.ipynb @@ -7,7 +7,8 @@ "metadata": {}, "outputs": [], "source": [ - "from visiomode_analysis import session" + "from visiomode_analysis import session\n", + "from scipy.stats import norm" ] }, { @@ -106,7 +107,7 @@ " 109hrb21d\n", " 14.991839\n", " 19.065675\n", - " NA\n", + " NaN\n", " unknown\n", " 4.072411\n", " ...\n", @@ -139,7 +140,7 @@ " 240.0\n", " 0.0\n", " 0.0\n", - " correct\n", + " hit\n", " movinggrating\n", " 30\n", " 1.0\n", @@ -187,7 +188,7 @@ " 240.0\n", " 0.0\n", " 0.0\n", - " correct\n", + " hit\n", " movinggrating\n", " 30\n", " 1.0\n", @@ -235,7 +236,7 @@ " 240.0\n", " 0.0\n", " 0.0\n", - " incorrect\n", + " false_alarm\n", " isoluminantgray\n", " NaN\n", " NaN\n", @@ -259,7 +260,7 @@ " 240.0\n", " 0.0\n", " 0.0\n", - " incorrect\n", + " false_alarm\n", " isoluminantgray\n", " NaN\n", " NaN\n", @@ -274,7 +275,7 @@ " 109hrb21d\n", " 1781.852839\n", " 1786.325765\n", - " NA\n", + " NaN\n", " unknown\n", " 4.472022\n", " ...\n", @@ -322,7 +323,7 @@ " 109hrb21d\n", " 1796.831960\n", " 1802.662695\n", - " 1801.83196\n", + " 1801.831960\n", " unknown\n", " 0.828844\n", " ...\n", @@ -331,7 +332,7 @@ " 240.0\n", " 0.0\n", " 0.0\n", - " incorrect\n", + " false_alarm\n", " isoluminantgray\n", " NaN\n", " NaN\n", @@ -358,29 +359,29 @@ "\n", " stop_time cue_onset response response_time ... correction pos_x \\\n", "0 13.484679 9.484679 NaN -1.000000 ... False NaN \n", - "1 19.065675 NA unknown 4.072411 ... False 400.0 \n", + "1 19.065675 NaN unknown 4.072411 ... False 400.0 \n", "2 25.196554 24.067179 unknown 1.128456 ... False 400.0 \n", "3 35.700473 31.700473 NaN -1.000000 ... False NaN \n", "4 43.881072 42.206945 unknown 1.670673 ... False 400.0 \n", ".. ... ... ... ... ... ... ... \n", "300 1774.055825 1770.847014 unknown 3.207015 ... True 400.0 \n", "301 1781.851167 1779.057461 unknown 2.791260 ... True 400.0 \n", - "302 1786.325765 NA unknown 4.472022 ... True 400.0 \n", + "302 1786.325765 NaN unknown 4.472022 ... True 400.0 \n", "303 1795.327744 1791.327744 NaN -1.000000 ... True NaN \n", - "304 1802.662695 1801.83196 unknown 0.828844 ... False 400.0 \n", + "304 1802.662695 1801.831960 unknown 0.828844 ... False 400.0 \n", "\n", " pos_y dist_x dist_y sdt_type stim_id stim_period \\\n", "0 NaN NaN NaN correct_rejection isoluminantgray NaN \n", "1 240.0 0.0 0.0 NA NaN NaN \n", - "2 240.0 0.0 0.0 correct movinggrating 30 \n", + "2 240.0 0.0 0.0 hit movinggrating 30 \n", "3 NaN NaN NaN correct_rejection isoluminantgray NaN \n", - "4 240.0 0.0 0.0 correct movinggrating 30 \n", + "4 240.0 0.0 0.0 hit movinggrating 30 \n", ".. ... ... ... ... ... ... \n", - "300 240.0 0.0 0.0 incorrect isoluminantgray NaN \n", - "301 240.0 0.0 0.0 incorrect isoluminantgray NaN \n", + "300 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", + "301 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", "302 240.0 0.0 0.0 NA NaN NaN \n", "303 NaN NaN NaN correct_rejection isoluminantgray NaN \n", - "304 240.0 0.0 0.0 incorrect isoluminantgray NaN \n", + "304 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", "\n", " stim_contrast stim_freq \n", "0 NaN NaN \n", @@ -461,33 +462,23 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 14, "id": "64029d34", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'stim_id': None,\n", - " 'stim_period': '30',\n", - " 'stim_contrast': '1.0',\n", - " 'stim_freq': '1.0'}" + "81" ] }, - "execution_count": 6, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "{\n", - " \"stim_id\": metadata.get(\"stimuli\", {}).get(\"target\"),\n", - " **{\n", - " f\"stim_{key.replace('t_', '')}\": value\n", - " for key, value in metadata.get(\"spec\", {}).items()\n", - " if key.startswith(\"t_\")\n", - " },\n", - "}\n" + "len(df[df.sdt_type == \"false_alarm\"])" ] }, { @@ -497,6 +488,56 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "24ec43f8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(49)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[(df.response.notnull()) & (df.outcome == \"correct\") & (df.correction == False)].outcome.count()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "0c6d04df", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(40)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[(df.response.notnull()) & (df.outcome == \"incorrect\") & (df.correction == False)].outcome.count()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "323606ce", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { From bdc47962b71bb21303ceba6f3e4da7926cdf1d01 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 11 Feb 2026 15:12:25 +0000 Subject: [PATCH 17/64] remove noddy pc calculation from metrics --- src/visiomode_analysis/session/__init__.py | 4 ++-- src/visiomode_analysis/session/metrics.py | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 0ec6488..d132ab8 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -231,8 +231,8 @@ def summarise(path: str) -> dict: total = cued_wc + precued # Trial ratios - percentage_correct = metrics.percentage_correct(num_correct=correct, num_cued=cued) - percentage_correct_wc = metrics.percentage_correct(num_correct=correct_wc, num_cued=cued_wc) + percentage_correct = (correct / cued) * 100 + percentage_correct_wc = (correct_wc / cued_wc) * 100 cued_ratio = cued / precued if precued > 0 else 1.0 correction_ratio = correction_trials / incorrect if incorrect > 0 else 0.0 diff --git a/src/visiomode_analysis/session/metrics.py b/src/visiomode_analysis/session/metrics.py index 06a6764..961c2d0 100644 --- a/src/visiomode_analysis/session/metrics.py +++ b/src/visiomode_analysis/session/metrics.py @@ -38,7 +38,3 @@ def perseveration(num_correction_trials: int, num_incorrect: int) -> float: return 0.0 return float(num_correction_trials / num_incorrect) - - -def percentage_correct(num_correct: int, num_cued: int) -> float: - return float((num_correct / num_cued) * 100) From 46c7ecc52613169ea1c355e38ea94cf6bae82f03 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 11 Feb 2026 16:04:42 +0000 Subject: [PATCH 18/64] add summary function --- src/visiomode_analysis/session/__init__.py | 73 +++++++++++++++++++--- 1 file changed, 64 insertions(+), 9 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index d132ab8..5a6f782 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -199,13 +199,11 @@ def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd return df -def summarise(path: str) -> dict: +def summary(path: str) -> dict: metadata = get_metadata(path) df = extract_trials(path) # Trial counts - precued = len(df[(df.outcome == "precued")]) - correct = len(df[(df.outcome == "correct") & (df.correction == False)]) # noqa: E712 correct_wc = len(df[(df.outcome == "correct")]) incorrect = len(df[(df.outcome == "incorrect") & (df.correction == False)]) # noqa: E712 @@ -228,6 +226,8 @@ def summarise(path: str) -> dict: cued = hits + misses + false_alarms + correct_rejections cued_wc = hits_wc + misses_wc + false_alarms_wc + correct_rejections_wc + precued = len(df[(df.outcome == "precued")]) + total = cued_wc + precued # Trial ratios @@ -238,15 +238,15 @@ def summarise(path: str) -> dict: correction_ratio = correction_trials / incorrect if incorrect > 0 else 0.0 # Signal detection theory metrics - is_2afc = True if metadata.get("protocol", "").contains("afc") else False + _is_2afc = True if metadata.get("protocol", "").contains("afc") else False hit_rate = (hits + 0.5) / (hits + misses + 1.0) hit_rate_wc = (hits_wc + 0.5) / (hits_wc + misses_wc + 1.0) fa_rate = (false_alarms + 0.5) / (correct_rejections + false_alarms + 1.0) fa_rate_wc = (false_alarms_wc + 0.5) / (correct_rejections_wc + false_alarms_wc + 1.0) - d_prime = metrics.d_prime(hit_rate, fa_rate, afc_correction=is_2afc) - d_prime_wc = metrics.d_prime(hit_rate_wc, fa_rate_wc, afc_correction=is_2afc) + d_prime = metrics.d_prime(hit_rate, fa_rate, afc_correction=_is_2afc) + d_prime_wc = metrics.d_prime(hit_rate_wc, fa_rate_wc, afc_correction=_is_2afc) bias = metrics.bias(hit_rate, fa_rate) bias_wc = metrics.bias(hit_rate_wc, fa_rate_wc) @@ -264,7 +264,60 @@ def summarise(path: str) -> dict: rt_false_alarms = np.median(df[(df.sdt_type == "false_alarm") & (df.correction == False)]["response_time"]) # noqa: E712 rt_false_alarms_wc = np.median(df[(df.sdt_type == "false_alarm")]["response_time"]) - return {} + rt_iqr = np.percentile( + df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"], 75 + ) - np.percentile( + df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"], + 25, + ) + + rt_iqr_wc = np.percentile( + df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"], 75 + ) - np.percentile( + df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"], + 25, + ) + + return { + "correct": correct, + "correct_wc": correct_wc, + "incorrect": incorrect, + "incorrect_wc": incorrect_wc, + "correction_trials": correction_trials, + "hits": hits, + "hits_wc": hits_wc, + "false_alarms": false_alarms, + "false_alarms_wc": false_alarms_wc, + "correct_rejections": correct_rejections, + "correct_rejections_wc": correct_rejections_wc, + "misses": misses, + "misses_wc": misses_wc, + "cued": cued, + "cued_wc": cued_wc, + "precued": precued, + "total": total, + "percentage_correct": percentage_correct, + "percentage_correct_wc": percentage_correct_wc, + "cued_ratio": cued_ratio, + "correction_ratio": correction_ratio, + "hit_rate": hit_rate, + "hit_rate_wc": hit_rate_wc, + "fa_rate": fa_rate, + "fa_rate_wc": fa_rate_wc, + "d_prime": d_prime, + "d_prime_wc": d_prime_wc, + "bias": bias, + "bias_wc": bias_wc, + "perseveration": perseveration, + "rt": rt, + "rt_wc": rt_wc, + "rt_hits": rt_hits, + "rt_hits_wc": rt_hits_wc, + "rt_false_alarms": rt_false_alarms, + "rt_false_alarms_wc": rt_false_alarms_wc, + "rt_iqr": rt_iqr, + "rt_iqr_wc": rt_iqr_wc, + } def generate_report(path: str, output_dir: str = ".") -> str: @@ -284,10 +337,12 @@ def generate_report(path: str, output_dir: str = ".") -> str: "iti": metadata.get("iti"), "si": metadata.get("si"), "corrections_enabled": metadata.get("corrections_enabled"), - "stimuli": ..., + "stimuli": metadata.get("stimuli"), + "notes": metadata.get("notes"), + "summary": summary(path=path), } - out_path = output_dir / Path(path.split("/")[-1].replace(".h5", "_report.html")) + out_path = output_dir / Path(path.split(os.sep)[-1].replace(".h5", "_report.html")) out_path.write_text(template.render(template_identifiers), encoding="utf-8") return str(out_path) From 940ebd6e9240dcf71d21d1fa6777c34ab7e4b1ee Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 11 Feb 2026 16:08:15 +0000 Subject: [PATCH 19/64] type casting --- exploratory/session-api.ipynb | 84 ++++++++++++++++++---- src/visiomode_analysis/session/__init__.py | 46 ++++++------ 2 files changed, 97 insertions(+), 33 deletions(-) diff --git a/exploratory/session-api.ipynb b/exploratory/session-api.ipynb index 8a7c8c2..1c1ee75 100644 --- a/exploratory/session-api.ipynb +++ b/exploratory/session-api.ipynb @@ -85,7 +85,7 @@ " 13.484679\n", " 9.484679\n", " NaN\n", - " -1.000000\n", + " NaN\n", " ...\n", " False\n", " NaN\n", @@ -157,7 +157,7 @@ " 35.700473\n", " 31.700473\n", " NaN\n", - " -1.000000\n", + " NaN\n", " ...\n", " False\n", " NaN\n", @@ -301,7 +301,7 @@ " 1795.327744\n", " 1791.327744\n", " NaN\n", - " -1.000000\n", + " NaN\n", " ...\n", " True\n", " NaN\n", @@ -358,16 +358,16 @@ "304 MM229 2022-03-09 gonogo unknown 109hrb21d 1796.831960 \n", "\n", " stop_time cue_onset response response_time ... correction pos_x \\\n", - "0 13.484679 9.484679 NaN -1.000000 ... False NaN \n", + "0 13.484679 9.484679 NaN NaN ... False NaN \n", "1 19.065675 NaN unknown 4.072411 ... False 400.0 \n", "2 25.196554 24.067179 unknown 1.128456 ... False 400.0 \n", - "3 35.700473 31.700473 NaN -1.000000 ... False NaN \n", + "3 35.700473 31.700473 NaN NaN ... False NaN \n", "4 43.881072 42.206945 unknown 1.670673 ... False 400.0 \n", ".. ... ... ... ... ... ... ... \n", "300 1774.055825 1770.847014 unknown 3.207015 ... True 400.0 \n", "301 1781.851167 1779.057461 unknown 2.791260 ... True 400.0 \n", "302 1786.325765 NaN unknown 4.472022 ... True 400.0 \n", - "303 1795.327744 1791.327744 NaN -1.000000 ... True NaN \n", + "303 1795.327744 1791.327744 NaN NaN ... True NaN \n", "304 1802.662695 1801.831960 unknown 0.828844 ... False 400.0 \n", "\n", " pos_y dist_x dist_y sdt_type stim_id stim_period \\\n", @@ -462,7 +462,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 6, "id": "64029d34", "metadata": {}, "outputs": [ @@ -472,7 +472,7 @@ "81" ] }, - "execution_count": 14, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -491,7 +491,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 7, "id": "24ec43f8", "metadata": {}, "outputs": [ @@ -501,7 +501,7 @@ "np.int64(49)" ] }, - "execution_count": 10, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -512,7 +512,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 8, "id": "0c6d04df", "metadata": {}, "outputs": [ @@ -522,7 +522,7 @@ "np.int64(40)" ] }, - "execution_count": 11, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -533,9 +533,67 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "323606ce", "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'correct': 61,\n", + " 'correct_wc': 100,\n", + " 'incorrect': 40,\n", + " 'incorrect_wc': 81,\n", + " 'correction_trials': 41,\n", + " 'hits': 49,\n", + " 'hits_wc': 49,\n", + " 'false_alarms': 40,\n", + " 'false_alarms_wc': 81,\n", + " 'correct_rejections': 12,\n", + " 'correct_rejections_wc': 51,\n", + " 'misses': 0,\n", + " 'misses_wc': 0,\n", + " 'cued': 101,\n", + " 'cued_wc': 181,\n", + " 'precued': 124,\n", + " 'total': 305,\n", + " 'percentage_correct': 60.396039603960396,\n", + " 'percentage_correct_wc': 55.24861878453039,\n", + " 'cued_ratio': 0.8145161290322581,\n", + " 'correction_ratio': 1.025,\n", + " 'hit_rate': 0.99,\n", + " 'hit_rate_wc': 0.99,\n", + " 'fa_rate': 0.7641509433962265,\n", + " 'fa_rate_wc': 0.6127819548872181,\n", + " 'd_prime': 1.606629016515605,\n", + " 'd_prime_wc': 2.039770694891421,\n", + " 'bias': -1.5230333657830384,\n", + " 'bias_wc': -1.3064625265951302,\n", + " 'perseveration': 0.5061728395061729,\n", + " 'rt': np.float64(0.7579958438873291),\n", + " 'rt_wc': np.float64(0.7752770185470581),\n", + " 'rt_hits': np.float64(0.8411245346069336),\n", + " 'rt_hits_wc': np.float64(0.8411245346069336),\n", + " 'rt_false_alarms': np.float64(0.724478006362915),\n", + " 'rt_false_alarms_wc': np.float64(0.7548151016235352),\n", + " 'rt_iqr': np.float64(0.6941144466400146),\n", + " 'rt_iqr_wc': np.float64(0.8146393895149231)}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "session.summary(path)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d34c3920", + "metadata": {}, "outputs": [], "source": [] } diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 5a6f782..9cab4fe 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -238,7 +238,7 @@ def summary(path: str) -> dict: correction_ratio = correction_trials / incorrect if incorrect > 0 else 0.0 # Signal detection theory metrics - _is_2afc = True if metadata.get("protocol", "").contains("afc") else False + _is_2afc = True if "afc" in metadata.get("protocol", "") else False hit_rate = (hits + 0.5) / (hits + misses + 1.0) hit_rate_wc = (hits_wc + 0.5) / (hits_wc + misses_wc + 1.0) @@ -255,27 +255,33 @@ def summary(path: str) -> dict: perseveration = metrics.perseveration(num_correction_trials=correction_trials, num_incorrect=incorrect_wc) # Reaction time metrics - rt = np.median(df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"]) # noqa: E712 - rt_wc = np.median(df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"]) - - rt_hits = np.median(df[(df.sdt_type == "hit") & (df.correction == False)]["response_time"]) # noqa: E712 - rt_hits_wc = np.median(df[(df.sdt_type == "hit")]["response_time"]) - - rt_false_alarms = np.median(df[(df.sdt_type == "false_alarm") & (df.correction == False)]["response_time"]) # noqa: E712 - rt_false_alarms_wc = np.median(df[(df.sdt_type == "false_alarm")]["response_time"]) - - rt_iqr = np.percentile( - df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"], 75 - ) - np.percentile( - df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"], - 25, + rt = float( + np.median(df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"]) + ) # noqa: E712 + rt_wc = float(np.median(df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"])) + + rt_hits = float(np.median(df[(df.sdt_type == "hit") & (df.correction == False)]["response_time"])) # noqa: E712 + rt_hits_wc = float(np.median(df[(df.sdt_type == "hit")]["response_time"])) + + rt_false_alarms = float(np.median(df[(df.sdt_type == "false_alarm") & (df.correction == False)]["response_time"])) # noqa: E712 + rt_false_alarms_wc = float(np.median(df[(df.sdt_type == "false_alarm")]["response_time"])) + + rt_iqr = float( + np.percentile( + df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"], 75 + ) + - np.percentile( + df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"], + 25, + ) ) - rt_iqr_wc = np.percentile( - df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"], 75 - ) - np.percentile( - df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"], - 25, + rt_iqr_wc = float( + np.percentile(df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"], 75) + - np.percentile( + df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"], + 25, + ) ) return { From 2bcb5ef8f26f4995b0d623bd70cea33794557d5e Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 11 Feb 2026 16:59:13 +0000 Subject: [PATCH 20/64] add metadata to summary --- exploratory/session-api.ipynb | 473 +++++++++++++++++++-- src/visiomode_analysis/session/__init__.py | 32 +- 2 files changed, 470 insertions(+), 35 deletions(-) diff --git a/exploratory/session-api.ipynb b/exploratory/session-api.ipynb index 1c1ee75..b556bfe 100644 --- a/exploratory/session-api.ipynb +++ b/exploratory/session-api.ipynb @@ -13,19 +13,20 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "6aa96b71", "metadata": {}, "outputs": [], "source": [ "path = \"./test_data/example-gonogo-leverpush.json\"\n", + "path2 = \"./test_data/example-targetonly-leverpush.json\"\n", "\n", - "df = session.extract_trials(path)" + "df = session.get_trials(path)" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "772564e1", "metadata": {}, "outputs": [ @@ -116,7 +117,7 @@ " 240.0\n", " 0.0\n", " 0.0\n", - " NA\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -284,7 +285,7 @@ " 240.0\n", " 0.0\n", " 0.0\n", - " NA\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -372,14 +373,14 @@ "\n", " pos_y dist_x dist_y sdt_type stim_id stim_period \\\n", "0 NaN NaN NaN correct_rejection isoluminantgray NaN \n", - "1 240.0 0.0 0.0 NA NaN NaN \n", + "1 240.0 0.0 0.0 NaN NaN NaN \n", "2 240.0 0.0 0.0 hit movinggrating 30 \n", "3 NaN NaN NaN correct_rejection isoluminantgray NaN \n", "4 240.0 0.0 0.0 hit movinggrating 30 \n", ".. ... ... ... ... ... ... \n", "300 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", "301 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", - "302 240.0 0.0 0.0 NA NaN NaN \n", + "302 240.0 0.0 0.0 NaN NaN NaN \n", "303 NaN NaN NaN correct_rejection isoluminantgray NaN \n", "304 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", "\n", @@ -399,7 +400,7 @@ "[305 rows x 21 columns]" ] }, - "execution_count": 3, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -410,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "2fdcc5f6", "metadata": {}, "outputs": [ @@ -439,7 +440,7 @@ " 'notes': ''}" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -450,7 +451,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "046be0af", "metadata": {}, "outputs": [], @@ -462,7 +463,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "64029d34", "metadata": {}, "outputs": [ @@ -472,7 +473,7 @@ "81" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -491,7 +492,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "24ec43f8", "metadata": {}, "outputs": [ @@ -501,7 +502,7 @@ "np.int64(49)" ] }, - "execution_count": 7, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -512,7 +513,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "0c6d04df", "metadata": {}, "outputs": [ @@ -522,7 +523,7 @@ "np.int64(40)" ] }, - "execution_count": 8, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -533,7 +534,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "323606ce", "metadata": {}, "outputs": [ @@ -570,17 +571,17 @@ " 'bias': -1.5230333657830384,\n", " 'bias_wc': -1.3064625265951302,\n", " 'perseveration': 0.5061728395061729,\n", - " 'rt': np.float64(0.7579958438873291),\n", - " 'rt_wc': np.float64(0.7752770185470581),\n", - " 'rt_hits': np.float64(0.8411245346069336),\n", - " 'rt_hits_wc': np.float64(0.8411245346069336),\n", - " 'rt_false_alarms': np.float64(0.724478006362915),\n", - " 'rt_false_alarms_wc': np.float64(0.7548151016235352),\n", - " 'rt_iqr': np.float64(0.6941144466400146),\n", - " 'rt_iqr_wc': np.float64(0.8146393895149231)}" + " 'rt': 0.7579958438873291,\n", + " 'rt_wc': 0.7752770185470581,\n", + " 'rt_hits': 0.8411245346069336,\n", + " 'rt_hits_wc': 0.8411245346069336,\n", + " 'rt_false_alarms': 0.724478006362915,\n", + " 'rt_false_alarms_wc': 0.7548151016235352,\n", + " 'rt_iqr': 0.6941144466400146,\n", + " 'rt_iqr_wc': 0.8146393895149231}" ] }, - "execution_count": 9, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -591,9 +592,425 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "d34c3920", "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/celefthe/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/numpy/_core/fromnumeric.py:3824: RuntimeWarning: Mean of empty slice\n", + " return _methods._mean(a, axis=axis, dtype=dtype,\n", + "/Users/celefthe/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/numpy/_core/_methods.py:142: RuntimeWarning: invalid value encountered in scalar divide\n", + " ret = ret.dtype.type(ret / rcount)\n", + "/Users/celefthe/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/numpy/_core/fromnumeric.py:3824: RuntimeWarning: Mean of empty slice\n", + " return _methods._mean(a, axis=axis, dtype=dtype,\n", + "/Users/celefthe/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/numpy/_core/_methods.py:142: RuntimeWarning: invalid value encountered in scalar divide\n", + " ret = ret.dtype.type(ret / rcount)\n" + ] + }, + { + "data": { + "text/plain": [ + "{'correct': 166,\n", + " 'correct_wc': 166,\n", + " 'incorrect': 0,\n", + " 'incorrect_wc': 0,\n", + " 'correction_trials': 0,\n", + " 'hits': 166,\n", + " 'hits_wc': 166,\n", + " 'false_alarms': 0,\n", + " 'false_alarms_wc': 0,\n", + " 'correct_rejections': 0,\n", + " 'correct_rejections_wc': 0,\n", + " 'misses': 71,\n", + " 'misses_wc': 71,\n", + " 'cued': 237,\n", + " 'cued_wc': 237,\n", + " 'precued': 54,\n", + " 'total': 291,\n", + " 'percentage_correct': 70.042194092827,\n", + " 'percentage_correct_wc': 70.042194092827,\n", + " 'cued_ratio': 4.388888888888889,\n", + " 'correction_ratio': 0.0,\n", + " 'hit_rate': 0.6995798319327731,\n", + " 'hit_rate_wc': 0.6995798319327731,\n", + " 'fa_rate': 0.5,\n", + " 'fa_rate_wc': 0.5,\n", + " 'd_prime': 0.5231924482394528,\n", + " 'd_prime_wc': 0.5231924482394528,\n", + " 'bias': -0.2615962241197264,\n", + " 'bias_wc': -0.2615962241197264,\n", + " 'perseveration': 0.0,\n", + " 'rt': 3.505884289741516,\n", + " 'rt_wc': 3.505884289741516,\n", + " 'rt_hits': 3.505884289741516,\n", + " 'rt_hits_wc': 3.505884289741516,\n", + " 'rt_false_alarms': nan,\n", + " 'rt_false_alarms_wc': nan,\n", + " 'rt_iqr': 4.261228859424591,\n", + " 'rt_iqr_wc': 4.261228859424591}" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "session.summary(path2)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "20981f82", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animal_idsession_dateprotocolenvironmentexperimentstart_timestop_timecue_onsetresponseresponse_timeoutcomecorrectionpos_xpos_ydist_xdist_ysdt_typestim_id
0MM2292022-03-01targetonlyunknown109hrb21d4.5105776.1795455.510577unknown0.666754correctFalse400.0240.00.00.0hitmovinggrating
1MM2292022-03-01targetonlyunknown109hrb21d7.6835078.243353NaNunknown0.558433precuedFalse400.0240.00.00.0NaNNaN
2MM2292022-03-01targetonlyunknown109hrb21d8.24482619.2448269.244826NaNNaNno_responseFalseNaNNaNNaNNaNmissmovinggrating
3MM2292022-03-01targetonlyunknown109hrb21d19.24907427.50612720.249074unknown7.255831correctFalse400.0240.00.00.0hitmovinggrating
4MM2292022-03-01targetonlyunknown109hrb21d29.01058229.580618NaNunknown0.568870precuedFalse400.0240.00.00.0NaNNaN
.........................................................
286MM2292022-03-01targetonlyunknown109hrb21d1768.9744431770.5913421769.974443unknown0.614641correctFalse400.0240.00.00.0hitmovinggrating
287MM2292022-03-01targetonlyunknown109hrb21d1772.0952241781.8503301773.095224unknown8.753559correctFalse400.0240.00.00.0hitmovinggrating
288MM2292022-03-01targetonlyunknown109hrb21d1783.3549401789.3463951784.354940unknown4.989386correctFalse400.0240.00.00.0hitmovinggrating
289MM2292022-03-01targetonlyunknown109hrb21d1790.8503291794.2953231791.850329unknown2.443216correctFalse400.0240.00.00.0hitmovinggrating
290MM2292022-03-01targetonlyunknown109hrb21d1795.7993211803.5125461796.799321unknown6.711195correctFalse400.0240.00.00.0hitmovinggrating
\n", + "

291 rows × 18 columns

\n", + "
" + ], + "text/plain": [ + " animal_id session_date protocol environment experiment start_time \\\n", + "0 MM229 2022-03-01 targetonly unknown 109hrb21d 4.510577 \n", + "1 MM229 2022-03-01 targetonly unknown 109hrb21d 7.683507 \n", + "2 MM229 2022-03-01 targetonly unknown 109hrb21d 8.244826 \n", + "3 MM229 2022-03-01 targetonly unknown 109hrb21d 19.249074 \n", + "4 MM229 2022-03-01 targetonly unknown 109hrb21d 29.010582 \n", + ".. ... ... ... ... ... ... \n", + "286 MM229 2022-03-01 targetonly unknown 109hrb21d 1768.974443 \n", + "287 MM229 2022-03-01 targetonly unknown 109hrb21d 1772.095224 \n", + "288 MM229 2022-03-01 targetonly unknown 109hrb21d 1783.354940 \n", + "289 MM229 2022-03-01 targetonly unknown 109hrb21d 1790.850329 \n", + "290 MM229 2022-03-01 targetonly unknown 109hrb21d 1795.799321 \n", + "\n", + " stop_time cue_onset response response_time outcome \\\n", + "0 6.179545 5.510577 unknown 0.666754 correct \n", + "1 8.243353 NaN unknown 0.558433 precued \n", + "2 19.244826 9.244826 NaN NaN no_response \n", + "3 27.506127 20.249074 unknown 7.255831 correct \n", + "4 29.580618 NaN unknown 0.568870 precued \n", + ".. ... ... ... ... ... \n", + "286 1770.591342 1769.974443 unknown 0.614641 correct \n", + "287 1781.850330 1773.095224 unknown 8.753559 correct \n", + "288 1789.346395 1784.354940 unknown 4.989386 correct \n", + "289 1794.295323 1791.850329 unknown 2.443216 correct \n", + "290 1803.512546 1796.799321 unknown 6.711195 correct \n", + "\n", + " correction pos_x pos_y dist_x dist_y sdt_type stim_id \n", + "0 False 400.0 240.0 0.0 0.0 hit movinggrating \n", + "1 False 400.0 240.0 0.0 0.0 NaN NaN \n", + "2 False NaN NaN NaN NaN miss movinggrating \n", + "3 False 400.0 240.0 0.0 0.0 hit movinggrating \n", + "4 False 400.0 240.0 0.0 0.0 NaN NaN \n", + ".. ... ... ... ... ... ... ... \n", + "286 False 400.0 240.0 0.0 0.0 hit movinggrating \n", + "287 False 400.0 240.0 0.0 0.0 hit movinggrating \n", + "288 False 400.0 240.0 0.0 0.0 hit movinggrating \n", + "289 False 400.0 240.0 0.0 0.0 hit movinggrating \n", + "290 False 400.0 240.0 0.0 0.0 hit movinggrating \n", + "\n", + "[291 rows x 18 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "session.get_trials(path2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b1644a96", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2cf49e90", + "metadata": {}, "outputs": [], "source": [] } diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 9cab4fe..6ac04a6 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -76,7 +76,7 @@ def preprocess_session(path: str, output_dir: str = ".") -> str: Returns: str: Returns directory under which files were saved """ - extract_trials(path, to_csv=True, output_dir=output_dir) + get_trials(path, to_csv=True, output_dir=output_dir) generate_report(path, output_dir=output_dir) return output_dir @@ -157,7 +157,7 @@ def get_metadata(path: str) -> dict: } -def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd.DataFrame: +def get_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd.DataFrame: """Parse a Visiomode JSON file and return a trials dataframe. Optionally save to CSV. Args: @@ -201,7 +201,7 @@ def extract_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd def summary(path: str) -> dict: metadata = get_metadata(path) - df = extract_trials(path) + df = get_trials(path) # Trial counts correct = len(df[(df.outcome == "correct") & (df.correction == False)]) # noqa: E712 @@ -285,6 +285,11 @@ def summary(path: str) -> dict: ) return { + "animal_id": metadata.get("animal_id"), + "session_date": metadata.get("session_date"), + "protocol": metadata.get("protocol"), + "environment": metadata.get("environment"), + "experiment": metadata.get("experiment"), "correct": correct, "correct_wc": correct_wc, "incorrect": incorrect, @@ -398,7 +403,7 @@ def _flatten_trials(session: dict, metadata: dict) -> Iterator[dict]: } stimulus = {**target_stim, **distractor_stim} else: # handle older versions of visiomode - if metadata.get("protocol") == "gonogo" or metadata.get("protocol") == "targetonly": + if metadata.get("protocol") == "gonogo": if (trial.get("response") and trial.get("outcome") == "correct") or ( not trial.get("response") and trial.get("outcome") == "incorrect" ): @@ -419,6 +424,17 @@ def _flatten_trials(session: dict, metadata: dict) -> Iterator[dict]: if key.startswith("distractor_") }, } + elif metadata.get("protocol") == "targetonly": + if (trial.get("response") and (trial.get("outcome") == "correct")) or ( + trial.get("outcome") == "no_response" + ): + stimulus = { + **{ + f"stim_{key.replace('target_', '')}": value + for key, value in metadata.get("stimuli", {}).items() + if key.startswith("target_") + }, + } else: # 2AFC stimulus = {key: value for key, value in metadata.get("stimuli", {}).items()} @@ -427,17 +443,19 @@ def _flatten_trials(session: dict, metadata: dict) -> Iterator[dict]: sdt_type = None if trial.get("sdt_type"): sdt_type = trial.get("sdt_type") - elif metadata.get("protocol") == "gonogo": + elif metadata.get("protocol") == "gonogo" or metadata.get("protocol") == "targetonly": if trial.get("response") and trial.get("outcome") == "correct": sdt_type = HIT elif trial.get("response") and trial.get("outcome") == "incorrect": sdt_type = FALSE_ALARM elif not trial.get("response") and trial.get("outcome") == "correct": sdt_type = CORRECT_REJECTION - elif not trial.get("response") and trial.get("outcome") == "incorrect": + elif not trial.get("response") and ( + trial.get("outcome") == "incorrect" or trial.get("outcome") == "no_response" + ): sdt_type = MISS else: - sdt_type = "NA" + sdt_type = None yield { "start_time": start_time, From 20c4df92a277578e2a2897255b061850c2db3684 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 17 Feb 2026 11:06:17 +0000 Subject: [PATCH 21/64] add starter plots --- exploratory/session-api.ipynb | 481 +++++++++++------- .../reports/templates/session.html | 105 +++- src/visiomode_analysis/session/__init__.py | 38 +- src/visiomode_analysis/session/plots.py | 78 +++ 4 files changed, 511 insertions(+), 191 deletions(-) diff --git a/exploratory/session-api.ipynb b/exploratory/session-api.ipynb index b556bfe..8ad670c 100644 --- a/exploratory/session-api.ipynb +++ b/exploratory/session-api.ipynb @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "6aa96b71", "metadata": {}, "outputs": [], @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "772564e1", "metadata": {}, "outputs": [ @@ -400,7 +400,7 @@ "[305 rows x 21 columns]" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -411,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "2fdcc5f6", "metadata": {}, "outputs": [ @@ -440,7 +440,7 @@ " 'notes': ''}" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -451,7 +451,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "046be0af", "metadata": {}, "outputs": [], @@ -463,7 +463,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "64029d34", "metadata": {}, "outputs": [ @@ -473,7 +473,7 @@ "81" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -492,7 +492,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "id": "24ec43f8", "metadata": {}, "outputs": [ @@ -502,7 +502,7 @@ "np.int64(49)" ] }, - "execution_count": 8, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -513,7 +513,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "id": "0c6d04df", "metadata": {}, "outputs": [ @@ -523,7 +523,7 @@ "np.int64(40)" ] }, - "execution_count": 9, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -534,14 +534,19 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "323606ce", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'correct': 61,\n", + "{'animal_id': 'MM229',\n", + " 'session_date': datetime.date(2022, 3, 9),\n", + " 'protocol': 'gonogo',\n", + " 'environment': 'unknown',\n", + " 'experiment': '109hrb21d',\n", + " 'correct': 61,\n", " 'correct_wc': 100,\n", " 'incorrect': 40,\n", " 'incorrect_wc': 81,\n", @@ -581,7 +586,7 @@ " 'rt_iqr_wc': 0.8146393895149231}" ] }, - "execution_count": 10, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -592,7 +597,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "id": "d34c3920", "metadata": {}, "outputs": [ @@ -613,7 +618,12 @@ { "data": { "text/plain": [ - "{'correct': 166,\n", + "{'animal_id': 'MM229',\n", + " 'session_date': datetime.date(2022, 3, 1),\n", + " 'protocol': 'targetonly',\n", + " 'environment': 'unknown',\n", + " 'experiment': '109hrb21d',\n", + " 'correct': 166,\n", " 'correct_wc': 166,\n", " 'incorrect': 0,\n", " 'incorrect_wc': 0,\n", @@ -653,7 +663,7 @@ " 'rt_iqr_wc': 4.261228859424591}" ] }, - "execution_count": 11, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -664,7 +674,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "id": "20981f82", "metadata": {}, "outputs": [ @@ -699,7 +709,7 @@ " cue_onset\n", " response\n", " response_time\n", - " outcome\n", + " ...\n", " correction\n", " pos_x\n", " pos_y\n", @@ -707,43 +717,49 @@ " dist_y\n", " sdt_type\n", " stim_id\n", + " stim_period\n", + " stim_contrast\n", + " stim_freq\n", " \n", " \n", " \n", " \n", " 0\n", " MM229\n", - " 2022-03-01\n", - " targetonly\n", + " 2022-03-09\n", + " gonogo\n", " unknown\n", " 109hrb21d\n", - " 4.510577\n", - " 6.179545\n", - " 5.510577\n", - " unknown\n", - " 0.666754\n", - " correct\n", + " 4.484679\n", + " 13.484679\n", + " 9.484679\n", + " NaN\n", + " NaN\n", + " ...\n", " False\n", - " 400.0\n", - " 240.0\n", - " 0.0\n", - " 0.0\n", - " hit\n", - " movinggrating\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " correct_rejection\n", + " isoluminantgray\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", " 1\n", " MM229\n", - " 2022-03-01\n", - " targetonly\n", + " 2022-03-09\n", + " gonogo\n", " unknown\n", " 109hrb21d\n", - " 7.683507\n", - " 8.243353\n", + " 14.991839\n", + " 19.065675\n", " NaN\n", " unknown\n", - " 0.558433\n", - " precued\n", + " 4.072411\n", + " ...\n", " False\n", " 400.0\n", " 240.0\n", @@ -751,41 +767,23 @@ " 0.0\n", " NaN\n", " NaN\n", - " \n", - " \n", - " 2\n", - " MM229\n", - " 2022-03-01\n", - " targetonly\n", - " unknown\n", - " 109hrb21d\n", - " 8.244826\n", - " 19.244826\n", - " 9.244826\n", - " NaN\n", - " NaN\n", - " no_response\n", - " False\n", " NaN\n", " NaN\n", " NaN\n", - " NaN\n", - " miss\n", - " movinggrating\n", " \n", " \n", - " 3\n", + " 2\n", " MM229\n", - " 2022-03-01\n", - " targetonly\n", + " 2022-03-09\n", + " gonogo\n", " unknown\n", " 109hrb21d\n", - " 19.249074\n", - " 27.506127\n", - " 20.249074\n", + " 19.067179\n", + " 25.196554\n", + " 24.067179\n", " unknown\n", - " 7.255831\n", - " correct\n", + " 1.128456\n", + " ...\n", " False\n", " 400.0\n", " 240.0\n", @@ -793,27 +791,57 @@ " 0.0\n", " hit\n", " movinggrating\n", + " 30\n", + " 1.0\n", + " 1.0\n", " \n", " \n", - " 4\n", + " 3\n", " MM229\n", - " 2022-03-01\n", - " targetonly\n", + " 2022-03-09\n", + " gonogo\n", " unknown\n", " 109hrb21d\n", - " 29.010582\n", - " 29.580618\n", + " 26.700473\n", + " 35.700473\n", + " 31.700473\n", + " NaN\n", + " NaN\n", + " ...\n", + " False\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " correct_rejection\n", + " isoluminantgray\n", + " NaN\n", + " NaN\n", " NaN\n", + " \n", + " \n", + " 4\n", + " MM229\n", + " 2022-03-09\n", + " gonogo\n", " unknown\n", - " 0.568870\n", - " precued\n", + " 109hrb21d\n", + " 37.206945\n", + " 43.881072\n", + " 42.206945\n", + " unknown\n", + " 1.670673\n", + " ...\n", " False\n", " 400.0\n", " 240.0\n", " 0.0\n", " 0.0\n", - " NaN\n", - " NaN\n", + " hit\n", + " movinggrating\n", + " 30\n", + " 1.0\n", + " 1.0\n", " \n", " \n", " ...\n", @@ -835,181 +863,276 @@ " ...\n", " ...\n", " ...\n", + " ...\n", + " ...\n", + " ...\n", " \n", " \n", - " 286\n", + " 300\n", " MM229\n", - " 2022-03-01\n", - " targetonly\n", + " 2022-03-09\n", + " gonogo\n", " unknown\n", " 109hrb21d\n", - " 1768.974443\n", - " 1770.591342\n", - " 1769.974443\n", + " 1765.847014\n", + " 1774.055825\n", + " 1770.847014\n", " unknown\n", - " 0.614641\n", - " correct\n", - " False\n", + " 3.207015\n", + " ...\n", + " True\n", " 400.0\n", " 240.0\n", " 0.0\n", " 0.0\n", - " hit\n", - " movinggrating\n", + " false_alarm\n", + " isoluminantgray\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", - " 287\n", + " 301\n", " MM229\n", - " 2022-03-01\n", - " targetonly\n", + " 2022-03-09\n", + " gonogo\n", " unknown\n", " 109hrb21d\n", - " 1772.095224\n", - " 1781.850330\n", - " 1773.095224\n", + " 1774.057461\n", + " 1781.851167\n", + " 1779.057461\n", " unknown\n", - " 8.753559\n", - " correct\n", - " False\n", + " 2.791260\n", + " ...\n", + " True\n", " 400.0\n", " 240.0\n", " 0.0\n", " 0.0\n", - " hit\n", - " movinggrating\n", + " false_alarm\n", + " isoluminantgray\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", - " 288\n", + " 302\n", " MM229\n", - " 2022-03-01\n", - " targetonly\n", + " 2022-03-09\n", + " gonogo\n", " unknown\n", " 109hrb21d\n", - " 1783.354940\n", - " 1789.346395\n", - " 1784.354940\n", + " 1781.852839\n", + " 1786.325765\n", + " NaN\n", " unknown\n", - " 4.989386\n", - " correct\n", - " False\n", + " 4.472022\n", + " ...\n", + " True\n", " 400.0\n", " 240.0\n", " 0.0\n", " 0.0\n", - " hit\n", - " movinggrating\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", - " 289\n", + " 303\n", " MM229\n", - " 2022-03-01\n", - " targetonly\n", + " 2022-03-09\n", + " gonogo\n", " unknown\n", " 109hrb21d\n", - " 1790.850329\n", - " 1794.295323\n", - " 1791.850329\n", - " unknown\n", - " 2.443216\n", - " correct\n", - " False\n", - " 400.0\n", - " 240.0\n", - " 0.0\n", - " 0.0\n", - " hit\n", - " movinggrating\n", + " 1786.327744\n", + " 1795.327744\n", + " 1791.327744\n", + " NaN\n", + " NaN\n", + " ...\n", + " True\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " correct_rejection\n", + " isoluminantgray\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", - " 290\n", + " 304\n", " MM229\n", - " 2022-03-01\n", - " targetonly\n", + " 2022-03-09\n", + " gonogo\n", " unknown\n", " 109hrb21d\n", - " 1795.799321\n", - " 1803.512546\n", - " 1796.799321\n", + " 1796.831960\n", + " 1802.662695\n", + " 1801.831960\n", " unknown\n", - " 6.711195\n", - " correct\n", + " 0.828844\n", + " ...\n", " False\n", " 400.0\n", " 240.0\n", " 0.0\n", " 0.0\n", - " hit\n", - " movinggrating\n", + " false_alarm\n", + " isoluminantgray\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", "\n", - "

291 rows × 18 columns

\n", + "

305 rows × 21 columns

\n", "" ], "text/plain": [ - " animal_id session_date protocol environment experiment start_time \\\n", - "0 MM229 2022-03-01 targetonly unknown 109hrb21d 4.510577 \n", - "1 MM229 2022-03-01 targetonly unknown 109hrb21d 7.683507 \n", - "2 MM229 2022-03-01 targetonly unknown 109hrb21d 8.244826 \n", - "3 MM229 2022-03-01 targetonly unknown 109hrb21d 19.249074 \n", - "4 MM229 2022-03-01 targetonly unknown 109hrb21d 29.010582 \n", - ".. ... ... ... ... ... ... \n", - "286 MM229 2022-03-01 targetonly unknown 109hrb21d 1768.974443 \n", - "287 MM229 2022-03-01 targetonly unknown 109hrb21d 1772.095224 \n", - "288 MM229 2022-03-01 targetonly unknown 109hrb21d 1783.354940 \n", - "289 MM229 2022-03-01 targetonly unknown 109hrb21d 1790.850329 \n", - "290 MM229 2022-03-01 targetonly unknown 109hrb21d 1795.799321 \n", + " animal_id session_date protocol environment experiment start_time \\\n", + "0 MM229 2022-03-09 gonogo unknown 109hrb21d 4.484679 \n", + "1 MM229 2022-03-09 gonogo unknown 109hrb21d 14.991839 \n", + "2 MM229 2022-03-09 gonogo unknown 109hrb21d 19.067179 \n", + "3 MM229 2022-03-09 gonogo unknown 109hrb21d 26.700473 \n", + "4 MM229 2022-03-09 gonogo unknown 109hrb21d 37.206945 \n", + ".. ... ... ... ... ... ... \n", + "300 MM229 2022-03-09 gonogo unknown 109hrb21d 1765.847014 \n", + "301 MM229 2022-03-09 gonogo unknown 109hrb21d 1774.057461 \n", + "302 MM229 2022-03-09 gonogo unknown 109hrb21d 1781.852839 \n", + "303 MM229 2022-03-09 gonogo unknown 109hrb21d 1786.327744 \n", + "304 MM229 2022-03-09 gonogo unknown 109hrb21d 1796.831960 \n", "\n", - " stop_time cue_onset response response_time outcome \\\n", - "0 6.179545 5.510577 unknown 0.666754 correct \n", - "1 8.243353 NaN unknown 0.558433 precued \n", - "2 19.244826 9.244826 NaN NaN no_response \n", - "3 27.506127 20.249074 unknown 7.255831 correct \n", - "4 29.580618 NaN unknown 0.568870 precued \n", - ".. ... ... ... ... ... \n", - "286 1770.591342 1769.974443 unknown 0.614641 correct \n", - "287 1781.850330 1773.095224 unknown 8.753559 correct \n", - "288 1789.346395 1784.354940 unknown 4.989386 correct \n", - "289 1794.295323 1791.850329 unknown 2.443216 correct \n", - "290 1803.512546 1796.799321 unknown 6.711195 correct \n", + " stop_time cue_onset response response_time ... correction pos_x \\\n", + "0 13.484679 9.484679 NaN NaN ... False NaN \n", + "1 19.065675 NaN unknown 4.072411 ... False 400.0 \n", + "2 25.196554 24.067179 unknown 1.128456 ... False 400.0 \n", + "3 35.700473 31.700473 NaN NaN ... False NaN \n", + "4 43.881072 42.206945 unknown 1.670673 ... False 400.0 \n", + ".. ... ... ... ... ... ... ... \n", + "300 1774.055825 1770.847014 unknown 3.207015 ... True 400.0 \n", + "301 1781.851167 1779.057461 unknown 2.791260 ... True 400.0 \n", + "302 1786.325765 NaN unknown 4.472022 ... True 400.0 \n", + "303 1795.327744 1791.327744 NaN NaN ... True NaN \n", + "304 1802.662695 1801.831960 unknown 0.828844 ... False 400.0 \n", "\n", - " correction pos_x pos_y dist_x dist_y sdt_type stim_id \n", - "0 False 400.0 240.0 0.0 0.0 hit movinggrating \n", - "1 False 400.0 240.0 0.0 0.0 NaN NaN \n", - "2 False NaN NaN NaN NaN miss movinggrating \n", - "3 False 400.0 240.0 0.0 0.0 hit movinggrating \n", - "4 False 400.0 240.0 0.0 0.0 NaN NaN \n", - ".. ... ... ... ... ... ... ... \n", - "286 False 400.0 240.0 0.0 0.0 hit movinggrating \n", - "287 False 400.0 240.0 0.0 0.0 hit movinggrating \n", - "288 False 400.0 240.0 0.0 0.0 hit movinggrating \n", - "289 False 400.0 240.0 0.0 0.0 hit movinggrating \n", - "290 False 400.0 240.0 0.0 0.0 hit movinggrating \n", + " pos_y dist_x dist_y sdt_type stim_id stim_period \\\n", + "0 NaN NaN NaN correct_rejection isoluminantgray NaN \n", + "1 240.0 0.0 0.0 NaN NaN NaN \n", + "2 240.0 0.0 0.0 hit movinggrating 30 \n", + "3 NaN NaN NaN correct_rejection isoluminantgray NaN \n", + "4 240.0 0.0 0.0 hit movinggrating 30 \n", + ".. ... ... ... ... ... ... \n", + "300 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", + "301 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", + "302 240.0 0.0 0.0 NaN NaN NaN \n", + "303 NaN NaN NaN correct_rejection isoluminantgray NaN \n", + "304 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", "\n", - "[291 rows x 18 columns]" + " stim_contrast stim_freq \n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 1.0 1.0 \n", + "3 NaN NaN \n", + "4 1.0 1.0 \n", + ".. ... ... \n", + "300 NaN NaN \n", + "301 NaN NaN \n", + "302 NaN NaN \n", + "303 NaN NaN \n", + "304 NaN NaN \n", + "\n", + "[305 rows x 21 columns]" ] }, - "execution_count": 12, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "session.get_trials(path2)" + "session.get_trials(path)" ] }, { "cell_type": "code", - "execution_count": null, - "id": "b1644a96", + "execution_count": 12, + "id": "2cf49e90", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "array([4.07241106, 1.12845564, 1.67067313, 0.75222349, 4.33570457,\n", + " 0.7189033 , 0.58157992, 2.88213277, 2.63856554, 1.02317667,\n", + " 1.09140873, 0.9076066 , 0.58795977, 4.16887856, 1.98388386,\n", + " 4.13092446, 2.37473297, 1.24363708, 3.61881399, 1.41790748,\n", + " 2.30536819, 1.13288021, 1.20492458, 3.61073375, 1.04348946,\n", + " 0.65499592, 4.88690519, 0.45944071, 0.26327109, 4.1907928 ,\n", + " 1.28396535, 0.87741184, 4.71368098, 0.49710107, 0.56599116,\n", + " 3.96820521, 0.84596944, 0.84112453, 2.24070811, 0.4502275 ,\n", + " 4.52497387, 1.91021109, 4.7808454 , 0.53104758, 3.80104113,\n", + " 4.97083807, 3.4667933 , 4.97263169, 1.20380449, 2.24275231,\n", + " 0.70769119, 3.00024486, 0.74060893, 1.39149141, 0.49157977,\n", + " 0.62760639, 3.75893068, 4.93779206, 0.50835109, 2.79456282,\n", + " 2.70379615, 4.39621902, 0.42487359, 0.82556057, 0.3984499 ,\n", + " 0.39205909, 3.59338832, 1.15440631, 0.7548151 , 2.94736958,\n", + " 0.44928479, 4.25651073, 4.84993005, 0.44550776, 4.41501546,\n", + " 1.14878488, 1.20520544, 1.94404197, 0.48086047, 0.41519713,\n", + " 3.11189342, 2.50167394, 1.25001621, 1.90612602, 2.55454922,\n", + " 0.99718571, 3.9491117 , 2.45025921, 0.58729029, 4.99543953,\n", + " 4.26249456, 0.4282968 , 0.55701089, 0.63315582, 1.15128708,\n", + " 3.36899853, 4.98766899, 1.20908475, 0.5712564 , 0.64555478,\n", + " 4.87757754, 0.09124446, 1.92507291, 0.84036136, 3.93655801,\n", + " 2.33175159, 4.35520911, 0.50356007, 1.43953085, 0.59616613,\n", + " 0.27872372, 1.51335716, 1.56289554, 1.20163512, 1.34386039,\n", + " 3.98109007, 2.26025271, 0.52169633, 1.84859204, 1.69420099,\n", + " 2.23984456, 0.65409708, 0.53360224, 0.94292784, 1.02442169,\n", + " 0.21108174, 1.55091906, 1.5925734 , 4.32582092, 4.57085657,\n", + " 3.78541541, 0.94771004, 4.44320798, 1.15262961, 1.20115519,\n", + " 1.18505335, 3.30752897, 2.55048108, 1.14897132, 1.20236063,\n", + " 0.1555655 , 2.78129268, 4.27481937, 3.32345533, 0.65784979,\n", + " 4.44314766, 4.16153049, 3.7884841 , 0.54014683, 4.30839348,\n", + " 0.4714303 , 0.78326321, 0.84392142, 0.15697026, 0.49913096,\n", + " 0.54947042, 0.24266291, 0.75799584, 4.20637345, 0.5250001 ,\n", + " 0.21599102, 4.66748548, 0.46551609, 4.86538315, 2.40262961,\n", + " 0.71576905, 3.57817006, 0.87470198, 1.67346835, 0.66445208,\n", + " 1.33302426, 0.60051966, 4.73484063, 4.24502659, 1.68480587,\n", + " 2.72074294, 1.64150071, 0.4529109 , 0.29112673, 3.2855885 ,\n", + " 1.86356854, 4.91667008, 1.14188719, 1.89332247, 2.44906521,\n", + " 3.3949523 , 1.99941421, 2.49013662, 1.15213466, 0.76729083,\n", + " 1.65594125, 0.72418523, 0.8692615 , 1.29176593, 4.54364276,\n", + " 0.87070751, 1.11195922, 4.67210031, 2.88435578, 0.66701508,\n", + " 3.50267959, 0.96783257, 4.31949472, 3.25162435, 1.75673079,\n", + " 0.72477078, 4.32014513, 0.73314214, 1.22932744, 1.12964392,\n", + " 1.51676321, 1.209373 , 4.43273258, 4.49052787, 4.66240954,\n", + " 1.91370678, 4.57442307, 4.11120605, 3.23936605, 0.14834547,\n", + " 0.0970118 , 1.24704385, 4.96767402, 0.89157176, 4.3455205 ,\n", + " 4.4390583 , 0.27321911, 4.19128919, 4.70305586, 1.15293193,\n", + " 1.19664454, 1.17845106, 1.20108986, 4.30042744, 4.44364333,\n", + " 1.85134625, 1.16960907, 4.97697544, 3.88323092, 1.68350267,\n", + " 4.8582201 , 0.51525855, 0.65883112, 4.66930079, 2.09194255,\n", + " 1.21377516, 0.91119289, 1.44596767, 0.83379054, 1.19682884,\n", + " 3.20701528, 2.79126048, 4.47202182, 0.82884383])" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trials = session.get_trials(path)\n", + "trials[(trials.response.notnull())].response_time.values" + ] }, { "cell_type": "code", "execution_count": null, - "id": "2cf49e90", + "id": "95529ecb", "metadata": {}, "outputs": [], "source": [] diff --git a/src/visiomode_analysis/reports/templates/session.html b/src/visiomode_analysis/reports/templates/session.html index 2f8922b..7e82ade 100644 --- a/src/visiomode_analysis/reports/templates/session.html +++ b/src/visiomode_analysis/reports/templates/session.html @@ -25,38 +25,129 @@

Session metadata

Subject ID: {{ subject_id or "Unknown" }}
- Session date: {{ session_date or "Unknown" }} + Experiment ID: {{ experiment_id or "Unknown" }}
- Experiment ID: {{ experiment_id or "Unknown" }} + Session duration: {{ duration or "Unknown" }} mins
- Session duration: {{ duration or "Unknown" }} + Session date: {{ session_date or "Unknown" }} +
+
+ Protocol: {{ protocol or "Unknown" }}
Number of trials: {{ trials_num or "Unknown" }}
+
+ +

Protocol spec

+ +
+
+ Inter-trial Interval: {{ iti or "Unknown" }} ms +
- File size: {{ '%0.2f'| format(filesize|float) or "Unknown" }} MB + Correction trials: {{ corrections_enabled or "Unknown" }} +
+
+ Notes: +
{{ notes }}
+
+
+
+
+ Stimulus interval: {{ stimulus_duration or "Unknown" }} ms +
+
+ Stimuli: +
+ + {% for key, value in stimuli.items() %} + + + + + {% endfor %} +
  {{ key }}: {{ value }}
+
-

Timeseries integrity

+

Trials summary

Timestamp series
- {{ fig_integrity_timestamps | safe }} + + {% for key, value in summary.items() %} + + + + + {% endfor %} +
{{ key | capitalize }}: {{ value }}
Timedelta series
- {{ fig_integrity_timestamp_jumps | safe }}
+
+

Session metrics

+ +
+

Random presentation only

+
+ +
Cue response breakdown
+
{{ fig_success_pie | safe }}
+ +
Cued:uncued response ratio
+
{{ fig_cued_pie | safe }}
+
+ +
+

Correction trials included

+
+ +
Cue response breakdown
+
{{ fig_success_pie_wc | safe }}
+ +
Cued:uncued response ratio
+
{{ fig_cued_pie_wc | safe }}
+
+
+ +
+

SDT metrics

+ +
+ +
+ +
+ +
+
+ +
+

Trial timeseries

+ +
+ +
+ +
+ +
+
+ + + {% endblock %} \ No newline at end of file diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 6ac04a6..6d6975d 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -26,6 +26,7 @@ import datetime import pandas as pd import numpy as np +import numpy.typing as npt from pathlib import Path from jinja2 import Environment @@ -34,7 +35,7 @@ from collections.abc import Iterator -from visiomode_analysis.session import metrics +from visiomode_analysis.session import metrics, plots SESSION_REPORT_TEMPLATE = "session.html" @@ -199,6 +200,15 @@ def get_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd.Dat return df +def get_rts(path: str, sdt_type=None) -> npt.NDArray: + trials = get_trials(path=path) + + if sdt_type: + return np.array(trials[(trials.response.notnull()) & (trials.sdt_type == sdt_type)].response_time.values) + + return np.array(trials[(trials.response.notnull()) & (trials.cue_onset.notnull())].response_time.values) + + def summary(path: str) -> dict: metadata = get_metadata(path) df = get_trials(path) @@ -336,24 +346,42 @@ def generate_report(path: str, output_dir: str = ".") -> str: metadata = get_metadata(path) + session_summary = summary(path=path) + template_identifiers = { "subject_id": metadata.get("animal_id"), "session_date": str(metadata.get("session_date")), "experiment_id": metadata.get("experiment_id"), "duration": metadata.get("duration"), - "trials_num": ..., + "trials_num": session_summary.get("total"), "protocol": metadata.get("protocol"), "response_device": metadata.get("response_device"), "reward_profile": metadata.get("reward_profile"), "iti": metadata.get("iti"), - "si": metadata.get("si"), + "stimulus_duration": metadata.get("stimulus_duration"), "corrections_enabled": metadata.get("corrections_enabled"), "stimuli": metadata.get("stimuli"), "notes": metadata.get("notes"), - "summary": summary(path=path), + "summary": session_summary, + "fig_success_pie": plots.plot_success_pie( + session_summary.get("correct", 0), + session_summary.get("incorrect", 0), + session_summary.get("miss", 0), + as_html=True, + ), + "fig_success_pie_wc": plots.plot_success_pie( + session_summary.get("correct_wc", 0), + session_summary.get("incorrect_wc", 0), + session_summary.get("miss_wc", 0), + as_html=True, + ), + "fig_cued_pie": plots.plot_cued_pie(session_summary.get("cued"), session_summary.get("precued"), as_html=True), + "fig_cued_pie_wc": plots.plot_cued_pie( + session_summary.get("cued_wc"), session_summary.get("precued"), as_html=True + ), } - out_path = output_dir / Path(path.split(os.sep)[-1].replace(".h5", "_report.html")) + out_path = output_dir / Path(path.split(os.sep)[-1].replace(".json", "_report.html")) out_path.write_text(template.render(template_identifiers), encoding="utf-8") return str(out_path) diff --git a/src/visiomode_analysis/session/plots.py b/src/visiomode_analysis/session/plots.py index e69de29..50fa3ab 100644 --- a/src/visiomode_analysis/session/plots.py +++ b/src/visiomode_analysis/session/plots.py @@ -0,0 +1,78 @@ +# Copyright (c) 2026 Constantinos Eleftheriou . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of this +# software and associated documentation files (the "Software"), to deal in the +# Software without restriction, including without limitation the rights to use, copy, +# modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +# and to permit persons to whom the Software is furnished to do so, subject to the +# following conditions: +# +# The above copyright notice and this permission notice shall be included in all copies +# or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +# IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import plotly.express as px +import plotly.graph_objects as go + + +def plot_success_pie(num_correct, num_incorrect, num_miss, as_html=False) -> str | go.Figure: + labels = ["Correct", "Incorrect", "No response"] + values = [num_correct, num_incorrect, num_miss] + fig = go.Figure( + go.Pie( + labels=labels, + values=values, + ), + layout=go.Layout( + margin={"l": 20, "r": 20, "t": 20, "b": 20}, + ), + ) + if as_html: + return fig.to_html(full_html=False) + return fig + + +def plot_cued_pie(num_cued, num_precued, as_html=False) -> str | go.Figure: + labels = ["Cued", "Uncued"] + values = [num_cued, num_precued] + fig = go.Figure( + go.Pie( + labels=labels, + values=values, + marker={ + "colors": [ + "darkgreen", + "darkorange", + ] + }, + ), + layout=go.Layout( + margin={"l": 20, "r": 20, "t": 20, "b": 20}, + ), + ) + if as_html: + return fig.to_html(full_html=False) + return fig + + +def plot_correction_pie(num_random, num_correction, as_html=False) -> str | go.Figure: ... + + +def plot_rt_median(rts, as_html=False) -> str | go.Figure: ... + + +def plot_rt_distribution(rts, as_html=False) -> str | go.Figure: ... + + +def plot_roc(hit_rate, fa_rate, as_html=False) -> str | go.Figure: ... + + +def plot_sdt_pie(num_hits, num_false_alarms, num_correct_rejections, num_misses, as_html=False) -> str | go.Figure: ... From 7a41bca6d2720885e746d1a7c34db715a57f1b3c Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 17 Feb 2026 14:19:10 +0000 Subject: [PATCH 22/64] rename bias to criterion --- src/visiomode_analysis/session/__init__.py | 4 ++-- src/visiomode_analysis/session/metrics.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 6d6975d..c20d7f5 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -258,8 +258,8 @@ def summary(path: str) -> dict: d_prime = metrics.d_prime(hit_rate, fa_rate, afc_correction=_is_2afc) d_prime_wc = metrics.d_prime(hit_rate_wc, fa_rate_wc, afc_correction=_is_2afc) - bias = metrics.bias(hit_rate, fa_rate) - bias_wc = metrics.bias(hit_rate_wc, fa_rate_wc) + bias = metrics.criterion(hit_rate, fa_rate) + bias_wc = metrics.criterion(hit_rate_wc, fa_rate_wc) # Perseveration perseveration = metrics.perseveration(num_correction_trials=correction_trials, num_incorrect=incorrect_wc) diff --git a/src/visiomode_analysis/session/metrics.py b/src/visiomode_analysis/session/metrics.py index 961c2d0..2400731 100644 --- a/src/visiomode_analysis/session/metrics.py +++ b/src/visiomode_analysis/session/metrics.py @@ -21,7 +21,7 @@ def d_prime(hit_rate: float, fa_rate: float, afc_correction: bool = False) -> fl return d_prime -def bias(hit_rate: float, fa_rate: float) -> float: +def criterion(hit_rate: float, fa_rate: float) -> float: if hit_rate == 0 and fa_rate == 0: raise ValueError("Cannot calculate C with hit and false alarm rates of zero.") From 96f2e9426638626d930902a89c7097e8e6a59063 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 17 Feb 2026 16:55:24 +0000 Subject: [PATCH 23/64] add RT plots --- .../reports/templates/session.html | 12 +++- src/visiomode_analysis/session/__init__.py | 37 +++++++++- src/visiomode_analysis/session/plots.py | 72 ++++++++++++++++++- 3 files changed, 116 insertions(+), 5 deletions(-) diff --git a/src/visiomode_analysis/reports/templates/session.html b/src/visiomode_analysis/reports/templates/session.html index 7e82ade..9c7aa99 100644 --- a/src/visiomode_analysis/reports/templates/session.html +++ b/src/visiomode_analysis/reports/templates/session.html @@ -50,7 +50,7 @@

Protocol spec

Inter-trial Interval: {{ iti or "Unknown" }} ms
- Correction trials: {{ corrections_enabled or "Unknown" }} + Correction trials: {{ corrections_enabled }}
Notes: @@ -101,16 +101,22 @@
Timedelta series

Session metrics

+ {% if corrections_enabled %}

Random presentation only


+ {% endif %}
Cue response breakdown
{{ fig_success_pie | safe }}
Cued:uncued response ratio
{{ fig_cued_pie | safe }}
+ +
Median reaction time
+
{{ fig_rt_median | safe }}
+ {% if corrections_enabled %}

Correction trials included


@@ -120,7 +126,11 @@
Cue response breakdown
Cued:uncued response ratio
{{ fig_cued_pie_wc | safe }}
+ +
Median reaction time
+
{{ fig_rt_median_wc | safe }}
+ {% endif %}
diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index c20d7f5..9732ce8 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -96,7 +96,7 @@ def get_metadata(path: str) -> dict: reward_profile = session_data.get("spec", {}).get("reward_profile", "unknown") stimulus_duration = float(session_data.get("spec", {}).get("stimulus_duration", -1)) iti = float(session_data.get("spec", {}).get("iti", -1)) - corrections_enabled = session_data.get("spec", {}).get("corrections_enabled", "unknown") + corrections_enabled = session_data.get("spec", {}).get("corrections_enabled", False) stimuli = { "target_id": session_data.get("spec", {}).get("target"), **{ @@ -200,9 +200,12 @@ def get_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd.Dat return df -def get_rts(path: str, sdt_type=None) -> npt.NDArray: +def get_rts(path: str, sdt_type=None, include_corrections=True) -> npt.NDArray: trials = get_trials(path=path) + if not include_corrections: + trials = trials[trials.correction == False] # noqa: E712 + if sdt_type: return np.array(trials[(trials.response.notnull()) & (trials.sdt_type == sdt_type)].response_time.values) @@ -379,6 +382,36 @@ def generate_report(path: str, output_dir: str = ".") -> str: "fig_cued_pie_wc": plots.plot_cued_pie( session_summary.get("cued_wc"), session_summary.get("precued"), as_html=True ), + "fig_rt_median": plots.plot_rt_median( + get_rts(path=path, include_corrections=False), + stimulus_duration=metadata.get("stimulus_duration", 4000) / 1000, + as_html=True, + ) + if metadata.get("protocol") == "targetonly" + else plots.plot_rt_medians_from_dict( + { + "all": get_rts(path=path, include_corrections=False), + "hits": get_rts(path=path, sdt_type="hit", include_corrections=False), + "false_alarms": get_rts(path=path, sdt_type="false_alarm", include_corrections=False), + }, + stimulus_duration=metadata.get("stimulus_duration", 4000) / 1000, + as_html=True, + ), + "fig_rt_median_wc": plots.plot_rt_median( + get_rts(path=path, include_corrections=True), + stimulus_duration=metadata.get("stimulus_duration", 4000) / 1000, + as_html=True, + ) + if metadata.get("protocol") == "targetonly" + else plots.plot_rt_medians_from_dict( + { + "all": get_rts(path=path, include_corrections=True), + "hits": get_rts(path=path, sdt_type="hit", include_corrections=True), + "false_alarms": get_rts(path=path, sdt_type="false_alarm", include_corrections=True), + }, + stimulus_duration=metadata.get("stimulus_duration", 4000) / 1000, + as_html=True, + ), } out_path = output_dir / Path(path.split(os.sep)[-1].replace(".json", "_report.html")) diff --git a/src/visiomode_analysis/session/plots.py b/src/visiomode_analysis/session/plots.py index 50fa3ab..8115e58 100644 --- a/src/visiomode_analysis/session/plots.py +++ b/src/visiomode_analysis/session/plots.py @@ -22,6 +22,8 @@ import plotly.express as px import plotly.graph_objects as go +import numpy as np + def plot_success_pie(num_correct, num_incorrect, num_miss, as_html=False) -> str | go.Figure: labels = ["Correct", "Incorrect", "No response"] @@ -63,10 +65,76 @@ def plot_cued_pie(num_cued, num_precued, as_html=False) -> str | go.Figure: return fig -def plot_correction_pie(num_random, num_correction, as_html=False) -> str | go.Figure: ... +def plot_correction_pie(num_random, num_correction, as_html=False) -> str | go.Figure: + labels = ["Random", "Correction"] + values = [num_random, num_correction] + fig = go.Figure( + go.Pie( + labels=labels, + values=values, + marker={ + "colors": [ + "lightgreen", + "lightred", + ] + }, + ), + layout=go.Layout( + margin={"l": 20, "r": 20, "t": 20, "b": 20}, + ), + ) + if as_html: + return fig.to_html(full_html=False) + return fig -def plot_rt_median(rts, as_html=False) -> str | go.Figure: ... +def plot_rt_median(rts, stimulus_duration=4, as_html=False) -> str | go.Figure: + fig = go.Figure( + go.Scatter( + y=[np.median(rts)], + error_y=dict( + type="data", + symmetric=False, + array=[np.percentile(rts, 75)], + arrayminus=[ + np.percentile(rts, 25), + ], + ), + ), + layout=go.Layout( + margin={"l": 20, "r": 20, "t": 20, "b": 20}, + ), + layout_yaxis_range=[0, stimulus_duration], + ) + fig.update_xaxes(showticklabels=False) + + if as_html: + return fig.to_html(full_html=False) + return fig + + +def plot_rt_medians_from_dict(rt_dict: dict, stimulus_duration: int = 4, as_html=True) -> str | go.Figure: + fig = go.Figure( + go.Scatter( + y=[np.median(rt) for rt in rt_dict.values()], + x=[key for key in rt_dict.keys()], + error_y=dict( + type="data", + symmetric=False, + array=[np.percentile(rt, 75) for rt in rt_dict.values()], + arrayminus=[np.percentile(rt, 25) for rt in rt_dict.values()], + ), + mode="markers", + ), + layout=go.Layout( + margin={"l": 20, "r": 20, "t": 20, "b": 20}, + ), + layout_yaxis_range=[0, stimulus_duration], + ) + + if as_html: + return fig.to_html(full_html=False) + return fig def plot_rt_distribution(rts, as_html=False) -> str | go.Figure: ... From 909cb69ddd66ba61ea5eb1c17e1547151320cdb1 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 18 Feb 2026 10:39:43 +0000 Subject: [PATCH 24/64] add correction trial metrics --- .../reports/templates/session.html | 26 ++++++++++++++++--- src/visiomode_analysis/session/__init__.py | 11 +++++++- src/visiomode_analysis/session/plots.py | 15 +++++++++++ 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/src/visiomode_analysis/reports/templates/session.html b/src/visiomode_analysis/reports/templates/session.html index 9c7aa99..0d4cb74 100644 --- a/src/visiomode_analysis/reports/templates/session.html +++ b/src/visiomode_analysis/reports/templates/session.html @@ -102,14 +102,14 @@

Session metrics

{% if corrections_enabled %} -

Random presentation only

+

Random presentations only


{% endif %}
Cue response breakdown
{{ fig_success_pie | safe }}
-
Cued:uncued response ratio
+
Cued:uncued response breakdown
{{ fig_cued_pie | safe }}
Median reaction time
@@ -118,18 +118,36 @@
Median reaction time
{% if corrections_enabled %}
-

Correction trials included

+

All presentations (including correction trials)


Cue response breakdown
{{ fig_success_pie_wc | safe }}
-
Cued:uncued response ratio
+
Cued:uncued response breakdown
{{ fig_cued_pie_wc | safe }}
Median reaction time
{{ fig_rt_median_wc | safe }}
+ +
+

Correction trial metrics

+ + +
+
Presentation breakdown
+
{{ fig_presentation_breakdown | safe }}
+
+
+
Presentation ratio
+
{{ fig_presentation_ratio | safe }}
+
+
+
Perseveration index
+
{{ fig_perseveration_index | safe }}
+
+
{% endif %}
diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 9732ce8..da3113d 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -248,7 +248,7 @@ def summary(path: str) -> dict: percentage_correct_wc = (correct_wc / cued_wc) * 100 cued_ratio = cued / precued if precued > 0 else 1.0 - correction_ratio = correction_trials / incorrect if incorrect > 0 else 0.0 + correction_ratio = cued / correction_trials if correction_trials > 0 else 0.0 # Signal detection theory metrics _is_2afc = True if "afc" in metadata.get("protocol", "") else False @@ -412,6 +412,15 @@ def generate_report(path: str, output_dir: str = ".") -> str: stimulus_duration=metadata.get("stimulus_duration", 4000) / 1000, as_html=True, ), + "fig_presentation_breakdown": plots.plot_correction_pie( + session_summary.get("cued", 0), session_summary.get("correction_trials"), as_html=True + ), + "fig_presentation_ratio": plots.plot_single_yvalue( + session_summary.get("correction_ratio", 0), 0, 5, as_html=True + ), + "fig_perseveration_index": plots.plot_single_yvalue( + session_summary.get("perseveration", 0), 0, 1, as_html=True + ), } out_path = output_dir / Path(path.split(os.sep)[-1].replace(".json", "_report.html")) diff --git a/src/visiomode_analysis/session/plots.py b/src/visiomode_analysis/session/plots.py index 8115e58..67041c3 100644 --- a/src/visiomode_analysis/session/plots.py +++ b/src/visiomode_analysis/session/plots.py @@ -140,6 +140,21 @@ def plot_rt_medians_from_dict(rt_dict: dict, stimulus_duration: int = 4, as_html def plot_rt_distribution(rts, as_html=False) -> str | go.Figure: ... +def plot_single_yvalue(value, ymin=0, ymax=1, as_html=False): + fig = go.Figure( + go.Scatter(y=[value], marker={"symbol": "x", "size": 12}), + layout=go.Layout( + margin={"l": 20, "r": 20, "t": 20, "b": 20}, + ), + layout_yaxis_range=[ymin, ymax], + ) + fig.update_xaxes(showticklabels=False) + + if as_html: + return fig.to_html(full_html=False) + return fig + + def plot_roc(hit_rate, fa_rate, as_html=False) -> str | go.Figure: ... From a62f6b75c08004d63b906d6856887375e9c3fd4e Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 18 Feb 2026 12:59:08 +0000 Subject: [PATCH 25/64] formatting --- .../reports/templates/session.html | 18 +++++++++--------- src/visiomode_analysis/session/plots.py | 5 ++++- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/visiomode_analysis/reports/templates/session.html b/src/visiomode_analysis/reports/templates/session.html index 0d4cb74..3ad4e59 100644 --- a/src/visiomode_analysis/reports/templates/session.html +++ b/src/visiomode_analysis/reports/templates/session.html @@ -107,13 +107,13 @@

Random presentations only

{% endif %}
Cue response breakdown
-
{{ fig_success_pie | safe }}
+ {{ fig_success_pie | safe }}
Cued:uncued response breakdown
-
{{ fig_cued_pie | safe }}
+ {{ fig_cued_pie | safe }}
Median reaction time
-
{{ fig_rt_median | safe }}
+ {{ fig_rt_median | safe }}
{% if corrections_enabled %} @@ -122,13 +122,13 @@

All presentations (including correction trials)


Cue response breakdown
-
{{ fig_success_pie_wc | safe }}
+ {{ fig_success_pie_wc | safe }}
Cued:uncued response breakdown
-
{{ fig_cued_pie_wc | safe }}
+ {{ fig_cued_pie_wc | safe }}
Median reaction time
-
{{ fig_rt_median_wc | safe }}
+ {{ fig_rt_median_wc | safe }}
@@ -137,15 +137,15 @@

Correction trial metrics

Presentation breakdown
-
{{ fig_presentation_breakdown | safe }}
+ {{ fig_presentation_breakdown | safe }}
Presentation ratio
-
{{ fig_presentation_ratio | safe }}
+ {{ fig_presentation_ratio | safe }}
Perseveration index
-
{{ fig_perseveration_index | safe }}
+ {{ fig_perseveration_index | safe }}
{% endif %} diff --git a/src/visiomode_analysis/session/plots.py b/src/visiomode_analysis/session/plots.py index 67041c3..b175072 100644 --- a/src/visiomode_analysis/session/plots.py +++ b/src/visiomode_analysis/session/plots.py @@ -142,7 +142,10 @@ def plot_rt_distribution(rts, as_html=False) -> str | go.Figure: ... def plot_single_yvalue(value, ymin=0, ymax=1, as_html=False): fig = go.Figure( - go.Scatter(y=[value], marker={"symbol": "x", "size": 12}), + go.Scatter( + y=[value], + marker={"symbol": "x", "size": 12}, + ), layout=go.Layout( margin={"l": 20, "r": 20, "t": 20, "b": 20}, ), From 549c79f7a65acb3485fc28f60b76b920abdcd41c Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 18 Feb 2026 17:07:50 +0000 Subject: [PATCH 26/64] add sdt plots --- .../reports/templates/session.html | 115 ++++++++++---- src/visiomode_analysis/session/__init__.py | 37 ++++- src/visiomode_analysis/session/plots.py | 140 +++++++++++++++++- 3 files changed, 249 insertions(+), 43 deletions(-) diff --git a/src/visiomode_analysis/reports/templates/session.html b/src/visiomode_analysis/reports/templates/session.html index 3ad4e59..6f0da44 100644 --- a/src/visiomode_analysis/reports/templates/session.html +++ b/src/visiomode_analysis/reports/templates/session.html @@ -78,7 +78,7 @@

Protocol spec

-

Trials summary

+

Summary

Timestamp series
@@ -100,68 +100,121 @@
Timedelta series

Session metrics

-
+
{% if corrections_enabled %} -

Random presentations only

-
+
+

Random presentations only

+
{% endif %} -
Cue response breakdown
- {{ fig_success_pie | safe }} +
+
Cue response breakdown
+ {{ fig_success_pie | safe }} +
-
Cued:uncued response breakdown
- {{ fig_cued_pie | safe }} +
+
Cued:uncued response breakdown
+ {{ fig_cued_pie | safe }} +
-
Median reaction time
- {{ fig_rt_median | safe }} +
+
Median reaction time
+ {{ fig_rt_median | safe }} +
{% if corrections_enabled %} -
-

All presentations (including correction trials)

-
+
+
+

All presentations (including correction trials)

+
-
Cue response breakdown
- {{ fig_success_pie_wc | safe }} +
+
Cue response breakdown (all trials)
+ {{ fig_success_pie_wc | safe }} +
-
Cued:uncued response breakdown
- {{ fig_cued_pie_wc | safe }} +
+
Cued:uncued response breakdown (all trials)
+ {{ fig_cued_pie_wc | safe }} +
-
Median reaction time
- {{ fig_rt_median_wc | safe }} +
+
Median reaction time (all trials)
+ {{ fig_rt_median_wc | safe }} +
+
+

Correction trial metrics

-
-
Presentation breakdown
- {{ fig_presentation_breakdown | safe }} +
+
+
Presentation breakdown
+ {{ fig_presentation_breakdown | safe }} +
-
-
Presentation ratio
- {{ fig_presentation_ratio | safe }} +
+
+
Presentation ratio
+ {{ fig_presentation_ratio | safe }} +
-
-
Perseveration index
- {{ fig_perseveration_index | safe }} +
+
+
Perseveration index
+ {{ fig_perseveration_index | safe }} +
{% endif %}
+
+ +{% if protocol != "targetonly"%}

SDT metrics

-
- +
+
+
ROC curve
+ {{ fig_roc | safe }} +
+
+
Discriminability index (d')
+ {{ fig_d_prime | safe }} +
+
+
Decision criterion
+ {{ fig_decision_criterion | safe }} +
-
+
+
+
+
Response type breakdown
+ {{ fig_response_sdt | safe }} +
+
+ {% if corrections_enabled %} +
+
+
Response type breakdown (all trials)
+ {{ fig_response_sdt_wc | safe }} +
+
+ {% endif %}
+ +
+{% endif %}

Trial timeseries

diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index da3113d..c9af2a4 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -261,8 +261,8 @@ def summary(path: str) -> dict: d_prime = metrics.d_prime(hit_rate, fa_rate, afc_correction=_is_2afc) d_prime_wc = metrics.d_prime(hit_rate_wc, fa_rate_wc, afc_correction=_is_2afc) - bias = metrics.criterion(hit_rate, fa_rate) - bias_wc = metrics.criterion(hit_rate_wc, fa_rate_wc) + decision_criterion = metrics.criterion(hit_rate, fa_rate) + decision_criterion_wc = metrics.criterion(hit_rate_wc, fa_rate_wc) # Perseveration perseveration = metrics.perseveration(num_correction_trials=correction_trials, num_incorrect=incorrect_wc) @@ -330,8 +330,8 @@ def summary(path: str) -> dict: "fa_rate_wc": fa_rate_wc, "d_prime": d_prime, "d_prime_wc": d_prime_wc, - "bias": bias, - "bias_wc": bias_wc, + "decision_criterion": decision_criterion, + "decision_criterion_wc": decision_criterion_wc, "perseveration": perseveration, "rt": rt, "rt_wc": rt_wc, @@ -421,6 +421,35 @@ def generate_report(path: str, output_dir: str = ".") -> str: "fig_perseveration_index": plots.plot_single_yvalue( session_summary.get("perseveration", 0), 0, 1, as_html=True ), + "fig_roc": plots.plot_roc( + hit_rate=session_summary.get("hit_rate", 0), + fa_rate=session_summary.get("fa_rate", 0), + hit_rate_wc=session_summary.get("hit_rate_wc", 0), + fa_rate_wc=session_summary.get("fa_rate_wc", 0), + as_html=True, + ), + "fig_d_prime": plots.plot_dprime( + d_prime=session_summary.get("d_prime", 0), d_prime_wc=session_summary.get("d_prime_wc", None), as_html=True + ), + "fig_decision_criterion": plots.plot_criterion( + criterion=session_summary.get("decision_criterion", 0), + criterion_wc=session_summary.get("decision_criterion_wc", None), + as_html=True, + ), + "fig_response_sdt": plots.plot_sdt_pie( + num_hits=session_summary.get("hits", 0), + num_false_alarms=session_summary.get("false_alarms", 0), + num_correct_rejections=session_summary.get("correct_rejections", 0), + num_misses=session_summary.get("misses", 0), + as_html=True, + ), + "fig_response_sdt_wc": plots.plot_sdt_pie( + num_hits=session_summary.get("hits_wc", 0), + num_false_alarms=session_summary.get("false_alarms_wc", 0), + num_correct_rejections=session_summary.get("correct_rejections_wc", 0), + num_misses=session_summary.get("misses_wc", 0), + as_html=True, + ), } out_path = output_dir / Path(path.split(os.sep)[-1].replace(".json", "_report.html")) diff --git a/src/visiomode_analysis/session/plots.py b/src/visiomode_analysis/session/plots.py index b175072..5bf0ca6 100644 --- a/src/visiomode_analysis/session/plots.py +++ b/src/visiomode_analysis/session/plots.py @@ -32,6 +32,7 @@ def plot_success_pie(num_correct, num_incorrect, num_miss, as_html=False) -> str go.Pie( labels=labels, values=values, + marker={"colors": ["green", "salmon", "gold"]}, ), layout=go.Layout( margin={"l": 20, "r": 20, "t": 20, "b": 20}, @@ -51,8 +52,8 @@ def plot_cued_pie(num_cued, num_precued, as_html=False) -> str | go.Figure: values=values, marker={ "colors": [ - "darkgreen", - "darkorange", + "skyblue", + "violet", ] }, ), @@ -74,8 +75,8 @@ def plot_correction_pie(num_random, num_correction, as_html=False) -> str | go.F values=values, marker={ "colors": [ - "lightgreen", - "lightred", + "slateblue", + "orange", ] }, ), @@ -140,7 +141,7 @@ def plot_rt_medians_from_dict(rt_dict: dict, stimulus_duration: int = 4, as_html def plot_rt_distribution(rts, as_html=False) -> str | go.Figure: ... -def plot_single_yvalue(value, ymin=0, ymax=1, as_html=False): +def plot_single_yvalue(value, ymin=0.0, ymax=1.0, as_html=False): fig = go.Figure( go.Scatter( y=[value], @@ -149,7 +150,10 @@ def plot_single_yvalue(value, ymin=0, ymax=1, as_html=False): layout=go.Layout( margin={"l": 20, "r": 20, "t": 20, "b": 20}, ), - layout_yaxis_range=[ymin, ymax], + layout_yaxis_range=[ + ymin if ymin < value else value * 1.25, + ymax if value < ymax else value * 1.25, + ], ) fig.update_xaxes(showticklabels=False) @@ -158,7 +162,127 @@ def plot_single_yvalue(value, ymin=0, ymax=1, as_html=False): return fig -def plot_roc(hit_rate, fa_rate, as_html=False) -> str | go.Figure: ... +def plot_roc(hit_rate, fa_rate, hit_rate_wc=None, fa_rate_wc=None, as_html=False) -> str | go.Figure: + fig = go.Figure( + layout=go.Layout( + margin={"l": 40, "r": 40, "t": 40, "b": 40}, + ), + layout_yaxis_range=[0, 1], + layout_xaxis_range=[0, 1], + ) + fig.add_trace( + go.Scatter( + x=[fa_rate], + y=[hit_rate], + marker={"symbol": "x", "size": 12, "color": "slateblue"}, + name="Random", + ), + ) + + fig.update_layout( + shapes=[ + dict( + type="line", + yref="y", + y0=0, + y1=1, + xref="x", + x0=0, + x1=1, + line_dash="dash", + opacity=0.8, + fillcolor="grey", + ) + ], + xaxis={"title": "FA rate"}, + yaxis={"title": "Hit rate"}, + ) + + if hit_rate_wc and fa_rate_wc: + fig.add_trace( + go.Scatter( + x=[fa_rate_wc], + y=[hit_rate_wc], + marker={"symbol": "x", "size": 12, "color": "orange"}, + name="All", + ), + ) + + fig.update_layout(showlegend=True if hit_rate_wc else False) + fig.update_xaxes(constrain="domain") + fig.update_yaxes(scaleanchor="x") + + if as_html: + return fig.to_html(full_html=False) + return fig + + +def plot_dprime(d_prime, d_prime_wc=None, as_html=False): + fig = go.Figure( + go.Scatter( + y=[d_prime], + marker={"symbol": "x", "size": 12, "color": "slateblue"}, + name="d'", + ), + layout=go.Layout( + margin={"l": 20, "r": 20, "t": 20, "b": 20}, + ), + layout_yaxis_range=[-0.25, 4.25], + ) + + fig.add_hline(y=1.5, line_color="grey", opacity=0.8, line_dash="dash") + fig.add_hline(y=0.0, line_color="darkred", opacity=0.8) + fig.update_xaxes(showticklabels=False) + + if d_prime_wc: + fig.add_trace( + go.Scatter(y=[d_prime_wc], marker={"symbol": "x", "size": 12, "color": "orange"}, name="d' (all)"), + ) + + if as_html: + return fig.to_html(full_html=False) + return fig + + +def plot_criterion(criterion, criterion_wc=None, as_html=False): + fig = go.Figure( + go.Scatter( + y=[criterion], + marker={"symbol": "x", "size": 12, "color": "slateblue"}, + name="C", + ), + layout=go.Layout( + margin={"l": 20, "r": 20, "t": 20, "b": 20}, + ), + layout_yaxis_range=[-3.25, 3.25], + ) + + fig.add_hline(y=0.0, line_color="grey", opacity=0.8, line_dash="dash") + fig.update_xaxes(showticklabels=False) + + if criterion_wc: + fig.add_trace( + go.Scatter(y=[criterion_wc], marker={"symbol": "x", "size": 12, "color": "orange"}, name="C (all)"), + ) + + if as_html: + return fig.to_html(full_html=False) + return fig -def plot_sdt_pie(num_hits, num_false_alarms, num_correct_rejections, num_misses, as_html=False) -> str | go.Figure: ... +def plot_sdt_pie(num_hits, num_false_alarms, num_correct_rejections, num_misses, as_html=False) -> str | go.Figure: + labels = ["Hits", "False alarms", "Correct rejections", "Misses"] + values = [num_hits, num_false_alarms, num_correct_rejections, num_misses] + fig = go.Figure( + go.Pie( + labels=labels, + values=values, + marker={"colors": ["darkgreen", "darksalmon", "lightgreen", "gold"]}, + ), + layout=go.Layout( + margin={"l": 20, "r": 20, "t": 20, "b": 20}, + ), + ) + if as_html: + return fig.to_html(full_html=False) + return fig From a50373bb4f214692e69a6ec1c8cebc31a06b5750 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 18 Feb 2026 17:58:34 +0000 Subject: [PATCH 27/64] add timeseries --- .../reports/templates/session.html | 16 ++++-- src/visiomode_analysis/session/__init__.py | 8 ++- src/visiomode_analysis/session/plots.py | 54 +++++++++++++++++++ 3 files changed, 72 insertions(+), 6 deletions(-) diff --git a/src/visiomode_analysis/reports/templates/session.html b/src/visiomode_analysis/reports/templates/session.html index 6f0da44..6fe1a41 100644 --- a/src/visiomode_analysis/reports/templates/session.html +++ b/src/visiomode_analysis/reports/templates/session.html @@ -219,13 +219,21 @@
Response type breakdown (all trials)

Trial timeseries

-
- +
+
+
Response timeseries
+ {{ fig_response_timeseries | safe }} +
-
- + {% if protocol != "targetonly"%} +
+
+
SDT timeseries
+ {{ fig_sdt_timeseries | safe }} +
+ {% endif %}
diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index c9af2a4..9aebb09 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -348,7 +348,7 @@ def generate_report(path: str, output_dir: str = ".") -> str: template = env.get_template(SESSION_REPORT_TEMPLATE) metadata = get_metadata(path) - + trials = get_trials(path) session_summary = summary(path=path) template_identifiers = { @@ -450,9 +450,13 @@ def generate_report(path: str, output_dir: str = ".") -> str: num_misses=session_summary.get("misses_wc", 0), as_html=True, ), + "fig_response_timeseries": plots.plot_trial_timeseries(trials=trials, as_html=True), + "fig_sdt_timeseries": plots.plot_trial_timeseries(trials=trials, use_sdt=True, as_html=True), } - out_path = output_dir / Path(path.split(os.sep)[-1].replace(".json", "_report.html")) + out_path = Path( + f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date'))}_behaviour-{metadata.get('environment')}_report-session.html" + ) out_path.write_text(template.render(template_identifiers), encoding="utf-8") return str(out_path) diff --git a/src/visiomode_analysis/session/plots.py b/src/visiomode_analysis/session/plots.py index 5bf0ca6..de8cd73 100644 --- a/src/visiomode_analysis/session/plots.py +++ b/src/visiomode_analysis/session/plots.py @@ -24,6 +24,19 @@ import numpy as np +OUTCOME_COLORS = { + "correct": "green", + "incorrect": "salmon", + "no_response": "gold", + "precued": "violet", +} +SDT_COLORS = { + "hit": "darkgreen", + "false_alarm": "darksalmon", + "correct_rejection": "lightgreen", + "miss": "gold", +} + def plot_success_pie(num_correct, num_incorrect, num_miss, as_html=False) -> str | go.Figure: labels = ["Correct", "Incorrect", "No response"] @@ -286,3 +299,44 @@ def plot_sdt_pie(num_hits, num_false_alarms, num_correct_rejections, num_misses, if as_html: return fig.to_html(full_html=False) return fig + + +def plot_trial_timeseries(trials, use_sdt=False, as_html=True): + fig = go.Figure( + layout=go.Layout( + margin={"l": 10, "r": 10, "t": 10, "b": 10}, + ), + ) + + if use_sdt: + for sdt_type in trials.sdt_type.unique(): + outcome_timestamps = trials[trials.sdt_type == sdt_type].stop_time.values + fig.add_trace( + go.Scatter( + mode="markers", + x=outcome_timestamps, + y=[0 for _ in outcome_timestamps], + marker={"symbol": "line-ns-open", "size": 20, "color": SDT_COLORS.get(sdt_type, "violet")}, + name=sdt_type, + ), + ) + else: + for outcome in trials.outcome.unique(): + outcome_timestamps = trials[trials.outcome == outcome].stop_time.values + fig.add_trace( + go.Scatter( + mode="markers", + x=outcome_timestamps, + y=[0 for _ in outcome_timestamps], + marker={"symbol": "line-ns-open", "size": 20, "color": OUTCOME_COLORS.get(outcome, "violet")}, + name=outcome, + ), + ) + + fig.update_yaxes(showticklabels=False) + fig.update_xaxes( + range=[0, max(trials.stop_time.values)], + ) + if as_html: + return fig.to_html(full_html=False) + return fig From af5b557149f3bed8010addb318508ad7b073b45a Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Thu, 19 Feb 2026 10:52:54 +0000 Subject: [PATCH 28/64] formatting --- src/visiomode_analysis/reports/templates/base.html | 2 +- src/visiomode_analysis/session/__init__.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/visiomode_analysis/reports/templates/base.html b/src/visiomode_analysis/reports/templates/base.html index 4ede349..7c23df2 100644 --- a/src/visiomode_analysis/reports/templates/base.html +++ b/src/visiomode_analysis/reports/templates/base.html @@ -234,7 +234,7 @@
- +

Session metrics

From 432709b3bb5d999925e9aec662595af7ed1bd7ad Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 6 Apr 2026 11:13:29 +0100 Subject: [PATCH 30/64] test session api changes --- exploratory/session-api.ipynb | 120 +++++++++++++++++++--------------- 1 file changed, 66 insertions(+), 54 deletions(-) diff --git a/exploratory/session-api.ipynb b/exploratory/session-api.ipynb index 8ad670c..1ea73dd 100644 --- a/exploratory/session-api.ipynb +++ b/exploratory/session-api.ipynb @@ -1059,81 +1059,93 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 17, "id": "2cf49e90", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([4.07241106, 1.12845564, 1.67067313, 0.75222349, 4.33570457,\n", - " 0.7189033 , 0.58157992, 2.88213277, 2.63856554, 1.02317667,\n", - " 1.09140873, 0.9076066 , 0.58795977, 4.16887856, 1.98388386,\n", - " 4.13092446, 2.37473297, 1.24363708, 3.61881399, 1.41790748,\n", - " 2.30536819, 1.13288021, 1.20492458, 3.61073375, 1.04348946,\n", - " 0.65499592, 4.88690519, 0.45944071, 0.26327109, 4.1907928 ,\n", - " 1.28396535, 0.87741184, 4.71368098, 0.49710107, 0.56599116,\n", - " 3.96820521, 0.84596944, 0.84112453, 2.24070811, 0.4502275 ,\n", - " 4.52497387, 1.91021109, 4.7808454 , 0.53104758, 3.80104113,\n", - " 4.97083807, 3.4667933 , 4.97263169, 1.20380449, 2.24275231,\n", - " 0.70769119, 3.00024486, 0.74060893, 1.39149141, 0.49157977,\n", - " 0.62760639, 3.75893068, 4.93779206, 0.50835109, 2.79456282,\n", - " 2.70379615, 4.39621902, 0.42487359, 0.82556057, 0.3984499 ,\n", - " 0.39205909, 3.59338832, 1.15440631, 0.7548151 , 2.94736958,\n", - " 0.44928479, 4.25651073, 4.84993005, 0.44550776, 4.41501546,\n", - " 1.14878488, 1.20520544, 1.94404197, 0.48086047, 0.41519713,\n", - " 3.11189342, 2.50167394, 1.25001621, 1.90612602, 2.55454922,\n", - " 0.99718571, 3.9491117 , 2.45025921, 0.58729029, 4.99543953,\n", - " 4.26249456, 0.4282968 , 0.55701089, 0.63315582, 1.15128708,\n", - " 3.36899853, 4.98766899, 1.20908475, 0.5712564 , 0.64555478,\n", - " 4.87757754, 0.09124446, 1.92507291, 0.84036136, 3.93655801,\n", - " 2.33175159, 4.35520911, 0.50356007, 1.43953085, 0.59616613,\n", - " 0.27872372, 1.51335716, 1.56289554, 1.20163512, 1.34386039,\n", - " 3.98109007, 2.26025271, 0.52169633, 1.84859204, 1.69420099,\n", - " 2.23984456, 0.65409708, 0.53360224, 0.94292784, 1.02442169,\n", - " 0.21108174, 1.55091906, 1.5925734 , 4.32582092, 4.57085657,\n", - " 3.78541541, 0.94771004, 4.44320798, 1.15262961, 1.20115519,\n", - " 1.18505335, 3.30752897, 2.55048108, 1.14897132, 1.20236063,\n", - " 0.1555655 , 2.78129268, 4.27481937, 3.32345533, 0.65784979,\n", - " 4.44314766, 4.16153049, 3.7884841 , 0.54014683, 4.30839348,\n", + "array([1.12845564, 1.67067313, 0.75222349, 0.7189033 , 0.58157992,\n", + " 2.63856554, 1.02317667, 1.09140873, 0.9076066 , 0.58795977,\n", + " 1.98388386, 3.61881399, 3.61073375, 1.04348946, 0.65499592,\n", + " 0.45944071, 0.26327109, 1.28396535, 0.87741184, 0.49710107,\n", + " 0.56599116, 0.84596944, 0.84112453, 0.4502275 , 1.91021109,\n", + " 0.53104758, 0.70769119, 3.00024486, 0.74060893, 0.49157977,\n", + " 0.62760639, 0.50835109, 0.42487359, 0.82556057, 0.3984499 ,\n", + " 0.39205909, 0.7548151 , 2.94736958, 0.44928479, 0.44550776,\n", + " 0.48086047, 0.41519713, 3.11189342, 2.50167394, 1.25001621,\n", + " 1.90612602, 0.99718571, 0.58729029, 0.4282968 , 0.55701089,\n", + " 0.63315582, 3.36899853, 0.5712564 , 0.64555478, 0.09124446,\n", + " 0.84036136, 0.50356007, 0.59616613, 0.27872372, 1.51335716,\n", + " 1.34386039, 2.26025271, 0.52169633, 1.84859204, 0.65409708,\n", + " 0.53360224, 0.94292784, 1.02442169, 0.21108174, 1.5925734 ,\n", + " 0.94771004, 0.1555655 , 3.32345533, 0.65784979, 0.54014683,\n", " 0.4714303 , 0.78326321, 0.84392142, 0.15697026, 0.49913096,\n", - " 0.54947042, 0.24266291, 0.75799584, 4.20637345, 0.5250001 ,\n", - " 0.21599102, 4.66748548, 0.46551609, 4.86538315, 2.40262961,\n", - " 0.71576905, 3.57817006, 0.87470198, 1.67346835, 0.66445208,\n", - " 1.33302426, 0.60051966, 4.73484063, 4.24502659, 1.68480587,\n", - " 2.72074294, 1.64150071, 0.4529109 , 0.29112673, 3.2855885 ,\n", - " 1.86356854, 4.91667008, 1.14188719, 1.89332247, 2.44906521,\n", - " 3.3949523 , 1.99941421, 2.49013662, 1.15213466, 0.76729083,\n", - " 1.65594125, 0.72418523, 0.8692615 , 1.29176593, 4.54364276,\n", - " 0.87070751, 1.11195922, 4.67210031, 2.88435578, 0.66701508,\n", - " 3.50267959, 0.96783257, 4.31949472, 3.25162435, 1.75673079,\n", - " 0.72477078, 4.32014513, 0.73314214, 1.22932744, 1.12964392,\n", - " 1.51676321, 1.209373 , 4.43273258, 4.49052787, 4.66240954,\n", - " 1.91370678, 4.57442307, 4.11120605, 3.23936605, 0.14834547,\n", - " 0.0970118 , 1.24704385, 4.96767402, 0.89157176, 4.3455205 ,\n", - " 4.4390583 , 0.27321911, 4.19128919, 4.70305586, 1.15293193,\n", - " 1.19664454, 1.17845106, 1.20108986, 4.30042744, 4.44364333,\n", - " 1.85134625, 1.16960907, 4.97697544, 3.88323092, 1.68350267,\n", - " 4.8582201 , 0.51525855, 0.65883112, 4.66930079, 2.09194255,\n", - " 1.21377516, 0.91119289, 1.44596767, 0.83379054, 1.19682884,\n", - " 3.20701528, 2.79126048, 4.47202182, 0.82884383])" + " 0.54947042, 0.24266291, 0.75799584, 0.5250001 , 0.21599102,\n", + " 0.46551609, 0.71576905, 0.87470198, 0.66445208, 1.33302426,\n", + " 0.60051966, 1.68480587, 1.64150071, 0.4529109 , 0.29112673,\n", + " 3.2855885 , 1.86356854, 2.44906521, 3.3949523 , 1.99941421,\n", + " 0.76729083, 1.65594125, 0.72418523, 0.8692615 , 1.29176593,\n", + " 0.87070751, 1.11195922, 0.66701508, 0.96783257, 1.75673079,\n", + " 0.72477078, 0.73314214, 1.209373 , 1.91370678, 3.23936605,\n", + " 0.14834547, 0.0970118 , 1.24704385, 0.89157176, 0.27321911,\n", + " 1.85134625, 1.16960907, 0.51525855, 0.65883112, 0.91119289,\n", + " 1.44596767, 0.83379054, 3.20701528, 2.79126048, 0.82884383])" ] }, - "execution_count": 12, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trials = session.get_trials(path)\n", - "trials[(trials.response.notnull())].response_time.values" + "trials[(trials.response.notnull()) & (trials.cue_onset.notnull())].response_time.values" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "95529ecb", "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.75222349, 0.7189033 , 0.58157992, 2.63856554, 1.02317667,\n", + " 1.09140873, 0.9076066 , 0.58795977, 1.98388386, 3.61073375,\n", + " 1.04348946, 0.65499592, 0.49710107, 0.56599116, 1.91021109,\n", + " 0.53104758, 0.70769119, 3.00024486, 0.49157977, 0.39205909,\n", + " 0.7548151 , 2.94736958, 0.44928479, 0.41519713, 3.11189342,\n", + " 2.50167394, 1.25001621, 1.90612602, 0.99718571, 0.58729029,\n", + " 0.4282968 , 0.63315582, 3.36899853, 0.09124446, 0.50356007,\n", + " 0.59616613, 0.27872372, 1.51335716, 1.34386039, 2.26025271,\n", + " 0.52169633, 1.84859204, 0.65409708, 0.53360224, 0.94292784,\n", + " 0.94771004, 0.1555655 , 3.32345533, 0.65784979, 0.78326321,\n", + " 0.84392142, 0.15697026, 0.49913096, 0.54947042, 0.24266291,\n", + " 0.75799584, 0.21599102, 0.46551609, 0.66445208, 1.33302426,\n", + " 0.60051966, 1.64150071, 0.4529109 , 0.29112673, 3.2855885 ,\n", + " 1.86356854, 2.44906521, 3.3949523 , 1.99941421, 0.76729083,\n", + " 1.65594125, 0.72418523, 0.66701508, 0.72477078, 0.14834547,\n", + " 0.0970118 , 1.24704385, 0.83379054, 3.20701528, 2.79126048,\n", + " 0.82884383])" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "session.get_rts(path, \"false_alarm\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e951c2f0", + "metadata": {}, "outputs": [], "source": [] } From 37a07941cfb5db997e29cffd1b5d10c7c11ada70 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 6 Apr 2026 11:14:07 +0100 Subject: [PATCH 31/64] ignore csv and html outputs --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index fb1fc8a..39fdabe 100644 --- a/.gitignore +++ b/.gitignore @@ -162,3 +162,7 @@ cython_debug/ # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ + +# Ignore outputs +*.csv +*.html \ No newline at end of file From ec4f2d3bb8da7d422fa863cedabb169d767de58e Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 6 Apr 2026 15:01:11 +0100 Subject: [PATCH 32/64] summarise function parses both csv and json files --- src/visiomode_analysis/session/__init__.py | 26 ++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 73d8b2d..435d0c3 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -194,7 +194,7 @@ def get_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd.Dat df.outcome = df.outcome.replace({"hit": "correct", "false_alarm": "incorrect", "miss": "no_response"}) if to_csv: - out_path = f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date'))}_behaviour-{metadata.get('protocol')}_trials.csv" + out_path = f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date')).replace('-', '')}_behaviour-{metadata.get('protocol')}_trials.csv" df.to_csv(out_path) return df @@ -213,8 +213,26 @@ def get_rts(path: str, sdt_type=None, include_corrections=True) -> npt.NDArray: def summary(path: str) -> dict: - metadata = get_metadata(path) - df = get_trials(path) + """Summarise session from a JSON or trials.csv file + + Args: + path (str): Path to (preprocessed) trials.csv or raw JSON + + Returns: + dict: Summary dictionary + """ + if path.endswith(".json"): + metadata = get_metadata(path) + df = get_trials(path) + else: + df = pd.read_csv(path) + metadata = { + "animal_id": df["animal_id"][0], + "session_date": df["session_date"][0], + "protocol": df["protocol"][0], + "environment": df["environment"][0], + "experiment": df["experiment"][0], + } # Trial counts correct = len(df[(df.outcome == "correct") & (df.correction == False)]) # noqa: E712 @@ -455,7 +473,7 @@ def generate_report(path: str, output_dir: str = ".") -> str: } out_path = Path( - f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date'))}_behaviour-{metadata.get('protocol')}_report-session.html" + f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date')).replace('-', '')}_behaviour-{metadata.get('protocol')}_report-session.html" ) out_path.write_text(template.render(template_identifiers), encoding="utf-8") return str(out_path) From 9e7c0ad74fb02e56081ce326401d7b7bd12b781a Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 6 Apr 2026 15:01:23 +0100 Subject: [PATCH 33/64] add collate session function --- src/visiomode_analysis/subject/__init__.py | 48 +++++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/src/visiomode_analysis/subject/__init__.py b/src/visiomode_analysis/subject/__init__.py index dca65ce..cedbd8b 100644 --- a/src/visiomode_analysis/subject/__init__.py +++ b/src/visiomode_analysis/subject/__init__.py @@ -19,9 +19,53 @@ # IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. - +import os import click +import glob +import pandas as pd + +import visiomode_analysis.session as session @click.command("subject") -def subject_cmd(): ... +@click.argument( + "directory", + type=click.Path(exists=True, dir_okay=True, file_okay=False), +) +@click.option( + "-o", + "--output-dir", + type=click.Path(dir_okay=True), + default=".", + help="Output directory for report and trials files.", +) +def subject_cmd(**kwargs): ... + + +def collate_sessions(directory, output_dir: str | None) -> pd.DataFrame | tuple[pd.DataFrame, str]: + session_files = glob.glob(f"{directory}{os.sep}*trials.csv") + + if not session_files: + raise FileNotFoundError(f"No trials.csv files found in {directory}, did you forget to preprocess?") + + subject_sessions = [] + for session_file in session_files: + subject_sessions.append(session.summary(session_file)) + + subject_df = pd.DataFrame(subject_sessions) + + subject_df = subject_df.sort_values("session_date").reset_index(drop=True) + subject_df["session_id"] = subject_df.index + 1 + subject_df["task_session"] = subject_df.groupby(["animal_id", "protocol"], sort=False)["session_id"].rank( + ascending=True + ) + + metadata = { + "animal_id": subject_df["animal_id"][0], + "experiment": subject_df["experiment"][0], + } + + if output_dir: + out_path = f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_behaviour-summary.csv" + subject_df.to_csv(out_path) + return subject_df From 6a821b3314b2c8f2d463417224329876b5dadda3 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 6 Apr 2026 15:01:39 +0100 Subject: [PATCH 34/64] test different file inputs to summarise --- exploratory/session-api.ipynb | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/exploratory/session-api.ipynb b/exploratory/session-api.ipynb index 1ea73dd..9a99071 100644 --- a/exploratory/session-api.ipynb +++ b/exploratory/session-api.ipynb @@ -566,15 +566,15 @@ " 'percentage_correct': 60.396039603960396,\n", " 'percentage_correct_wc': 55.24861878453039,\n", " 'cued_ratio': 0.8145161290322581,\n", - " 'correction_ratio': 1.025,\n", + " 'correction_ratio': 2.4634146341463414,\n", " 'hit_rate': 0.99,\n", " 'hit_rate_wc': 0.99,\n", " 'fa_rate': 0.7641509433962265,\n", " 'fa_rate_wc': 0.6127819548872181,\n", " 'd_prime': 1.606629016515605,\n", " 'd_prime_wc': 2.039770694891421,\n", - " 'bias': -1.5230333657830384,\n", - " 'bias_wc': -1.3064625265951302,\n", + " 'decision_criterion': -1.5230333657830384,\n", + " 'decision_criterion_wc': -1.3064625265951302,\n", " 'perseveration': 0.5061728395061729,\n", " 'rt': 0.7579958438873291,\n", " 'rt_wc': 0.7752770185470581,\n", @@ -650,8 +650,8 @@ " 'fa_rate_wc': 0.5,\n", " 'd_prime': 0.5231924482394528,\n", " 'd_prime_wc': 0.5231924482394528,\n", - " 'bias': -0.2615962241197264,\n", - " 'bias_wc': -0.2615962241197264,\n", + " 'decision_criterion': -0.2615962241197264,\n", + " 'decision_criterion_wc': -0.2615962241197264,\n", " 'perseveration': 0.0,\n", " 'rt': 3.505884289741516,\n", " 'rt_wc': 3.505884289741516,\n", @@ -1059,7 +1059,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 12, "id": "2cf49e90", "metadata": {}, "outputs": [ @@ -1094,7 +1094,7 @@ " 1.44596767, 0.83379054, 3.20701528, 2.79126048, 0.82884383])" ] }, - "execution_count": 17, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -1106,7 +1106,17 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, + "id": "3e0e4839", + "metadata": {}, + "outputs": [], + "source": [ + "trials[\"animal_id\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, "id": "95529ecb", "metadata": {}, "outputs": [ @@ -1132,7 +1142,7 @@ " 0.82884383])" ] }, - "execution_count": 19, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } From 34119929ba24d80039dc9382fcd2373f1443f285 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 6 Apr 2026 15:01:50 +0100 Subject: [PATCH 35/64] test collate_session function --- exploratory/subject-api.ipynb | 286 ++++++++++++++++++++++++++++++++++ 1 file changed, 286 insertions(+) create mode 100644 exploratory/subject-api.ipynb diff --git a/exploratory/subject-api.ipynb b/exploratory/subject-api.ipynb new file mode 100644 index 0000000..adc837b --- /dev/null +++ b/exploratory/subject-api.ipynb @@ -0,0 +1,286 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 8, + "id": "e493393c", + "metadata": {}, + "outputs": [], + "source": [ + "from visiomode_analysis import subject, session\n", + "import glob\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "26289822", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/celefthe/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/numpy/_core/fromnumeric.py:3824: RuntimeWarning: Mean of empty slice\n", + " return _methods._mean(a, axis=axis, dtype=dtype,\n", + "/Users/celefthe/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/numpy/_core/_methods.py:142: RuntimeWarning: invalid value encountered in scalar divide\n", + " ret = ret.dtype.type(ret / rcount)\n", + "/Users/celefthe/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/numpy/_core/fromnumeric.py:3824: RuntimeWarning: Mean of empty slice\n", + " return _methods._mean(a, axis=axis, dtype=dtype,\n", + "/Users/celefthe/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/numpy/_core/_methods.py:142: RuntimeWarning: invalid value encountered in scalar divide\n", + " ret = ret.dtype.type(ret / rcount)\n" + ] + } + ], + "source": [ + "session_files = glob.glob(\"../*trials.csv\")\n", + "\n", + "subject_sessions = []\n", + "for session_file in session_files:\n", + " subject_sessions.append(session.summary(session_file))\n", + "\n", + "subject_df = pd.DataFrame(subject_sessions)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "7425be77", + "metadata": {}, + "outputs": [], + "source": [ + "subject_df = subject_df.sort_values(\"session_date\").reset_index(drop=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "a75a4dfa", + "metadata": {}, + "outputs": [], + "source": [ + "subject_df[\"session_id\"] = subject_df.index + 1" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "47220e55", + "metadata": {}, + "outputs": [], + "source": [ + "subject_df[\"task_session\"] = subject_df.groupby([\"animal_id\", \"protocol\"], sort=False)[\"session_id\"].rank(\n", + " ascending=True\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "30446ba6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animal_idsession_dateprotocolenvironmentexperimentcorrectcorrect_wcincorrectincorrect_wccorrection_trials...rtrt_wcrt_hitsrt_hits_wcrt_false_alarmsrt_false_alarms_wcrt_iqrrt_iqr_wcsession_idtask_session
0MM2292022-03-01targetonlyunknown109hrb21d166166000...3.5058843.5058843.5058843.505884NaNNaN4.2612294.26122911.0
1MM2292022-03-09gonogounknown109hrb21d61100408141...0.7579960.7752770.8411250.8411250.7244780.7548150.6941140.81463921.0
\n", + "

2 rows × 45 columns

\n", + "
" + ], + "text/plain": [ + " animal_id session_date protocol environment experiment correct \\\n", + "0 MM229 2022-03-01 targetonly unknown 109hrb21d 166 \n", + "1 MM229 2022-03-09 gonogo unknown 109hrb21d 61 \n", + "\n", + " correct_wc incorrect incorrect_wc correction_trials ... rt \\\n", + "0 166 0 0 0 ... 3.505884 \n", + "1 100 40 81 41 ... 0.757996 \n", + "\n", + " rt_wc rt_hits rt_hits_wc rt_false_alarms rt_false_alarms_wc \\\n", + "0 3.505884 3.505884 3.505884 NaN NaN \n", + "1 0.775277 0.841125 0.841125 0.724478 0.754815 \n", + "\n", + " rt_iqr rt_iqr_wc session_id task_session \n", + "0 4.261229 4.261229 1 1.0 \n", + "1 0.694114 0.814639 2 1.0 \n", + "\n", + "[2 rows x 45 columns]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "subject_df" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "77c4ffda", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['../sub-MM229_exp-109hrb21d_ses-20220309_behaviour-gonogo_trials.csv', '../sub-MM229_exp-109hrb21d_ses-20220301_behaviour-targetonly_trials.csv']\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/celefthe/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/numpy/_core/fromnumeric.py:3824: RuntimeWarning: Mean of empty slice\n", + " return _methods._mean(a, axis=axis, dtype=dtype,\n", + "/Users/celefthe/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/numpy/_core/_methods.py:142: RuntimeWarning: invalid value encountered in scalar divide\n", + " ret = ret.dtype.type(ret / rcount)\n", + "/Users/celefthe/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/numpy/_core/fromnumeric.py:3824: RuntimeWarning: Mean of empty slice\n", + " return _methods._mean(a, axis=axis, dtype=dtype,\n", + "/Users/celefthe/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/numpy/_core/_methods.py:142: RuntimeWarning: invalid value encountered in scalar divide\n", + " ret = ret.dtype.type(ret / rcount)\n" + ] + }, + { + "ename": "AttributeError", + "evalue": "'DataFrameGroupBy' object has no attribute 'index'", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mAttributeError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[14]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43msubject\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcollate_sessions\u001b[49m\u001b[43m(\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43m../\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Projects/visiomode_analysis/src/visiomode_analysis/subject/__init__.py:59\u001b[39m, in \u001b[36mcollate_sessions\u001b[39m\u001b[34m(directory, output_dir)\u001b[39m\n\u001b[32m 56\u001b[39m subject_df = pd.DataFrame(subject_sessions)\n\u001b[32m 58\u001b[39m subject_df.sort_values(\u001b[33m\"\u001b[39m\u001b[33msession_date\u001b[39m\u001b[33m\"\u001b[39m, inplace=\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[32m---> \u001b[39m\u001b[32m59\u001b[39m subject_df[\u001b[33m\"\u001b[39m\u001b[33mtask_session\u001b[39m\u001b[33m\"\u001b[39m] = \u001b[43msubject_df\u001b[49m\u001b[43m.\u001b[49m\u001b[43mgroupby\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43manimal_id\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mprotocol\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[43m=\u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m.\u001b[49m\u001b[43mindex\u001b[49m.rank(ascending=\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[32m 60\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m subject_df\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/pandas/core/groupby/groupby.py:1115\u001b[39m, in \u001b[36mGroupBy.__getattr__\u001b[39m\u001b[34m(self, attr)\u001b[39m\n\u001b[32m 1112\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m attr \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m.obj:\n\u001b[32m 1113\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m[attr]\n\u001b[32m-> \u001b[39m\u001b[32m1115\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m(\n\u001b[32m 1116\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28mself\u001b[39m).\u001b[34m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m'\u001b[39m\u001b[33m object has no attribute \u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mattr\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m'\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 1117\u001b[39m )\n", + "\u001b[31mAttributeError\u001b[39m: 'DataFrameGroupBy' object has no attribute 'index'" + ] + } + ], + "source": [ + "subject.collate_sessions(\"../\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9a2b2dc5", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.14.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From d23a7bb11f4854d82b3aa3f82cbe38cfaa6fdbed Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 6 Apr 2026 15:07:17 +0100 Subject: [PATCH 36/64] add cli call --- src/visiomode_analysis/subject/__init__.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/visiomode_analysis/subject/__init__.py b/src/visiomode_analysis/subject/__init__.py index cedbd8b..10946cd 100644 --- a/src/visiomode_analysis/subject/__init__.py +++ b/src/visiomode_analysis/subject/__init__.py @@ -39,7 +39,14 @@ default=".", help="Output directory for report and trials files.", ) -def subject_cmd(**kwargs): ... +def subject_cmd(**kwargs): + out_dir = preprocess_subject(**kwargs) + click.echo(f"Files saved under {out_dir}") + + +def preprocess_subject(directory, output_dir: str = ".") -> str: + collate_sessions(directory=directory, output_dir=output_dir) + return output_dir def collate_sessions(directory, output_dir: str | None) -> pd.DataFrame | tuple[pd.DataFrame, str]: From 9edb58be687fa3a12945767ac15239a82894c8a0 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 6 Apr 2026 15:09:19 +0100 Subject: [PATCH 37/64] ignore warnings in cli calls --- src/visiomode_analysis/subject/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/visiomode_analysis/subject/__init__.py b/src/visiomode_analysis/subject/__init__.py index 10946cd..9f185b1 100644 --- a/src/visiomode_analysis/subject/__init__.py +++ b/src/visiomode_analysis/subject/__init__.py @@ -22,6 +22,7 @@ import os import click import glob +import warnings import pandas as pd import visiomode_analysis.session as session @@ -40,7 +41,8 @@ help="Output directory for report and trials files.", ) def subject_cmd(**kwargs): - out_dir = preprocess_subject(**kwargs) + with warnings.catch_warnings(action="ignore"): + out_dir = preprocess_subject(**kwargs) click.echo(f"Files saved under {out_dir}") From 695be978cb253b2062f6a237f9ee500ce11e2cd5 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 6 Apr 2026 15:43:36 +0100 Subject: [PATCH 38/64] wip --- exploratory/session-api.ipynb | 476 ++++++++++++++++++++++++++++++++-- exploratory/subject-api.ipynb | 147 +++++++++-- 2 files changed, 577 insertions(+), 46 deletions(-) diff --git a/exploratory/session-api.ipynb b/exploratory/session-api.ipynb index 9a99071..5f8cd35 100644 --- a/exploratory/session-api.ipynb +++ b/exploratory/session-api.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 16, "id": "85b00c2c", "metadata": {}, "outputs": [], @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 17, "id": "6aa96b71", "metadata": {}, "outputs": [], @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 18, "id": "772564e1", "metadata": {}, "outputs": [ @@ -400,7 +400,7 @@ "[305 rows x 21 columns]" ] }, - "execution_count": 3, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -411,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 19, "id": "2fdcc5f6", "metadata": {}, "outputs": [ @@ -440,7 +440,7 @@ " 'notes': ''}" ] }, - "execution_count": 4, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -451,7 +451,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 20, "id": "046be0af", "metadata": {}, "outputs": [], @@ -463,7 +463,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 21, "id": "64029d34", "metadata": {}, "outputs": [ @@ -473,7 +473,7 @@ "81" ] }, - "execution_count": 6, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -492,7 +492,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 22, "id": "24ec43f8", "metadata": {}, "outputs": [ @@ -502,7 +502,7 @@ "np.int64(49)" ] }, - "execution_count": 7, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -513,7 +513,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 23, "id": "0c6d04df", "metadata": {}, "outputs": [ @@ -523,7 +523,7 @@ "np.int64(40)" ] }, - "execution_count": 8, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -534,7 +534,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 24, "id": "323606ce", "metadata": {}, "outputs": [ @@ -586,7 +586,7 @@ " 'rt_iqr_wc': 0.8146393895149231}" ] }, - "execution_count": 9, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -597,7 +597,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 25, "id": "d34c3920", "metadata": {}, "outputs": [ @@ -663,7 +663,7 @@ " 'rt_iqr_wc': 4.261228859424591}" ] }, - "execution_count": 10, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -674,7 +674,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 26, "id": "20981f82", "metadata": {}, "outputs": [ @@ -1048,7 +1048,7 @@ "[305 rows x 21 columns]" ] }, - "execution_count": 11, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -1059,7 +1059,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 27, "id": "2cf49e90", "metadata": {}, "outputs": [ @@ -1094,7 +1094,7 @@ " 1.44596767, 0.83379054, 3.20701528, 2.79126048, 0.82884383])" ] }, - "execution_count": 12, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -1106,17 +1106,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "id": "3e0e4839", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "datetime.date(2022, 3, 9)" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "trials[\"animal_id\"]" + "trials[\"session_date\"][0]" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 29, "id": "95529ecb", "metadata": {}, "outputs": [ @@ -1142,7 +1153,7 @@ " 0.82884383])" ] }, - "execution_count": 13, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -1153,9 +1164,420 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "id": "e951c2f0", "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "Length of values (1) does not match length of index (305)", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mValueError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[31]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43mdf\u001b[49m\u001b[43m[\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43msession_id\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m]\u001b[49m = df.groupby([\u001b[33m\"\u001b[39m\u001b[33manimal_id\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33msession_date\u001b[39m\u001b[33m\"\u001b[39m], sort=\u001b[38;5;28;01mFalse\u001b[39;00m)\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/pandas/core/frame.py:4672\u001b[39m, in \u001b[36mDataFrame.__setitem__\u001b[39m\u001b[34m(self, key, value)\u001b[39m\n\u001b[32m 4669\u001b[39m \u001b[38;5;28mself\u001b[39m._setitem_array([key], value)\n\u001b[32m 4670\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 4671\u001b[39m \u001b[38;5;66;03m# set column\u001b[39;00m\n\u001b[32m-> \u001b[39m\u001b[32m4672\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_set_item\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m)\u001b[49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/pandas/core/frame.py:4872\u001b[39m, in \u001b[36mDataFrame._set_item\u001b[39m\u001b[34m(self, key, value)\u001b[39m\n\u001b[32m 4862\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m_set_item\u001b[39m(\u001b[38;5;28mself\u001b[39m, key, value) -> \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 4863\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 4864\u001b[39m \u001b[33;03m Add series to DataFrame in specified column.\u001b[39;00m\n\u001b[32m 4865\u001b[39m \n\u001b[32m (...)\u001b[39m\u001b[32m 4870\u001b[39m \u001b[33;03m ensure homogeneity.\u001b[39;00m\n\u001b[32m 4871\u001b[39m \u001b[33;03m \"\"\"\u001b[39;00m\n\u001b[32m-> \u001b[39m\u001b[32m4872\u001b[39m value, refs = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_sanitize_column\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 4874\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m (\n\u001b[32m 4875\u001b[39m key \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m.columns\n\u001b[32m 4876\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m value.ndim == \u001b[32m1\u001b[39m\n\u001b[32m 4877\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(value.dtype, ExtensionDtype)\n\u001b[32m 4878\u001b[39m ):\n\u001b[32m 4879\u001b[39m \u001b[38;5;66;03m# broadcast across multiple columns if necessary\u001b[39;00m\n\u001b[32m 4880\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m.columns.is_unique \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\u001b[38;5;28mself\u001b[39m.columns, MultiIndex):\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/pandas/core/frame.py:5742\u001b[39m, in \u001b[36mDataFrame._sanitize_column\u001b[39m\u001b[34m(self, value)\u001b[39m\n\u001b[32m 5739\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m _reindex_for_setitem(value, \u001b[38;5;28mself\u001b[39m.index)\n\u001b[32m 5741\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m is_list_like(value):\n\u001b[32m-> \u001b[39m\u001b[32m5742\u001b[39m \u001b[43mcom\u001b[49m\u001b[43m.\u001b[49m\u001b[43mrequire_length_match\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mindex\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 5743\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m sanitize_array(value, \u001b[38;5;28mself\u001b[39m.index, copy=\u001b[38;5;28;01mTrue\u001b[39;00m, allow_2d=\u001b[38;5;28;01mTrue\u001b[39;00m), \u001b[38;5;28;01mNone\u001b[39;00m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/pandas/core/common.py:601\u001b[39m, in \u001b[36mrequire_length_match\u001b[39m\u001b[34m(data, index)\u001b[39m\n\u001b[32m 597\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 598\u001b[39m \u001b[33;03mCheck the length of data matches the length of the index.\u001b[39;00m\n\u001b[32m 599\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 600\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(data) != \u001b[38;5;28mlen\u001b[39m(index):\n\u001b[32m--> \u001b[39m\u001b[32m601\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 602\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mLength of values \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 603\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33m(\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(data)\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m) \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 604\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mdoes not match length of index \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 605\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33m(\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(index)\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m)\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 606\u001b[39m )\n", + "\u001b[31mValueError\u001b[39m: Length of values (1) does not match length of index (305)" + ] + } + ], + "source": [ + "df[\"session_id\"] = df.groupby([\"animal_id\", \"session_date\"], sort=False)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "b5ac7dd3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animal_idsession_dateprotocolenvironmentexperimentstart_timestop_timecue_onsetresponseresponse_time...correctionpos_xpos_ydist_xdist_ysdt_typestim_idstim_periodstim_contraststim_freq
0MM2292022-03-09gonogounknown109hrb21d4.48467913.4846799.484679NaNNaN...FalseNaNNaNNaNNaNcorrect_rejectionisoluminantgrayNaNNaNNaN
206MM2292022-03-09gonogounknown109hrb21d1210.5695471216.1761511215.569547unknown0.600520...True400.0240.00.00.0false_alarmisoluminantgrayNaNNaNNaN
205MM2292022-03-09gonogounknown109hrb21d1204.2325001210.5676951209.232500unknown1.333024...True400.0240.00.00.0false_alarmisoluminantgrayNaNNaNNaN
204MM2292022-03-09gonogounknown109hrb21d1198.5619651204.2310171203.561965unknown0.664452...False400.0240.00.00.0false_alarmisoluminantgrayNaNNaNNaN
203MM2292022-03-09gonogounknown109hrb21d1196.8853791198.560174NaNunknown1.673468...False400.0240.00.00.0NaNNaNNaNNaNNaN
..................................................................
98MM2292022-03-09gonogounknown109hrb21d575.658764581.657955580.658764unknown0.997186...True400.0240.00.00.0false_alarmisoluminantgrayNaNNaNNaN
97MM2292022-03-09gonogounknown109hrb21d573.101924575.657338NaNunknown2.554549...True400.0240.00.00.0NaNNaNNaNNaNNaN
96MM2292022-03-09gonogounknown109hrb21d566.192007573.100423571.192007unknown1.906126...True400.0240.00.00.0false_alarmisoluminantgrayNaNNaNNaN
103MM2292022-03-09gonogounknown109hrb21d604.162670613.162670609.162670NaNNaN...TrueNaNNaNNaNNaNcorrect_rejectionisoluminantgrayNaNNaNNaN
304MM2292022-03-09gonogounknown109hrb21d1796.8319601802.6626951801.831960unknown0.828844...False400.0240.00.00.0false_alarmisoluminantgrayNaNNaNNaN
\n", + "

305 rows × 21 columns

\n", + "
" + ], + "text/plain": [ + " animal_id session_date protocol environment experiment start_time \\\n", + "0 MM229 2022-03-09 gonogo unknown 109hrb21d 4.484679 \n", + "206 MM229 2022-03-09 gonogo unknown 109hrb21d 1210.569547 \n", + "205 MM229 2022-03-09 gonogo unknown 109hrb21d 1204.232500 \n", + "204 MM229 2022-03-09 gonogo unknown 109hrb21d 1198.561965 \n", + "203 MM229 2022-03-09 gonogo unknown 109hrb21d 1196.885379 \n", + ".. ... ... ... ... ... ... \n", + "98 MM229 2022-03-09 gonogo unknown 109hrb21d 575.658764 \n", + "97 MM229 2022-03-09 gonogo unknown 109hrb21d 573.101924 \n", + "96 MM229 2022-03-09 gonogo unknown 109hrb21d 566.192007 \n", + "103 MM229 2022-03-09 gonogo unknown 109hrb21d 604.162670 \n", + "304 MM229 2022-03-09 gonogo unknown 109hrb21d 1796.831960 \n", + "\n", + " stop_time cue_onset response response_time ... correction pos_x \\\n", + "0 13.484679 9.484679 NaN NaN ... False NaN \n", + "206 1216.176151 1215.569547 unknown 0.600520 ... True 400.0 \n", + "205 1210.567695 1209.232500 unknown 1.333024 ... True 400.0 \n", + "204 1204.231017 1203.561965 unknown 0.664452 ... False 400.0 \n", + "203 1198.560174 NaN unknown 1.673468 ... False 400.0 \n", + ".. ... ... ... ... ... ... ... \n", + "98 581.657955 580.658764 unknown 0.997186 ... True 400.0 \n", + "97 575.657338 NaN unknown 2.554549 ... True 400.0 \n", + "96 573.100423 571.192007 unknown 1.906126 ... True 400.0 \n", + "103 613.162670 609.162670 NaN NaN ... True NaN \n", + "304 1802.662695 1801.831960 unknown 0.828844 ... False 400.0 \n", + "\n", + " pos_y dist_x dist_y sdt_type stim_id stim_period \\\n", + "0 NaN NaN NaN correct_rejection isoluminantgray NaN \n", + "206 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", + "205 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", + "204 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", + "203 240.0 0.0 0.0 NaN NaN NaN \n", + ".. ... ... ... ... ... ... \n", + "98 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", + "97 240.0 0.0 0.0 NaN NaN NaN \n", + "96 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", + "103 NaN NaN NaN correct_rejection isoluminantgray NaN \n", + "304 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", + "\n", + " stim_contrast stim_freq \n", + "0 NaN NaN \n", + "206 NaN NaN \n", + "205 NaN NaN \n", + "204 NaN NaN \n", + "203 NaN NaN \n", + ".. ... ... \n", + "98 NaN NaN \n", + "97 NaN NaN \n", + "96 NaN NaN \n", + "103 NaN NaN \n", + "304 NaN NaN \n", + "\n", + "[305 rows x 21 columns]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.sort_values(\"session_date\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a084f706", + "metadata": {}, "outputs": [], "source": [] } diff --git a/exploratory/subject-api.ipynb b/exploratory/subject-api.ipynb index adc837b..af96fdf 100644 --- a/exploratory/subject-api.ipynb +++ b/exploratory/subject-api.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 8, + "execution_count": 1, "id": "e493393c", "metadata": {}, "outputs": [], @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 2, "id": "26289822", "metadata": {}, "outputs": [ @@ -45,7 +45,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 3, "id": "7425be77", "metadata": {}, "outputs": [], @@ -55,7 +55,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 4, "id": "a75a4dfa", "metadata": {}, "outputs": [], @@ -65,7 +65,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 5, "id": "47220e55", "metadata": {}, "outputs": [], @@ -77,7 +77,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 6, "id": "30446ba6", "metadata": {}, "outputs": [ @@ -199,7 +199,7 @@ "[2 rows x 45 columns]" ] }, - "execution_count": 13, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -210,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 7, "id": "77c4ffda", "metadata": {}, "outputs": [ @@ -236,17 +236,126 @@ ] }, { - "ename": "AttributeError", - "evalue": "'DataFrameGroupBy' object has no attribute 'index'", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mAttributeError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[14]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43msubject\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcollate_sessions\u001b[49m\u001b[43m(\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43m../\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Projects/visiomode_analysis/src/visiomode_analysis/subject/__init__.py:59\u001b[39m, in \u001b[36mcollate_sessions\u001b[39m\u001b[34m(directory, output_dir)\u001b[39m\n\u001b[32m 56\u001b[39m subject_df = pd.DataFrame(subject_sessions)\n\u001b[32m 58\u001b[39m subject_df.sort_values(\u001b[33m\"\u001b[39m\u001b[33msession_date\u001b[39m\u001b[33m\"\u001b[39m, inplace=\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[32m---> \u001b[39m\u001b[32m59\u001b[39m subject_df[\u001b[33m\"\u001b[39m\u001b[33mtask_session\u001b[39m\u001b[33m\"\u001b[39m] = \u001b[43msubject_df\u001b[49m\u001b[43m.\u001b[49m\u001b[43mgroupby\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43manimal_id\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mprotocol\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[43m=\u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m.\u001b[49m\u001b[43mindex\u001b[49m.rank(ascending=\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[32m 60\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m subject_df\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Projects/visiomode_analysis/.venv/lib/python3.14/site-packages/pandas/core/groupby/groupby.py:1115\u001b[39m, in \u001b[36mGroupBy.__getattr__\u001b[39m\u001b[34m(self, attr)\u001b[39m\n\u001b[32m 1112\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m attr \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m.obj:\n\u001b[32m 1113\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m[attr]\n\u001b[32m-> \u001b[39m\u001b[32m1115\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m(\n\u001b[32m 1116\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28mself\u001b[39m).\u001b[34m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m'\u001b[39m\u001b[33m object has no attribute \u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mattr\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m'\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 1117\u001b[39m )\n", - "\u001b[31mAttributeError\u001b[39m: 'DataFrameGroupBy' object has no attribute 'index'" - ] + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animal_idsession_dateprotocolenvironmentexperimentcorrectcorrect_wcincorrectincorrect_wccorrection_trials...rtrt_wcrt_hitsrt_hits_wcrt_false_alarmsrt_false_alarms_wcrt_iqrrt_iqr_wcsession_idtask_session
0MM2292022-03-01targetonlyunknown109hrb21d166166000...3.5058843.5058843.5058843.505884NaNNaN4.2612294.26122911.0
1MM2292022-03-09gonogounknown109hrb21d61100408141...0.7579960.7752770.8411250.8411250.7244780.7548150.6941140.81463921.0
\n", + "

2 rows × 45 columns

\n", + "
" + ], + "text/plain": [ + " animal_id session_date protocol environment experiment correct \\\n", + "0 MM229 2022-03-01 targetonly unknown 109hrb21d 166 \n", + "1 MM229 2022-03-09 gonogo unknown 109hrb21d 61 \n", + "\n", + " correct_wc incorrect incorrect_wc correction_trials ... rt \\\n", + "0 166 0 0 0 ... 3.505884 \n", + "1 100 40 81 41 ... 0.757996 \n", + "\n", + " rt_wc rt_hits rt_hits_wc rt_false_alarms rt_false_alarms_wc \\\n", + "0 3.505884 3.505884 3.505884 NaN NaN \n", + "1 0.775277 0.841125 0.841125 0.724478 0.754815 \n", + "\n", + " rt_iqr rt_iqr_wc session_id task_session \n", + "0 4.261229 4.261229 1 1.0 \n", + "1 0.694114 0.814639 2 1.0 \n", + "\n", + "[2 rows x 45 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ From 82cc88a51fb23a470f5f89474f62283b6d4e66ae Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 3 Aug 2026 11:21:06 +0100 Subject: [PATCH 39/64] ignore scratch symlinks --- .gitignore | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 39fdabe..8066953 100644 --- a/.gitignore +++ b/.gitignore @@ -165,4 +165,8 @@ cython_debug/ # Ignore outputs *.csv -*.html \ No newline at end of file +*.html + +scratch/ +scratch + From 86afae670d7147891f97e43135ed48116703110b Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 3 Aug 2026 14:32:00 +0100 Subject: [PATCH 40/64] wip regressor generator --- exploratory/session-regressors.ipynb | 705 ++++++++++++++++++++ src/visiomode_analysis/session/regressor.py | 54 ++ 2 files changed, 759 insertions(+) create mode 100644 exploratory/session-regressors.ipynb create mode 100644 src/visiomode_analysis/session/regressor.py diff --git a/exploratory/session-regressors.ipynb b/exploratory/session-regressors.ipynb new file mode 100644 index 0000000..8a72a32 --- /dev/null +++ b/exploratory/session-regressors.ipynb @@ -0,0 +1,705 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "908eb12a", + "metadata": {}, + "source": [ + "# Generate session regressors" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee2f6242", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from visiomode_analysis import session" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1c4bd08b", + "metadata": {}, + "outputs": [], + "source": [ + "gng_path = \"./test_data/example-gonogo-leverpush.json\"\n", + "\n", + "meta = session.get_metadata(gng_path)\n", + "df = session.get_trials(gng_path)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "274611c3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
animal_idsession_dateprotocolenvironmentexperimentstart_timestop_timecue_onsetresponseresponse_time...correctionpos_xpos_ydist_xdist_ysdt_typestim_idstim_periodstim_contraststim_freq
0MM2292022-03-09gonogounknown109hrb21d4.48467913.4846799.484679NoneNaN...FalseNaNNaNNaNNaNcorrect_rejectionisoluminantgrayNaNNaNNaN
1MM2292022-03-09gonogounknown109hrb21d14.99183919.065675NaNunknown4.072411...False400.0240.00.00.0NoneNaNNaNNaNNaN
2MM2292022-03-09gonogounknown109hrb21d19.06717925.19655424.067179unknown1.128456...False400.0240.00.00.0hitmovinggrating301.01.0
3MM2292022-03-09gonogounknown109hrb21d26.70047335.70047331.700473NoneNaN...FalseNaNNaNNaNNaNcorrect_rejectionisoluminantgrayNaNNaNNaN
4MM2292022-03-09gonogounknown109hrb21d37.20694543.88107242.206945unknown1.670673...False400.0240.00.00.0hitmovinggrating301.01.0
..................................................................
300MM2292022-03-09gonogounknown109hrb21d1765.8470141774.0558251770.847014unknown3.207015...True400.0240.00.00.0false_alarmisoluminantgrayNaNNaNNaN
301MM2292022-03-09gonogounknown109hrb21d1774.0574611781.8511671779.057461unknown2.791260...True400.0240.00.00.0false_alarmisoluminantgrayNaNNaNNaN
302MM2292022-03-09gonogounknown109hrb21d1781.8528391786.325765NaNunknown4.472022...True400.0240.00.00.0NoneNaNNaNNaNNaN
303MM2292022-03-09gonogounknown109hrb21d1786.3277441795.3277441791.327744NoneNaN...TrueNaNNaNNaNNaNcorrect_rejectionisoluminantgrayNaNNaNNaN
304MM2292022-03-09gonogounknown109hrb21d1796.8319601802.6626951801.831960unknown0.828844...False400.0240.00.00.0false_alarmisoluminantgrayNaNNaNNaN
\n", + "

305 rows × 21 columns

\n", + "
" + ], + "text/plain": [ + " animal_id session_date protocol environment experiment start_time \\\n", + "0 MM229 2022-03-09 gonogo unknown 109hrb21d 4.484679 \n", + "1 MM229 2022-03-09 gonogo unknown 109hrb21d 14.991839 \n", + "2 MM229 2022-03-09 gonogo unknown 109hrb21d 19.067179 \n", + "3 MM229 2022-03-09 gonogo unknown 109hrb21d 26.700473 \n", + "4 MM229 2022-03-09 gonogo unknown 109hrb21d 37.206945 \n", + ".. ... ... ... ... ... ... \n", + "300 MM229 2022-03-09 gonogo unknown 109hrb21d 1765.847014 \n", + "301 MM229 2022-03-09 gonogo unknown 109hrb21d 1774.057461 \n", + "302 MM229 2022-03-09 gonogo unknown 109hrb21d 1781.852839 \n", + "303 MM229 2022-03-09 gonogo unknown 109hrb21d 1786.327744 \n", + "304 MM229 2022-03-09 gonogo unknown 109hrb21d 1796.831960 \n", + "\n", + " stop_time cue_onset response response_time ... correction pos_x \\\n", + "0 13.484679 9.484679 None NaN ... False NaN \n", + "1 19.065675 NaN unknown 4.072411 ... False 400.0 \n", + "2 25.196554 24.067179 unknown 1.128456 ... False 400.0 \n", + "3 35.700473 31.700473 None NaN ... False NaN \n", + "4 43.881072 42.206945 unknown 1.670673 ... False 400.0 \n", + ".. ... ... ... ... ... ... ... \n", + "300 1774.055825 1770.847014 unknown 3.207015 ... True 400.0 \n", + "301 1781.851167 1779.057461 unknown 2.791260 ... True 400.0 \n", + "302 1786.325765 NaN unknown 4.472022 ... True 400.0 \n", + "303 1795.327744 1791.327744 None NaN ... True NaN \n", + "304 1802.662695 1801.831960 unknown 0.828844 ... False 400.0 \n", + "\n", + " pos_y dist_x dist_y sdt_type stim_id stim_period \\\n", + "0 NaN NaN NaN correct_rejection isoluminantgray NaN \n", + "1 240.0 0.0 0.0 None NaN NaN \n", + "2 240.0 0.0 0.0 hit movinggrating 30 \n", + "3 NaN NaN NaN correct_rejection isoluminantgray NaN \n", + "4 240.0 0.0 0.0 hit movinggrating 30 \n", + ".. ... ... ... ... ... ... \n", + "300 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", + "301 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", + "302 240.0 0.0 0.0 None NaN NaN \n", + "303 NaN NaN NaN correct_rejection isoluminantgray NaN \n", + "304 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", + "\n", + " stim_contrast stim_freq \n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 1.0 1.0 \n", + "3 NaN NaN \n", + "4 1.0 1.0 \n", + ".. ... ... \n", + "300 NaN NaN \n", + "301 NaN NaN \n", + "302 NaN NaN \n", + "303 NaN NaN \n", + "304 NaN NaN \n", + "\n", + "[305 rows x 21 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "01235bb3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'animal_id': 'MM229',\n", + " 'experiment': '109hrb21d',\n", + " 'session_date': datetime.date(2022, 3, 9),\n", + " 'environment': 'unknown',\n", + " 'protocol': 'gonogo',\n", + " 'version': 'unknown',\n", + " 'duration': 30.0,\n", + " 'session_start_time': '2022-03-09T12:04:03.108928',\n", + " 'response_device': 'leverpush',\n", + " 'reward_profile': 'waterreward',\n", + " 'stimulus_duration': 4000.0,\n", + " 'iti': 5000.0,\n", + " 'corrections_enabled': 'true',\n", + " 'device': 'meso-2',\n", + " 'stimuli': {'target_id': 'movinggrating',\n", + " 'target_period': '30',\n", + " 'target_contrast': '1.0',\n", + " 'target_freq': '1.0',\n", + " 'distractor_id': 'isoluminantgray'},\n", + " 'notes': ''}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "meta" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cc5c7ad2", + "metadata": {}, + "outputs": [], + "source": [ + "# Generate regressors for the session\n", + "# Uniformly sampled timestamps (would otherwise be external, e.g. imaging session)\n", + "\n", + "timestamps = np.arange(0, df.stop_time.max(), 0.04) # Mock imaging at 25 Hz (processed)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "886ea992", + "metadata": {}, + "outputs": [], + "source": [ + "GO_STIM = \"movinggrating\"\n", + "NOGO_STIM = \"isoluminantgray\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "808a8d71", + "metadata": {}, + "outputs": [], + "source": [ + "regr_stim_go = []\n", + "regr_stim_nogo = []\n", + "regr_resp_cuedpush = []\n", + "regr_resp_uncuedpush = []\n", + "regr_resp_hold = []\n", + "regr_reward = []\n", + "\n", + "leverpush_rt = np.nanmedian(df[df.response.notna()].response_time.values)\n", + "\n", + "trial_idx = []\n", + "\n", + "for idx, timestamp in enumerate(timestamps):\n", + " trial = df[(df[\"start_time\"] < timestamp) & (df[\"stop_time\"] > timestamp)]\n", + " if trial.empty:\n", + " continue\n", + "\n", + " trial_idx.append(idx)\n", + "\n", + " # Stimulus regressors\n", + " regr_stim_go.append(\n", + " 1\n", + " if (\n", + " (trial.stim_id.values[0] == GO_STIM)\n", + " & (timestamp >= trial.cue_onset.values[0])\n", + " & (timestamp <= trial.cue_onset.values[0] + 150)\n", + " )\n", + " else 0\n", + " )\n", + " regr_stim_nogo.append(\n", + " 1\n", + " if (\n", + " (trial.stim_id.values[0] == NOGO_STIM)\n", + " & (timestamp >= trial.cue_onset.values[0])\n", + " & (timestamp <= trial.cue_onset.values[0] + 150)\n", + " )\n", + " else 0\n", + " )\n", + "\n", + " # Response regressors\n", + " regr_resp_cuedpush.append(\n", + " 1\n", + " if (\n", + " (trial.response.notna().values[0])\n", + " & (trial.outcome.values[0] != \"precued\")\n", + " & (timestamp >= trial.cue_onset.values[0] + leverpush_rt - 0.07)\n", + " & (timestamp <= trial.cue_onset.values[0] + leverpush_rt)\n", + " )\n", + " else 0\n", + " ) # 70 ms is lever push duration from Dacre et al. 2021\n", + " regr_resp_uncuedpush.append(\n", + " 1\n", + " if (\n", + " (trial.outcome.values[0] == \"precued\")\n", + " & (timestamp >= trial.stop_time.values[0] - 0.07) # 70 ms is lever push duration from Dacre et al. 2021\n", + " & (timestamp <= trial.stop_time.values[0])\n", + " )\n", + " else 0\n", + " )\n", + " regr_resp_hold.append(\n", + " 1\n", + " if (\n", + " (trial.response.isna().values[0])\n", + " & (timestamp >= trial.cue_onset.values[0] + leverpush_rt - 0.07)\n", + " & (timestamp <= trial.cue_onset.values[0] + leverpush_rt)\n", + " )\n", + " else 0\n", + " )\n", + "\n", + " # Reward regressors\n", + " if trial.index > 0:\n", + " previous_trial = df.iloc[df.index.get_loc(trial.index[0]) - 1] # type: ignore\n", + " regr_reward.append(\n", + " 1 if ((previous_trial.outcome == \"correct\") & (timestamp <= trial.start_time.values[0] + 1.5)) else 0\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "904d0358", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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M+Sggw6Sq6++2rbMAAAAAABUwojpDldccYWcc845cumll0YB9cUXXywnn3yyPPDAA7LHHnsMbL9jxw553eteF732zW9+U/bee2954oknZOHCha7qAAAAAABAPYLqiy66SM4880w544wzoscquL7qqqvksssuk3PPPXdge/X8s88+KzfeeKNMmzYtek59yp1m+/bt0b+ODRs2mBYTAABUCpecBVA1rEso4evf6lPn22+/XU466aTJBIaGosc33XRT7D7f/e535cQTT4y+/r148WI5/PDD5dOf/rSMjY0l5nPhhRfKggULJv4tXbrUpJgAAAAAAFQvqF67dm0UDKvguJt6vHLlyth9Hn300ehr32o/9Tvqj3/84/LFL35R/vqv/zoxn/POO0/Wr18/8W/FihUmxQQANAW33gEAONV9XOEYg5K+/m2q1WpFv6f+53/+ZxkeHpZjjz1WnnzySfn85z8vF1xwQew+6mJm6h8AAAAAAI0JqhctWhQFxqtWrep5Xj1esmRJ7D7qit/qt9Rqv45DDz00+mRbfZ18+vTp0jhhmP7YXUae0tXNb/JxaFJHh+1hlJRNv/Rv04rfJzTpi540w9L6zO++Mak5qWpY/txU+2Smk5JubJ4exkFaGVPLH1OWsOWvXN3riOuki5Jn/Ysep/WNZT5xWae0cDltFxa2/jinvZbYbVf0kSF9Yw/9lJRmYedPBciqS1jMuUFn3vemnj997RTSjj2OhAX3X5iZee+TLj4L7ztSpK3mufOJ7bqsuR4O7J1SppjzqKn29W8VAKtPmq+77rqeT6LVY/W76TgvfelL5eGHH46263jwwQejYLuRAbVTGdPQekAmfO2lIV+zrFQ1qlSWWrV7RRpOuxh53qyomKx1pVITrI5fAQxLGx8NPIfJFGSOV1f93tW4qXladEKj5pypqTRo89U18DZHilGRYqBoQTB171Otbqf1la98Rf7t3/5N7rvvPnnve98rmzdvnrga+GmnnRb9JrpDva6u/n322WdHwbS6Uri6UJm6cBkAAAAAAFPqN9WnnnqqrFmzRs4///zoK9xHH320XHPNNRMXL1u+fHl0RfAOdeXuH/zgB/KBD3xAjjzyyOg+1SrA/vCHP+y2JgAAAAAA1OFCZWeddVb0L871118/8Jz6avjNN99skxUAAAAAAM35+jcAAAAAAGgjqAYAAAAA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uc+Fv/nNb8KPfexj4bRp08K77767oJYA9Jx88snhv/7rv0Zj+a677grf9KY3hfvuu2+4adOmiW3e8573hEuXLg2vu+668Lbbbgtf/OIXhy95yUsmXh8dHQ0PP/zw8KSTTgrvvPPOaB4uWrQoPO+88ya2efTRR8PZs2eH55xzTjQn/uEf/iGaI9dcc83ENhyvUAff/e53w6uuuip88MEHwwceeCD8yEc+Eq3vag4pzBcg2a233houW7YsPPLII8Ozzz574nnmjV8E1Q4cf/zx4fve976Jx2NjY+Fee+0VXnjhhaWWC/CtP6hutVrhkiVLws9//vMTz61bty6cMWNGFBgrahFW+/3yl7+c2Ob73/9+GARB+OSTT0aPv/SlL4W77LJLuH379oltPvzhD4cHH3zwxOM/+qM/Ct/85jf3lOeEE04I//RP/9RTbQE3Vq9eHc2Bn/70pxNzRAUM3/jGNya2ue+++6JtbrrppuixOrkZGhoKV65cObHNl7/85XD+/PkT8+RDH/pQ+IIXvKAnr1NPPTUK6js4XqGu1DHhq1/9KvMFSLFx48bwwAMPDK+99trwla985URQzbzxj69/57Rjxw65/fbbo6+4dgwNDUWPb7rpplLLBhTtsccek5UrV/bMhwULFkRf/enMB/Vf9ZXv4447bmIbtb2aN7fccsvENq94xStk+vTpE9ucfPLJ0Vdmn3vuuYltuvPpbMO8Q9WtX78++u+uu+4a/VcdQ3bu3NkzntXPGvbdd9+eeaN+4rB48eKe8b5hwwa59957teYExyvU0djYmFx++eWyefPm6GvgzBcgmfp6t/r6dv/YZt74N1JAHo22du3aaMHvHoCKenz//feXVi6gDCqgVuLmQ+c19V/1O51uIyMjUYDRvc1+++03kEbntV122SX6b1o+QBW1Wq3oN24vfelL5fDDD4+eU2NWvYGk3mxKmzdx473zWto26oRo69at0RtSHK9QF3fffXcURKvfgarff37729+Www47TO666y7mCxBDvfl0xx13yC9/+cuB1zjO+EdQDQBAgZ8i3HPPPXLDDTeUXRSg0g4++OAogFbf7PjmN78pp59+uvz0pz8tu1hAJa1YsULOPvtsufbaa6OLg6F4fP07p0WLFsnw8PDA1fPU4yVLlpRWLqAMnTGfNh/Uf1evXt3zurqypLoiePc2cWl055G0DfMOVXXWWWfJ9773PfnJT34i++yzz8Tzasyqr8ytW7cudd7Yzgl19WR1JX6OV6gT9amaurLwscceG11B/6ijjpK/+7u/Y74AMdRXrtW5lboqt/r2n/qn3oT6+7//++hv9Ukx88YvgmoHi75a8K+77rqer/epx+prS8BUor6yrRbN7vmgvhKkfivdmQ/qv2pRVweAjh//+MfRvFG/ve5so27dpX7/06HefVWfXKivfne26c6nsw3zDlWjrumnAmr19VU11vt/2qCOIdOmTesZz+r6AerWJt3zRn0dtvsNKTXe1YmM+kqszpzgeIU6U2N1+/btzBcgxmtf+9pozKtvd3T+qWvXqNuXdv5m3nhWwMXQGk9dOl5d3fhrX/tadGXjd7/73dGl47uvngc06cqS6lYL6p9aQi666KLo7yeeeGLillpq/H/nO98Jf/3rX4e/+7u/G3tLrWOOOSa85ZZbwhtuuCG6UmX3LbXUVSrVLbXe8Y53RLdQUXNM3cKh/5ZaIyMj4Re+8IXoCpYXXHABt9RCJb33ve+NbjN3/fXXh08//fTEvy1btvTc6kTdZuvHP/5xdKuTE088MfrXf6uT17/+9dFtudTtS3bffffYW5188IMfjObEJZdcEnurE45XqLpzzz03ujr+Y489Fh1H1GN1h4gf/vCH0evMFyBb99W/FeaNXwTVjqj7tKmBqu7Lpi4lr+6/CzTRT37ykyiY7v93+umnT9xW6+Mf/3gUFKtF9bWvfW10n9FuzzzzTBREz507N7pVwxlnnBEF693UPa5f9rKXRWnsvffeUbDe7z//8z/Dgw46KJp36hYP6r6mQNXEzRf1T927ukO96fRnf/Zn0W2D1AnL7/3e70WBd7fHH388fOMb3xjds13dO/Qv/uIvwp07dw7Mz6OPPjqaE/vvv39PHh0cr1B1f/InfxI+73nPi8aoOqlXx5FOQK0wXwDzoJp541eg/s/3p+EAAAAAADQRv6kGAAAAAMASQTUAAAAAAJYIqgEAAAAAsERQDQAAAACAJYJqAAAAAAAsEVQDAAAAAGCJoBoAAAAAAEsE1QAAAAAAWCKoBgAAAADAEkE1AAAAAACWCKoBAAAAABA7/z+2DhjX1opUpwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot stimulus regressors\n", + "plt.figure(figsize=(12, 8))\n", + "plt.plot(regr_stim_go, label=\"Stimulus Go\")\n", + "plt.plot(regr_stim_nogo, label=\"Stimulus NoGo\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "9764ab7f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAK9CAYAAABYVS0qAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAChYElEQVR4nOzdB5gT1drA8Xe2Lx3pIAiICkhRQRDQz4Ziw4telcv1CiJyrwUbNlAEUS/YO1hQRK8FLAgqigKKjaYCCkiV3ntnC7vzPedkk02y2d1kN8mcJP/f8wQ2yWTmtJnJmzlzjmXbti0AAAAAAMBxSU4nAAAAAAAAuBCkAwAAAABgCIJ0AAAAAAAMQZAOAAAAAIAhCNIBAAAAADAEQToAAAAAAIYgSAcAAAAAwBAE6QAAAAAAGIIgHQAAAAAAQxCkAwAAAABgCIJ0AEDcGTdunFiW5XmkpKRIgwYN5Prrr5dNmzY5nbyYtHbtWp8yTUpKkmOOOUYuvvhimT17ttPJAwAgbqQ4nQAAACLlkUcekSZNmkhWVpbMmTNHB+8//fSTLF68WDIyMpxOXkzq1auXXHLJJZKXlycrVqyQ0aNHy7nnniu//PKLtG7d2unkAQAQ8wjSAQBxS13lbd++vf77xhtvlJo1a8oTTzwhn332mVxzzTVOJy8mnXbaafKvf/3L8/yss87S5fzKK6/ogD2aDh06JBUrVpRYoX4sSktL070QAAAoDmcJAEDCUAGl8tdff/m8vmzZMrnqqqt09211hV0F9iqQ95abmyvDhw+XE044QS9To0YNOfPMM2XatGmeZVR3+kqVKsnq1aulW7duOoCsX7++vqJv23aRAPPuu++Whg0bSnp6upx00kny9NNPF1lOdS0fMGCATJo0SVq1aqWXPfnkk2Xq1Kk+yx04cEDuvPNOady4sV6mdu3acsEFF8j8+fN9lps7d65cdNFFUrVqValQoYKcffbZ8vPPP4e9TPfu3avT485fs2bN9A8k+fn5Psvt2rVLrrvuOqlSpYpUq1ZN+vTpI7///rvOt+r54F+2ajvqSn7lypXl2muv1e+pdT7//PO6XFTd1KlTR/7zn//Inj17fLb166+/6npRP9ZkZmbqXhY33HCDzzLjx4+Xdu3a6fWrNKneAS+88ILPMqp+r776at1eVBmeccYZMmXKFJ9lZs6cqfOg1jdkyBB9u4Vadv/+/UG1JQBA4uJKOgAgoe6rVqpXr+55bcmSJdKlSxcdRA0aNEgH1h9++KH06NFDPvnkE7niiiv0cg8//LCMHDlSX5Hv0KGDDrZU0KeCYBUMu6lu4CoIVoHbk08+qYPpYcOGydGjR3WwrqhA/PLLL5fvvvtO+vXrJ6eccop8/fXXcu+99+p75p977jmfdKsu+hMnTpRbbrlFB48vvvii/P3vf5f169frAE+56aab5OOPP9YBfcuWLXXwqz63dOlSffVb+fbbb/VVbxWEqjSpK7pvvfWWnHfeefLjjz/qfIWjTA8fPqyDf5UXFSw3atRIZs2aJYMHD5YtW7bogNodXHfv3l3mzZsnN998szRv3lwmT56sA/VAVBmqIFsFtOoHDRX0KmobKqDv27ev3H777bJmzRp5+eWXZcGCBfoHiNTUVNm+fbtceOGFUqtWLV3P6gcBlXZVrm4qSFbd+c8//3z9g4Kiyk+t44477tDPt23bJp07d9Z5VNtS5f/222/r+lTl724vbo8++qi+en7PPfdIdna2/jvYtgQASFA2AABx5q233lKXo+3p06fbO3bssDds2GB//PHHdq1atez09HT93O3888+3W7dubWdlZXley8/Ptzt37myfcMIJntfatm1rX3rppSVut0+fPnq7t912m8+61OfS0tJ0WpRJkybp5R577DGfz1911VW2ZVn2qlWrPK+p5dRnvV/7/fff9esvvfSS57WqVavat956a7FpU+lQ+enWrZv+2+3w4cN2kyZN7AsuuKDEvK1Zs0Zvc/jw4TofW7dutX/88Uf79NNP169/9NFHnmUfffRRu2LFivaKFSt81jFo0CA7OTnZXr9+vX7+ySef6M8+//zznmXy8vLs8847T7+u6tG/bNU6vKk0qNffe+89n9enTp3q8/qnn36qn//yyy/F5vGOO+6wq1SpYh89erTYZe688069HrVdtwMHDugybNy4sU6/8t133+nlmjZtqsvYWzBtCQCQuOjuDgCIW127dtVXTlWXa9WdXV0lV93Yjz32WP3+7t279dVldX+66i6+c+dO/VBXodUV25UrV3pGg1dXXtVVd/VaadTVbP/u6jk5OTJ9+nT92pdffinJycn6Sqw31f1dxeVfffVVkXwcf/zxnudt2rTRXbFVt2s3lT7VlX3z5s0B07Rw4UKd9n/+8586f+68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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot response regressors\n", + "plt.figure(figsize=(12, 8))\n", + "plt.plot(regr_resp_cuedpush, label=\"Response Cued Push\")\n", + "plt.plot(regr_resp_uncuedpush, label=\"Response Uncued Push\")\n", + "plt.plot(regr_resp_hold, label=\"Response Hold\")\n", + "plt.legend()\n", + "plt.xlabel(\"Time\")\n", + "plt.ylabel(\"Response\")\n", + "plt.title(\"Response Regressors\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "a382bdc3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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AAAAiCSoBgAAgEiCagAAAIgkqAYAAIBIgmoAAACIJKhuQf4+i/nnu+/vt+3v4m0noT69tmks34ZapO3bbfVKvu27fC0cSzV2bLAMJfcPH8Kgbve+pgMn10g5il/vvrdu0ue1Bfs1U7weZerOJ2n1vs3JmC6eddabwk2Tdu/Ju/Dpcb0bYb5/e9Wl//2l515vo4ox4y/qWFTh+FKebI0x2eA9iKu8Pux7NTeXb4UTo7ppJvWPsYXbLXiieJkZYscMkkyDzRxzzlSlnerO60Havuq6M2i79TqWjOnhYrKD6rPOOivst99+YccddwxHHnlkuOyyyyrt98lPfjK77dRrXvOamGwBgAqc/DDpt1tye6/xoSdmtw3G9Y3XqQiqzzvvvHDKKaeE008/PVxxxRXhkEMOCcccc0y4/fbb++534403hj/+4z8OL3nJSwYpLwAAAExuUH3mmWeGk046KZx44onhgAMOCGeffXZYuXJlOOecc3rus2XLlvC6170uvPe97w1PfepTS/PYtGlT2LBhQ+4fAAAATHRQvXnz5nD55ZeHo48+ensCS5Zkf1966aU99/uzP/uzsMcee4Q3vOENlfI544wzwurVq+f/rV27tk4xAQAAYPyC6jvvvDP71HnNmjW559O/161bV7jPN77xjfAP//AP4WMf+1jlfE499dRw3333zf+75ZZb6hQTAAAAhmJZm4nff//94fWvf30WUO++++6V91uxYkX2DwAAAKYmqE4D46VLl4b169fnnk//3nPPPRdt//Of/zy7QNmxxx47/9zWrVu3ZbxsWbjuuuvC0572tPjSAwAAwKR8/Xv58uXhsMMOCxdffHEuSE7/PuqooxZtv//++4err746XHnllfP/Xv3qV4eXvexl2WO/lQYAAGCmvv6d3k7rhBNOCIcffng44ogjwoc//OGwcePG7GrgqeOPPz7svffe2cXG0vtYH3jggbn9d9111+y/C58HAACAqQ+qjzvuuHDHHXeE0047Lbs42aGHHhouuuii+YuX3XzzzdkVwZl+SRjNHeGTghvSJxVvVO8e9qOT9OuYCZEbZy2MpmRG5vAkGaSNBh3ybc2ZKZiK0XUrer3q8SOqPJW3azbjvqn1OHaOou0XbZN7PHjp8ukNtn9U/i219aK0KzTuION8sH177zBJS1HdNmhqLcmnM0kt1n8sTOP5R9SF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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot reward regressors\n", + "plt.figure(figsize=(12, 8))\n", + "plt.plot(regr_reward, label=\"Reward\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "241de8f3", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6c69afc5", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "analysis", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/src/visiomode_analysis/session/regressor.py b/src/visiomode_analysis/session/regressor.py new file mode 100644 index 0000000..052bec4 --- /dev/null +++ b/src/visiomode_analysis/session/regressor.py @@ -0,0 +1,54 @@ +# Copyright (c) 2026 Constantinos Eleftheriou . +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of this +# software and associated documentation files (the "Software"), to deal in the +# Software without restriction, including without limitation the rights to use, copy, +# modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +# and to permit persons to whom the Software is furnished to do so, subject to the +# following conditions: +# +# The above copyright notice and this permission notice shall be included in all copies +# or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +# IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import numpy as np +import pandas as pd + + +def generate_gonogo_regressors( + trials: pd.DataFrame, + timestamps: np.ndarray | list, + go_stim_id: str = "movinggrating", + nogo_stim_id: str = "isoluminantgray", + ucued_push_id: str = "precued", + correct_outcome_id: str = "correct", +) -> tuple[np.ndarray, dict]: + """Generate regressors for a Go/No-Go task based on trial data and metadata. + + Args: + trials (pd.DataFrame): A DataFrame containing trial data with columns for trial type, + start time, and stop time. + timestamps (np.ndarray | list): An array or list of timestamps at which to evaluate the + regressors. This would typically correspond to the timestamps of an imaging session or other continuous recording, relative to the start time of the behavioural session. + go_stim_id (str, optional): The identifier for the Go stimulus. Defaults to "movinggrating". + nogo_stim_id (str, optional): The identifier for the No-Go stimulus. + Defaults to "isoluminantgray". + ucued_push_id (str, optional): The identifier for uncued push responses. Defaults to "precued". + correct_outcome_id (str, optional): The identifier for correct trial outcomes. Defaults to "correct". + + Returns: + np.ndarray: A 2D array where each row corresponds to a timestamp and each column + corresponds to a regressor (e.g., stimulus, response, reward). + dict: A dictionary mapping regressor names to their corresponding column indices in the + output array. + """ + + return np.array([]), dict() From 509b174437cc1942d35dbc92f2c4baacc674ff16 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 3 Aug 2026 15:18:45 +0100 Subject: [PATCH 41/64] formatting chagnes --- src/visiomode_analysis/session/__init__.py | 36 ++++++++++++---------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 435d0c3..ef6337e 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -262,8 +262,8 @@ def summary(path: str) -> dict: total = cued_wc + precued # Trial ratios - percentage_correct = (correct / cued) * 100 - percentage_correct_wc = (correct_wc / cued_wc) * 100 + percentage_correct = (correct / cued) * 100 if cued > 0 else 100 + percentage_correct_wc = (correct_wc / cued_wc) * 100 if cued_wc > 0 else 100 cued_ratio = cued / precued if precued > 0 else 1.0 correction_ratio = cued / correction_trials if correction_trials > 0 else 0.0 @@ -297,23 +297,27 @@ def summary(path: str) -> dict: rt_false_alarms = float(np.median(df[(df.sdt_type == "false_alarm") & (df.correction == False)]["response_time"])) # noqa: E712 rt_false_alarms_wc = float(np.median(df[(df.sdt_type == "false_alarm")]["response_time"])) - rt_iqr = float( - np.percentile( - df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"], 75 + try: + rt_iqr = float( + np.percentile( + df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"], 75 + ) + - np.percentile( + df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"], + 25, + ) ) - - np.percentile( - df[(df.response.notnull()) & (df.outcome != "precued") & (df.correction == False)]["response_time"], - 25, - ) - ) - rt_iqr_wc = float( - np.percentile(df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"], 75) - - np.percentile( - df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"], - 25, + rt_iqr_wc = float( + np.percentile(df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"], 75) + - np.percentile( + df[(df.response.notnull()) & (df.outcome != "precued")]["response_time"], + 25, + ) ) - ) + except IndexError: + rt_iqr = np.nan + rt_iqr_wc = np.nan return { "animal_id": metadata.get("animal_id"), From cc407d07e765bf58e2ebb4aa29943cad0cb0ebfd Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 3 Aug 2026 15:51:09 +0100 Subject: [PATCH 42/64] add function to generate regressors from go/nogo trial data --- src/visiomode_analysis/session/regressor.py | 121 +++++++++++++++++++- 1 file changed, 115 insertions(+), 6 deletions(-) diff --git a/src/visiomode_analysis/session/regressor.py b/src/visiomode_analysis/session/regressor.py index 052bec4..261a09d 100644 --- a/src/visiomode_analysis/session/regressor.py +++ b/src/visiomode_analysis/session/regressor.py @@ -24,25 +24,31 @@ def generate_gonogo_regressors( - trials: pd.DataFrame, + trials_df: pd.DataFrame, timestamps: np.ndarray | list, go_stim_id: str = "movinggrating", nogo_stim_id: str = "isoluminantgray", - ucued_push_id: str = "precued", + uncued_push_id: str = "uncued", correct_outcome_id: str = "correct", + lever_push_duration: float = 0.07, + stimulus_duration: float = 0.15, + reward_duration: float = 1.5, ) -> tuple[np.ndarray, dict]: - """Generate regressors for a Go/No-Go task based on trial data and metadata. + """Generate regressors for the Go/NoGo paradigm for a custom set of timestamps. Args: trials (pd.DataFrame): A DataFrame containing trial data with columns for trial type, start time, and stop time. timestamps (np.ndarray | list): An array or list of timestamps at which to evaluate the - regressors. This would typically correspond to the timestamps of an imaging session or other continuous recording, relative to the start time of the behavioural session. + regressors. This would typically correspond to the timestamps of an imaging session or other continuous recording, relative to the start time of the behavioural session. Timestamps should be in seconds and aligned to the start of the behaviour. go_stim_id (str, optional): The identifier for the Go stimulus. Defaults to "movinggrating". nogo_stim_id (str, optional): The identifier for the No-Go stimulus. Defaults to "isoluminantgray". - ucued_push_id (str, optional): The identifier for uncued push responses. Defaults to "precued". + uncued_push_id (str, optional): The identifier for uncued push responses. Defaults to "uncued". correct_outcome_id (str, optional): The identifier for correct trial outcomes. Defaults to "correct". + lever_push_duration (float, optional): The duration of a lever push in seconds. Defaults to 0.07, which is lever push duration from Dacre et al. 2021. + stimulus_duration (float, optional): The duration of the stimulus in seconds. Defaults to 0.15. + reward_duration (float, optional): The duration of the reward in seconds. Defaults to 1.5. Returns: np.ndarray: A 2D array where each row corresponds to a timestamp and each column @@ -50,5 +56,108 @@ def generate_gonogo_regressors( dict: A dictionary mapping regressor names to their corresponding column indices in the output array. """ + regr_stim_go = [] + regr_stim_nogo = [] + regr_resp_cuedpush = [] + regr_resp_uncuedpush = [] + regr_resp_hold = [] + regr_reward = [] - return np.array([]), dict() + response_times = np.array(trials_df[trials_df.response.notna()].response_time.values) + leverpush_rt = np.nanmedian(response_times) + + trial_idx = [] + + for idx, timestamp in enumerate(timestamps): + trial = trials_df[(trials_df["start_time"] < timestamp) & (trials_df["stop_time"] > timestamp)] + if trial.empty: + continue + + trial_idx.append(idx) + + # Stimulus regressors + regr_stim_go.append( + 1 + if ( + (trial.stim_id.values[0] == go_stim_id) + & (timestamp >= trial.cue_onset.values[0]) + & (timestamp <= trial.cue_onset.values[0] + stimulus_duration) + ) + else 0 + ) + regr_stim_nogo.append( + 1 + if ( + (trial.stim_id.values[0] == nogo_stim_id) + & (timestamp >= trial.cue_onset.values[0]) + & (timestamp <= trial.cue_onset.values[0] + stimulus_duration) + ) + else 0 + ) + + # Response regressors + regr_resp_cuedpush.append( + 1 + if ( + (trial.response.notna().values[0]) + & (trial.outcome.values[0] != uncued_push_id) + & (timestamp >= trial.cue_onset.values[0] + leverpush_rt - lever_push_duration) + & (timestamp <= trial.cue_onset.values[0] + leverpush_rt) + ) + else 0 + ) + regr_resp_uncuedpush.append( + 1 + if ( + (trial.outcome.values[0] == uncued_push_id) + & (timestamp >= trial.stop_time.values[0] - lever_push_duration) + & (timestamp <= trial.stop_time.values[0]) + ) + else 0 + ) + regr_resp_hold.append( + 1 + if ( + (trial.response.isna().values[0]) + & (timestamp >= trial.cue_onset.values[0] + leverpush_rt - lever_push_duration) + & (timestamp <= trial.cue_onset.values[0] + leverpush_rt) + ) + else 0 + ) + + # Reward regressors + if trial.index > 0: + previous_trial = trials_df.iloc[trials_df.index.get_loc(trial.index[0]) - 1] # type: ignore + regr_reward.append( + 1 + if ( + (previous_trial.outcome == correct_outcome_id) + & (timestamp <= trial.start_time.values[0] + reward_duration) + ) + else 0 + ) + + if len(trial_idx) > 0: + regressors = np.array( + [ + regr_stim_go, + regr_stim_nogo, + regr_resp_cuedpush, + regr_resp_uncuedpush, + regr_resp_hold, + regr_reward, + ] + ).T + + regressor_names = { + 0: "stim_go", + 1: "stim_nogo", + 2: "resp_cuedpush", + 3: "resp_uncuedpush", + 4: "resp_hold", + 5: "reward", + } + + return regressors, regressor_names + else: + raise ValueError("No trials found for the provided timestamps.") From 09d4b6e3989a3b71feca9b69a34d697d40e5acd3 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 3 Aug 2026 16:22:58 +0100 Subject: [PATCH 43/64] vectorise regressor generation --- exploratory/session-regressors.ipynb | 141 ++++++++++++---- src/visiomode_analysis/session/regressor.py | 178 +++++++++----------- 2 files changed, 187 insertions(+), 132 deletions(-) diff --git a/exploratory/session-regressors.ipynb b/exploratory/session-regressors.ipynb index 8a72a32..6e91f53 100644 --- a/exploratory/session-regressors.ipynb +++ b/exploratory/session-regressors.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "ee2f6242", "metadata": {}, "outputs": [], @@ -19,12 +19,13 @@ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", - "from visiomode_analysis import session" + "from visiomode_analysis import session\n", + "from visiomode_analysis.session import regressor" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 2, "id": "1c4bd08b", "metadata": {}, "outputs": [], @@ -37,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "id": "274611c3", "metadata": {}, "outputs": [ @@ -96,7 +97,7 @@ " 4.484679\n", " 13.484679\n", " 9.484679\n", - " None\n", + " NaN\n", " NaN\n", " ...\n", " False\n", @@ -128,7 +129,7 @@ " 240.0\n", " 0.0\n", " 0.0\n", - " None\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -168,7 +169,7 @@ " 26.700473\n", " 35.700473\n", " 31.700473\n", - " None\n", + " NaN\n", " NaN\n", " ...\n", " False\n", @@ -296,7 +297,7 @@ " 240.0\n", " 0.0\n", " 0.0\n", - " None\n", + " NaN\n", " NaN\n", " NaN\n", " NaN\n", @@ -312,7 +313,7 @@ " 1786.327744\n", " 1795.327744\n", " 1791.327744\n", - " None\n", + " NaN\n", " NaN\n", " ...\n", " True\n", @@ -370,28 +371,28 @@ "304 MM229 2022-03-09 gonogo unknown 109hrb21d 1796.831960 \n", "\n", " stop_time cue_onset response response_time ... correction pos_x \\\n", - "0 13.484679 9.484679 None NaN ... False NaN \n", + "0 13.484679 9.484679 NaN NaN ... False NaN \n", "1 19.065675 NaN unknown 4.072411 ... False 400.0 \n", "2 25.196554 24.067179 unknown 1.128456 ... False 400.0 \n", - "3 35.700473 31.700473 None NaN ... False NaN \n", + "3 35.700473 31.700473 NaN NaN ... False NaN \n", "4 43.881072 42.206945 unknown 1.670673 ... False 400.0 \n", ".. ... ... ... ... ... ... ... \n", "300 1774.055825 1770.847014 unknown 3.207015 ... True 400.0 \n", "301 1781.851167 1779.057461 unknown 2.791260 ... True 400.0 \n", "302 1786.325765 NaN unknown 4.472022 ... True 400.0 \n", - "303 1795.327744 1791.327744 None NaN ... True NaN \n", + "303 1795.327744 1791.327744 NaN NaN ... True NaN \n", "304 1802.662695 1801.831960 unknown 0.828844 ... False 400.0 \n", "\n", " pos_y dist_x dist_y sdt_type stim_id stim_period \\\n", "0 NaN NaN NaN correct_rejection isoluminantgray NaN \n", - "1 240.0 0.0 0.0 None NaN NaN \n", + "1 240.0 0.0 0.0 NaN NaN NaN \n", "2 240.0 0.0 0.0 hit movinggrating 30 \n", "3 NaN NaN NaN correct_rejection isoluminantgray NaN \n", "4 240.0 0.0 0.0 hit movinggrating 30 \n", ".. ... ... ... ... ... ... \n", "300 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", "301 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", - "302 240.0 0.0 0.0 None NaN NaN \n", + "302 240.0 0.0 0.0 NaN NaN NaN \n", "303 NaN NaN NaN correct_rejection isoluminantgray NaN \n", "304 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", "\n", @@ -411,7 +412,7 @@ "[305 rows x 21 columns]" ] }, - "execution_count": 6, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -422,7 +423,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "id": "01235bb3", "metadata": {}, "outputs": [ @@ -451,7 +452,7 @@ " 'notes': ''}" ] }, - "execution_count": 7, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -462,7 +463,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "cc5c7ad2", "metadata": {}, "outputs": [], @@ -475,7 +476,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 6, "id": "886ea992", "metadata": {}, "outputs": [], @@ -486,7 +487,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "808a8d71", "metadata": {}, "outputs": [], @@ -569,23 +570,23 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 8, "id": "904d0358", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 51, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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M+Sggw6Sq6++2rbMAAAAAABUwojpDldccYWcc845cumll0YB9cUXXywnn3yyPPDAA7LHHnsMbL9jxw553eteF732zW9+U/bee2954oknZOHCha7qAAAAAABAPYLqiy66SM4880w544wzoscquL7qqqvksssuk3PPPXdge/X8s88+KzfeeKNMmzYtek59yp1m+/bt0b+ODRs2mBYTAABUCpecBVA1rEso4evf6lPn22+/XU466aTJBIaGosc33XRT7D7f/e535cQTT4y+/r148WI5/PDD5dOf/rSMjY0l5nPhhRfKggULJv4tXbrUpJgAAAAAAFQvqF67dm0UDKvguJt6vHLlyth9Hn300ehr32o/9Tvqj3/84/LFL35R/vqv/zoxn/POO0/Wr18/8W/FihUmxQQANAW33gEAONV9XOEYg5K+/m2q1WpFv6f+53/+ZxkeHpZjjz1WnnzySfn85z8vF1xwQew+6mJm6h8AAAAAAI0JqhctWhQFxqtWrep5Xj1esmRJ7D7qit/qt9Rqv45DDz00+mRbfZ18+vTp0jhhmP7YXUae0tXNb/JxaFJHh+1hlJRNv/Rv04rfJzTpi540w9L6zO++Mak5qWpY/txU+2Smk5JubJ4exkFaGVPLH1OWsOWvXN3riOuki5Jn/Ysep/WNZT5xWae0cDltFxa2/jinvZbYbVf0kSF9Yw/9lJRmYedPBciqS1jMuUFn3vemnj997RTSjj2OhAX3X5iZee+TLj4L7ztSpK3mufOJ7bqsuR4O7J1SppjzqKn29W8VAKtPmq+77rqeT6LVY/W76TgvfelL5eGHH46263jwwQejYLuRAbVTGdPQekAmfO2lIV+zrFQ1qlSWWrV7RRpOuxh53qyomKx1pVITrI5fAQxLGx8NPIfJFGSOV1f93tW4qXladEKj5pypqTRo89U18DZHilGRYqBoQTB171Otbqf1la98Rf7t3/5N7rvvPnnve98rmzdvnrga+GmnnRb9JrpDva6u/n322WdHwbS6Uri6UJm6cBkAAAAAAFPqN9WnnnqqrFmzRs4///zoK9xHH320XHPNNRMXL1u+fHl0RfAOdeXuH/zgB/KBD3xAjjzyyOg+1SrA/vCHP+y2JgAAAAAA1OFCZWeddVb0L871118/8Jz6avjNN99skxUAAAAAAM35+jcAAAAAAGgjqAYAAAAA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uc+Fv/nNb8KPfexj4bRp08K77767oJYA9Jx88snhv/7rv0Zj+a677grf9KY3hfvuu2+4adOmiW3e8573hEuXLg2vu+668Lbbbgtf/OIXhy95yUsmXh8dHQ0PP/zw8KSTTgrvvPPOaB4uWrQoPO+88ya2efTRR8PZs2eH55xzTjQn/uEf/iGaI9dcc83ENhyvUAff/e53w6uuuip88MEHwwceeCD8yEc+Eq3vag4pzBcg2a233houW7YsPPLII8Ozzz574nnmjV8E1Q4cf/zx4fve976Jx2NjY+Fee+0VXnjhhaWWC/CtP6hutVrhkiVLws9//vMTz61bty6cMWNGFBgrahFW+/3yl7+c2Ob73/9+GARB+OSTT0aPv/SlL4W77LJLuH379oltPvzhD4cHH3zwxOM/+qM/Ct/85jf3lOeEE04I//RP/9RTbQE3Vq9eHc2Bn/70pxNzRAUM3/jGNya2ue+++6JtbrrppuixOrkZGhoKV65cObHNl7/85XD+/PkT8+RDH/pQ+IIXvKAnr1NPPTUK6js4XqGu1DHhq1/9KvMFSLFx48bwwAMPDK+99trwla985URQzbzxj69/57Rjxw65/fbbo6+4dgwNDUWPb7rpplLLBhTtsccek5UrV/bMhwULFkRf/enMB/Vf9ZXv4447bmIbtb2aN7fccsvENq94xStk+vTpE9ucfPLJ0Vdmn3vuuYltuvPpbMO8Q9WtX78++u+uu+4a/VcdQ3bu3NkzntXPGvbdd9+eeaN+4rB48eKe8b5hwwa59957teYExyvU0djYmFx++eWyefPm6GvgzBcgmfp6t/r6dv/YZt74N1JAHo22du3aaMHvHoCKenz//feXVi6gDCqgVuLmQ+c19V/1O51uIyMjUYDRvc1+++03kEbntV122SX6b1o+QBW1Wq3oN24vfelL5fDDD4+eU2NWvYGk3mxKmzdx473zWto26oRo69at0RtSHK9QF3fffXcURKvfgarff37729+Www47TO666y7mCxBDvfl0xx13yC9/+cuB1zjO+EdQDQBAgZ8i3HPPPXLDDTeUXRSg0g4++OAogFbf7PjmN78pp59+uvz0pz8tu1hAJa1YsULOPvtsufbaa6OLg6F4fP07p0WLFsnw8PDA1fPU4yVLlpRWLqAMnTGfNh/Uf1evXt3zurqypLoiePc2cWl055G0DfMOVXXWWWfJ9773PfnJT34i++yzz8Tzasyqr8ytW7cudd7Yzgl19WR1JX6OV6gT9amaurLwscceG11B/6ijjpK/+7u/Y74AMdRXrtW5lboqt/r2n/qn3oT6+7//++hv9Ukx88YvgmoHi75a8K+77rqer/epx+prS8BUor6yrRbN7vmgvhKkfivdmQ/qv2pRVweAjh//+MfRvFG/ve5so27dpX7/06HefVWfXKivfne26c6nsw3zDlWjrumnAmr19VU11vt/2qCOIdOmTesZz+r6AerWJt3zRn0dtvsNKTXe1YmM+kqszpzgeIU6U2N1+/btzBcgxmtf+9pozKtvd3T+qWvXqNuXdv5m3nhWwMXQGk9dOl5d3fhrX/tadGXjd7/73dGl47uvngc06cqS6lYL6p9aQi666KLo7yeeeGLillpq/H/nO98Jf/3rX4e/+7u/G3tLrWOOOSa85ZZbwhtuuCG6UmX3LbXUVSrVLbXe8Y53RLdQUXNM3cKh/5ZaIyMj4Re+8IXoCpYXXHABt9RCJb33ve+NbjN3/fXXh08//fTEvy1btvTc6kTdZuvHP/5xdKuTE088MfrXf6uT17/+9dFtudTtS3bffffYW5188IMfjObEJZdcEnurE45XqLpzzz03ujr+Y489Fh1H1GN1h4gf/vCH0evMFyBb99W/FeaNXwTVjqj7tKmBqu7Lpi4lr+6/CzTRT37ykyiY7v93+umnT9xW6+Mf/3gUFKtF9bWvfW10n9FuzzzzTBREz507N7pVwxlnnBEF693UPa5f9rKXRWnsvffeUbDe7z//8z/Dgw46KJp36hYP6r6mQNXEzRf1T927ukO96fRnf/Zn0W2D1AnL7/3e70WBd7fHH388fOMb3xjds13dO/Qv/uIvwp07dw7Mz6OPPjqaE/vvv39PHh0cr1B1f/InfxI+73nPi8aoOqlXx5FOQK0wXwDzoJp541eg/s/3p+EAAAAAADQRv6kGAAAAAMASQTUAAAAAAJYIqgEAAAAAsERQDQAAAACAJYJqAAAAAAAsEVQDAAAAAGCJoBoAAAAAAEsE1QAAAAAAWCKoBgAAAADAEkE1AAAAAACWCKoBAAAAABA7/z+2DhjX1opUpwAAAABJRU5ErkJggg==", + "image/png": "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mDFDDjroILn66qttywwAAAAAQCWMmO5wxRVXyDnnnCOXXnppFFBffPHFcvLJJ8sDDzwge+yxx8D2O3bskNe97nXRa9/85jdl7733lieeeEIWLlzoqg4AAAAAANQjqL7ooovkzDPPlDPOOCN6rILrq666Si677DI599xzB7ZXzz/77LNy4403yrRp06Ln1KfcabZv3x7969iwYYNpMQEAQKVwJWEAVcO6hBK+/q0+db799tvlpJNOmkxgaCh6fNNNN8Xu893vfldOPPHE6OvfixcvlsMPP1w+/elPy9jYWGI+F154oSxYsGDi39KlS02KCQAAAABA9YLqtWvXRsGwCo67qccrV66M3efRRx+Nvvat9lO/o/74xz8uX/ziF+Wv//qvE/M577zzZP369RP/VqxYYVJMAEBTcOsdAIDbA0vC30CBX/821Wq1ot9T//M//7MMDw/LscceK08++aR8/vOflwsuuCB2H3UxM/UPAAAAAIDGBNWLFi2KAuNVq1b1PK8eL1myJHYfdcVv9VtqtV/HoYceGn2yrb5OPn36dGmcMEx/7C4jT+nq5jf5ODSpo8P2MErKpl/6t2nF7xOa9EVPmmFpfeZ335jUnFQ1LH9uqn0y00lJNzZPD+MgrYyp5Y8pS9jyV67udcR10kXJs/5Fj9P6xjKfuKxTWrictgsLW3+c015L7LYr+siQvrGHfkpKs7DzpwJk1SUs5tygM+97U8+fvnYKacceR8KC+y/MzLz3SRefhfcdKdJW89z5xHZd1lwPB/ZOKVPMedRU+/q3CoDVJ83XXXddzyfR6rH63XScl770pfLwww9H23U8+OCDUbDdyIDaqYxpaD0gE7720pCvWVaqGlUqS63avSINp12MPG9WVEzWulKpCVbHrwCGpY2PBp7DZAoyx6urfu9q3NQ8LTqhUXPO1FQatPnqGnibI8WoSDFQtCCYuvepVrfT+spXviL/9m//Jvfdd5+8973vlc2bN09cDfy0006LfhPdoV5XV/8+++yzo2BaXSlcXahMXbgMAAAAAIAp9ZvqU089VdasWSPnn39+9BXuo48+Wq655pqJi5ctX748uiJ4h7py9w9+8AP5wAc+IEceeWR0n2oVYH/4wx92WxMAAAAAAOpwobKzzjor+hfn+uuvH3hOfTX85ptvtskKAAAAAIDmfP0bAAAAAAC0EVQDAAAA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rPCf/umfJrb5xS9+EQ4PD4ef+9znwt/85jfhxz72sXDatGnh3XffXVBLAHpOPvnk8F//9V+jsXzXXXeFb3rTm8J999033LRp08Q273nPe8KlS5eG1113XXjbbbeFL37xi8OXvOQlE6+Pjo6Ghx9+eHjSSSeFd955ZzQPFy1aFJ533nkT2zz66KPh7Nmzw3POOSeaE//wD/8QzZFrrrlmYhuOV6iD7373u+FVV10VPvjgg+EDDzwQfuQjH4nWdzWHFOYLkOzWW28Nly1bFh555JHh2WefPfE888YvgmoHjj/++PB973vfxOOxsbFwr732Ci+88EIXyQOV1R9Ut1qtcMmSJeHnP//5iefWrVsXzpgxIwqMFXWyr/b75S9/ObHN97///TAIgvDJJ5+MHn/pS18Kd9lll3D79u0T23z4wx8ODz744InHf/RHfxS++c1v7inPCSecEP7pn/6pp9oCbqxevTqaAz/96U8n5ogKGL7xjW9MbHPfffdF29x0003RYxVEDw0NhStXrpzY5stf/nI4f/78iXnyoQ99KHzBC17Qk9epp54aBfUdHK9QV+qY8NWvfpX5AqTYuHFjeOCBB4bXXntt+MpXvnIiqOY44x9f/85px44dcvvtt0dfce0YGhqKHt900015kwdq5bHHHpOVK1f2zIcFCxZEP4nozAf1X/WV7+OOO25iG7W9mje33HLLxDaveMUrZPr06RPbnHzyydFXZp977rmJbbrz6WzDvEPVrV+/PvrvrrvuGv1XHUN27tzZM57Vzxr23XffnnmjfuKwePHinvG+YcMGuffee7XmBMcr1NHY2Jhcfvnlsnnz5uhr4MwXIJn6GZH6mVD/sYB5499IAXk02tq1a6MFv/tER1GP77///tLKBZRBBdRK3HzovKb+q34P2m1kZCQKMLq32W+//QbS6Ly2yy67RP9NyweoolarFf3G7aUvfakcfvjh0XNqzKo3kNSbTWnzJm68d15L20YF3lu3bo3ekOJ4hbq4++67oyBa/X5aXWfg29/+thx22GFy1113MV+AGOrNpzvuuEN++ctfDrzGccY/gmoAAAr8FOGee+6RG264gTYHUhx88MFRAK2+2fHNb35TTj/9dPnpT39KmwExVqxYIWeffbZce+210cVbUTy+/p3TokWLZHh4eOAqrerxkiVL8iYP1EpnzKfNB/Xf1atX97yurmCsrgjevU1cGt15JG3DvENVnXXWWfK9731PfvKTn8g+++wz8bwas+qr2evWrUudN7ZzQl09WV2Jn+MV6kR9e0Ndwf7YY4+NrqB/1FFHyd/93d8xX4AY6uvd6txK3f1BfftP/VNvQv393/999Lf61hLHGb8Iqh0s+mrBv+6663q+3qceq68tAVOJ+sq2OrHvng/qq6fqt9Kd+aD+q4IHdQDo+PGPfxzNG/Xb68426tZd6nemHerdV/XJhfrqd2eb7nw62zDvUDXqmn4qoFZfX1Vjvf+nDeoYMm3atJ7xrK4foG6h1T1v1Ndhu9+QUuNdBczqK7E6c4LjFepMHSO2b9/OfAFivPa1r42OEerbHZ1/6to16valnb85znhWwMXQGk/dokRd3fhrX/tadGXjd7/73dEttbqv0go06cqS6pY+6p9aQi666KLo7yeeeGLillpq/H/nO98Jf/3rX4e/+7u/G3tLrWOOOSa85ZZbwhtuuCG6UmX3LbXUVSrVLbXe8Y53RLdQUXNM3Sqo/5ZaIyMj4Re+8IXoSskXXHABt9RCJb33ve+NbjN3/fXXh08//fTEvy1btvTc6kTdZuvHP/5xdEutE088MfrXf0ut17/+9dFtudRtsnbffffYW2p98IMfjObEJZdcEntLLY5XqLpzzz03ujr+Y489Fh1H1GN1h4gf/vCH0evMFyBb99W/mTf+EVQ7ou4Hqk6I1P2q1S1L1P13gSb6yU9+EgXT/f9OP/30idtqffzjH4+CYnXy/trXvja6z2i3Z555Jgqi586dG90S6IwzzoiC9W7qHtcve9nLojT23nvvKFjv95//+Z/hQQcdFM07dSshdV9ToGri5ov6p+5d3aHedPqzP/uz6LZBKjD+vd/7vSjw7vb444+Hb3zjG6N7tqt7VP/FX/xFuHPnzoH5efTRR0dzYv/99+/Jo4PjFaruT/7kT8LnPe950ThWbx6p40gnoFaYL4B5UM288StQ/+f703AAAAAAAJqI31QDAAAAAGCJoBoAAAAAAEsE1QAAAAAAWCKoBgAAAADAEkE1AAAAAACWCKoBAAAAALBEUA0AAAAAgCWCagAAAAAALBFUAwAAAABgiaAaAAAAAABLBNUAAAAAAIid/x+2DhjXN69DCwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -603,13 +604,13 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 9, "id": "9764ab7f", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAK9CAYAAABYVS0qAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAChYElEQVR4nOzdB5gT1drA8Xe2Lx3pIAiICkhRQRDQz4Ziw4telcv1CiJyrwUbNlAEUS/YO1hQRK8FLAgqigKKjaYCCkiV3ntnC7vzPedkk02y2d1kN8mcJP/f8wQ2yWTmtJnJmzlzjmXbti0AAAAAAMBxSU4nAAAAAAAAuBCkAwAAAABgCIJ0AAAAAAAMQZAOAAAAAIAhCNIBAAAAADAEQToAAAAAAIYgSAcAAAAAwBAE6QAAAAAAGIIgHQAAAAAAQxCkAwAAAABgCIJ0AEDcGTdunFiW5XmkpKRIgwYN5Prrr5dNmzY5nbyYtHbtWp8yTUpKkmOOOUYuvvhimT17ttPJAwAgbqQ4nQAAACLlkUcekSZNmkhWVpbMmTNHB+8//fSTLF68WDIyMpxOXkzq1auXXHLJJZKXlycrVqyQ0aNHy7nnniu//PKLtG7d2unkAQAQ8wjSAQBxS13lbd++vf77xhtvlJo1a8oTTzwhn332mVxzzTVOJy8mnXbaafKvf/3L8/yss87S5fzKK6/ogD2aDh06JBUrVpRYoX4sSktL070QAAAoDmcJAEDCUAGl8tdff/m8vmzZMrnqqqt09211hV0F9iqQ95abmyvDhw+XE044QS9To0YNOfPMM2XatGmeZVR3+kqVKsnq1aulW7duOoCsX7++vqJv23aRAPPuu++Whg0bSnp6upx00kny9NNPF1lOdS0fMGCATJo0SVq1aqWXPfnkk2Xq1Kk+yx04cEDuvPNOady4sV6mdu3acsEFF8j8+fN9lps7d65cdNFFUrVqValQoYKcffbZ8vPPP4e9TPfu3avT485fs2bN9A8k+fn5Psvt2rVLrrvuOqlSpYpUq1ZN+vTpI7///rvOt+r54F+2ajvqSn7lypXl2muv1e+pdT7//PO6XFTd1KlTR/7zn//Inj17fLb166+/6npRP9ZkZmbqXhY33HCDzzLjx4+Xdu3a6fWrNKneAS+88ILPMqp+r776at1eVBmeccYZMmXKFJ9lZs6cqfOg1jdkyBB9u4Vadv/+/UG1JQBA4uJKOgAgoe6rVqpXr+55bcmSJdKlSxcdRA0aNEgH1h9++KH06NFDPvnkE7niiiv0cg8//LCMHDlSX5Hv0KGDDrZU0KeCYBUMu6lu4CoIVoHbk08+qYPpYcOGydGjR3WwrqhA/PLLL5fvvvtO+vXrJ6eccop8/fXXcu+99+p75p977jmfdKsu+hMnTpRbbrlFB48vvvii/P3vf5f169frAE+56aab5OOPP9YBfcuWLXXwqz63dOlSffVb+fbbb/VVbxWEqjSpK7pvvfWWnHfeefLjjz/qfIWjTA8fPqyDf5UXFSw3atRIZs2aJYMHD5YtW7bogNodXHfv3l3mzZsnN998szRv3lwmT56sA/VAVBmqIFsFtOoHDRX0KmobKqDv27ev3H777bJmzRp5+eWXZcGCBfoHiNTUVNm+fbtceOGFUqtWLV3P6gcBlXZVrm4qSFbd+c8//3z9g4Kiyk+t44477tDPt23bJp07d9Z5VNtS5f/222/r+lTl724vbo8++qi+en7PPfdIdna2/jvYtgQASFA2AABx5q233lKXo+3p06fbO3bssDds2GB//PHHdq1atez09HT93O3888+3W7dubWdlZXley8/Ptzt37myfcMIJntfatm1rX3rppSVut0+fPnq7t912m8+61OfS0tJ0WpRJkybp5R577DGfz1911VW2ZVn2qlWrPK+p5dRnvV/7/fff9esvvfSS57WqVavat956a7FpU+lQ+enWrZv+2+3w4cN2kyZN7AsuuKDEvK1Zs0Zvc/jw4TofW7dutX/88Uf79NNP169/9NFHnmUfffRRu2LFivaKFSt81jFo0CA7OTnZXr9+vX7+ySef6M8+//zznmXy8vLs8847T7+u6tG/bNU6vKk0qNffe+89n9enTp3q8/qnn36qn//yyy/F5vGOO+6wq1SpYh89erTYZe688069HrVdtwMHDugybNy4sU6/8t133+nlmjZtqsvYWzBtCQCQuOjuDgCIW127dtVXTlWXa9WdXV0lV93Yjz32WP3+7t279dVldX+66i6+c+dO/VBXodUV25UrV3pGg1dXXtVVd/VaadTVbP/u6jk5OTJ9+nT92pdffinJycn6Sqw31f1dxeVfffVVkXwcf/zxnudt2rTRXbFVt2s3lT7VlX3z5s0B07Rw4UKd9n/+8586f+68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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAK9CAYAAABYVS0qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAoYlJREFUeJzs3QeYE9XawPF3ti8d6SAIiApIUUEQ0M+GYsOLXpXL9Qoicq8FGzZQBFEv2DtYUESvBSwIKooCio2mAgpIld57Zwu78z3nZJNNstndZDfJnCT/3/MENslk5rSZyZs5c45l27YtAAAAAADAcUlOJwAAAAAAALgQpAMAAAAAYAiCdAAAAAAADEGQDgAAAACAIQjSAQAAAAAwBEE6AAAAAACGIEgHAAAAAMAQBOkAAAAAABiCIB0AAAAAAEMQpAMAAAAAYAiCdABA3Bk3bpxYluV5pKSkSIMGDeT666+XTZs2OZ28mLR27VqfMk1KSpJjjjlGLr74Ypk9e7bTyQMAIG6kOJ0AAAAi5ZFHHpEmTZpIVlaWzJkzRwfvP/30kyxevFgyMjIo+DLo1auXXHLJJZKXlycrVqyQ0aNHy7nnniu//PKLtG7dmjIFAKCcCNIBAHFLXeVt3769/vvGG2+UmjVryhNPPCGfffaZXHPNNU4nLyaddtpp8q9//cvz/KyzztLl/Morr+iAPZoOHTokFStWlFihfixKS0vTvRAAACgOZwkAQMJQAaXy119/+by+bNkyueqqq3T3bXWFXQX2KpD3lpubK8OHD5cTTjhBL1OjRg0588wzZdq0aZ5lVHf6SpUqyerVq6Vbt246gKxfv76+om/bdpEA8+6775aGDRtKenq6nHTSSfL0008XWU51LR8wYIBMmjRJWrVqpZc9+eSTZerUqT7LHThwQO68805p3LixXqZ27dpywQUXyPz5832Wmzt3rlx00UVStWpVqVChgpx99tny888/h71M9+7dq9Pjzl+zZs30DyT5+fk+y+3atUuuu+46qVKlilSrVk369Okjv//+u8636vngX7ZqO+pKfuXKleXaa6/V76l1Pv/887pcVN3UqVNH/vOf/8iePXt8tvXrr7/qelE/1mRmZupeFjfccIPPMuPHj5d27drp9as0qd4BL7zwgs8yqn6vvvpq3V5UGZ5xxhkyZcoUn2Vmzpyp86DWN2TIEH27hVp2//79QbUlAEDi4ko6ACCh7qtWqlev7nltyZIl0qVLFx1EDRo0SAfWH374ofTo0UM++eQTueKKK/RyDz/8sIwcOVJfke/QoYMOtlTQp4JgFQy7qW7gKghWgduTTz6pg+lhw4bJ0aNHdbCuqED88ssvl++++0769esnp5xyinz99ddy77336nvmn3vuOZ90qy76EydOlFtuuUUHjy+++KL8/e9/l/Xr1+sAT7npppvk448/1gF9y5YtdfCrPrd06VJ99Vv59ttv9VVvFYSqNKkrum+99Zacd9558uOPP+p8haNMDx8+rIN/lRcVLDdq1EhmzZolgwcPli1btuiA2h1cd+/eXebNmyc333yzNG/eXCZPnqwD9UBUGaogWwW06gcNFfQqahsqoO/bt6/cfvvtsmbNGnn55ZdlwYIF+geI1NRU2b59u1x44YVSq1YtXc/qBwGVdlWubipIVt35zz//fP2DgqLKT63jjjvu0M+3bdsmnTt31nlU21Ll//bbb+v6VOXvbi9ujz76qL56fs8990h2drb+O9i2BABIUDYAAHHmrbfeUpej7enTp9s7duywN2zYYH/88cd2rVq17PT0dP3c7fzzz7dbt25tZ2VleV7Lz8+3O3fubJ9wwgme19q2bWtfeumlJW63T58+eru33Xabz7rU59LS0nRalEmTJunlHnvsMZ/PX3XVVbZlWfaqVas8r6nl1Ge9X/v999/16y+99JLntapVq9q33nprsWlT6VD56datm/7b7fDhw3aTJk3sCy64oMS8rVmzRm9z+PDhOh9bt261f/zxR/v000/Xr3/00UeeZR999FG7YsWK9ooVK3zWMWjQIDs5Odlev369fv7JJ5/ozz7//POeZfLy8uzzzjtPv67q0b9s1Tq8qTSo19977z2f16dOnerz+qeffqqf//LLL8Xm8Y477rCrVKliHz16tNhl7rzzTr0etV23AwcO6DJs3LixTr/y3Xff6eWaNm2qy9hbMG0JAJC46O4OAIhbXbt21VdOVZdr1Z1dXSVX3diPPfZY/f7u3bv11WV1f7rqLr5z5079UFeh1RXblStXekaDV1de1VV39Vpp1NVs/+7qOTk5Mn36dP3al19+KcnJyfpKrDfV/V3F5V999VWRfBx//PGe523atNFdsVW3azeVPtWVffPmzQHTtHDhQp32f/7znzp/7ryqbvfqyvEPP/xQpCt6IOoKvCrTunXr6q7u6krzM888o8vX7aOPPtLvqavr7u2oh8qH6mmgtqWoXgbqKnf//v09n1VX92+99dZit6+uuHtT21Jd99UVaO9tqd4Cqnu86q3gLh/liy++0N3NA1HLqPIoqdu5qjt19VtdzXdT2/n3v/+tr8z/+eefPsurXgGqa73/doJtSwCAxEOQDgCIW6NGjdIBl+qGrO5jVsGbuj/abdWqVToofuihh3Tg6f1Qwaiiukkrqqu6us/6xBNP1Pcpq67pf/zxR5FtqiCzadOmPq+pz3h3DV+3bp2+V111XffWokULz/veVHdxfyoA9r7nWnWtV6PWqx8kVBCpulR7B/HugFAFjf55feONN3RX7H379pVapioYVWX6+eefy1133SVHjhzRgbc3tS0VgPtvRwXp3mWq8lmvXj1Pt3U3df96IGoqPfcPLN7bUulW9+D7b+/gwYOebanu9+oWAXUvuLon/W9/+5vu6q/y7aZuJ1B1pW4JUNtR96v73/uv0qzGD/BXXN2p+979BduWAACJiXvSAQBxSwWr7tHd1T3m6uqnupK8fPlyffXTfeVY3S+srpwH4g4Y/+///k8PWqbumf7mm290YKvuHX/11Vf1vcWRpK66B+I9yJzqDaCuXn/66ac6fU899ZS+r1rdc62CTnde1evqHvhAVJmURg125g62L7vsMp02dY+3mobNXdZqW+rK9n333RdwHe4fLUKlfmDxHxldbUsF6O+9917Az6hg3d2jQf1Yo6biUz8wqDEAVBCuegGo11Te1XpUjwP1nurNoB4qkO/du7e+77ws/K+iO92WAAAxwOn+9gAAROqedP/7j933CY8cOVI/37Ztm34+ePDgkLeh7kM+9dRT7QYNGhS5b3r58uU+y3711Vf69Q8++EA///e//63vzd6/f7/PcnPmzClyr7l6Huhe8+OOO05vrzgqbyptXbp00c/nzZun1/Xaa6/ZZeG+J/2pp57yeX3Pnj36fnh1r7tby5Yt7U6dOpW6zv79+9upqan2oUOHfF5336vuf0+6us/d3y233KLL0v++72Co+9XVdsaMGRPwfXV/+X/+8x+9zMqVK/VrJ554ot2hQ4ciyz7++ON6uUWLFvm0Ne979UNpSwCAxEV3dwBAwjjnnHP01XU1urias1pdOVWvvfbaa3rUcX87duzw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97wuk2MbHSdtTm0vD//3cf1DhjJu3Dip1uL/fD47aep3YiX7Th82efJkOa3bPyWj6RnStEUbGT58uE/+Vq5cKf93ZT/9fstz/i7Tfgiud3V6WprUrVtX6h/bSK7p3U/+75zz5LPPPtPv9bv6Mhk5dJDP8v169ZMHBzzoeT569Gg54YQT9HRsqrfAVVdd5bO8qntd5scco7fz8MMPSywo0zzp//jHP+T++++Xjz76SB+AVOZ//vln3XB69+4d/lQCAAAAiBoVNB7J9ZpGKidPJDe/4O+jgX80cb/v+cxRkeTCp1k5rvePJOfJYfeyVr5rOffn8/IlM8Uq848cixcvllmzZslx9Wp6Xhv50lh597Nv5dVXX5UTjmsgP3z1ifzr9iFSq0Z1ObtTO3noqdHy54rV8tW7L0vlZmfI978ukqysIz7rvffR5+X54ffICZ0uluEjnpTbb+gll579l9SpXUs2bdokl1xyie56/84778iyZcukf//+OnD0Dgo/m/CZ3HP3PTL383dk9m9/yPV3DZMuF10lF1xwgXwyeYo8N+Z9GT96pJx8UlPZun2X/L5+n+ezw+8bLpv+2iTjx4+X+vXry6dvvywX/WuALJr+oZzQtFGRcvh65mzZuXuv3Hdz72IvugZr3qx5cmPvG+XF4XfLWR1Plb9258m/B9yl31PjkalY8Morr5Q61SrovO07cEDuHPaMlEVGZqYc2LcnqGV//fVXuf322+V///ufdO7cWXbv3i0//vijzzJvv/22DBw4UI+lNnv2bF1HXbp00WUed0H6iBEj5NZbb5WGDRvqOeBatmyp///nP/+pR3wHAAAAELtUgN5y6NfFvLs1yLUUt9x6v2VW+rz75811pUJq8EH69998L6cfd7rk5+VLdna2JCUlycuP3K3fy87OkREvjZXpM76VTp06ieQckqY9L5efflkor737iQ7S12/aKqe2Oknat20pWbUayxmZNQrWvMazjQF9e8rfLz1fcuu0kAdHPCM/z5wub40dK4MG3a+v5qq46OWXX9Y/LjRv3lw2b96sL2oOHTrUs44TW57oGmR78wIdWL88boLMmDFDB4zrN26SurVqSNezOkhqaqo0alBPOlxwoizZv1a2bNwiE9+fKOvXr9cBunLPTb1l6nez5K0Jk2XE4NuKlMnKNa4ybt6siZTXC4+/oHsG9LnmIv28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", "text/plain": [ "
" ] @@ -633,23 +634,23 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": null, "id": "a382bdc3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 53, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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AAAAiCSoBgAAgEiCagAAAIgkqAYAAIBIgmoAAACIJKhuQf4+i/nnu+/vt+3v4m0noT69tmks34ZapO3bbfVKvu27fC0cSzV2bLAMJfcPH8Kgbve+pgMn10g5il/vvrdu0ue1Bfs1U7weZerOJ2n1vs3JmC6eddabwk2Tdu/Ju/Dpcb0bYb5/e9Wl//2l515vo4ox4y/qWFTh+FKebI0x2eA9iKu8Pux7NTeXb4UTo7ppJvWPsYXbLXiieJkZYscMkkyDzRxzzlSlnerO60Havuq6M2i79TqWjOnhYrKD6rPOOivst99+YccddwxHHnlkuOyyyyrt98lPfjK77dRrXvOamGwBgAqc/DDpt1tye6/xoSdmtw3G9Y3XqQiqzzvvvHDKKaeE008/PVxxxRXhkEMOCcccc0y4/fbb++534403hj/+4z8OL3nJSwYpLwAAAExuUH3mmWeGk046KZx44onhgAMOCGeffXZYuXJlOOecc3rus2XLlvC6170uvPe97w1PfepTS/PYtGlT2LBhQ+4fAAAATHRQvXnz5nD55ZeHo48+ensCS5Zkf1966aU99/uzP/uzsMcee4Q3vOENlfI544wzwurVq+f/rV27tk4xAQAAYPyC6jvvvDP71HnNmjW559O/161bV7jPN77xjfAP//AP4WMf+1jlfE499dRw3333zf+75ZZb6hQTAAAAhmJZm4nff//94fWvf30WUO++++6V91uxYkX2DwAAAKYmqE4D46VLl4b169fnnk//3nPPPRdt//Of/zy7QNmxxx47/9zWrVu3ZbxsWbjuuuvC0572tPjSAwAAwKR8/Xv58uXhsMMOCxdffHEuSE7/PuqooxZtv//++4err746XHnllfP/Xv3qV4eXvexl2WO/lQYAAGCmvv6d3k7rhBNOCIcffng44ogjwoc//OGwcePG7GrgqeOPPz7svffe2cXG0vtYH3jggbn9d9111+y/C58HAACAqQ+qjzvuuHDHHXeE0047Lbs42aGHHhouuuii+YuX3XzzzdkVwZl+SRjNHeGTghvSJxVvVO8e9qOT9OuYCZEbZy2MpmRG5vAkGaSNBh3ybc2ZKZiK0XUrer3q8SOqPJW3azbjvqn1OHaOou0XbZN7PHjp8ukNtn9U/i219aK0KzTuION8sH177zBJS1HdNmhqLcmnM0kt1n8sTOP5R9SF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", + "image/png": "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JpMDACg592iugTrBecxUcBhh6ATVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVDdgvx9FvPPd9/fb9vfxdtOQn16bdNYvg21SNu32+qVfNt3+VrYl2rs2GAZSu4fPoRO3e59TQdOrpFyFL/efW/dpM9rC/Zrpng9ytSdT9LqfZuTMZ0868w3hZsm7d6Td+HT43o3wvzx7VWX/veXnnu9jSrG9L+otajC+lKebI0+2eA9iKu8Pux7NTeXb4UTo7ppJvXX2MLtFjxRPM0M8cAMkkyDzRxzzlSlneqO60Havuq8M2i79VpLxnS5mOyg+qyzzgr77bdf2HHHHcORRx4ZLrvsskr7ffKTn8xuO/Wa17wmJlsAoAInP0z67Zbc3mt8TEiXadWstsG4vvE6FUH1eeedF0455ZRw+umnhyuuuCIccsgh4Zhjjgm333573/1uvPHG8Md//MfhJS95ySDlBQAAgMkNqs8888xw0kknhRNPPDEccMAB4eyzzw4rV64M55xzTs99tmzZEl73uteF9773veGpT31qaR6bNm0KGzZsyP0DAACAiQ6qN2/eHC6//PJw9NFHb09gyZLs70svvbTnfn/2Z38W9thjj/CGN7yhUj5nnHFGWL169fy/tWvX1ikmAAAAjF9Qfeedd2afOq9Zsyb3fPr3unXrCvf5xje+Ef7hH/4hfOxjH6ucz6mnnhruu++++X+33HJLnWICAADAUCxrM/H7778/vP71r88C6t13373yfitWrMj+AQAAwNQE1WlgvHTp0rB+/frc8+nfe+6556Ltf/7zn2cXKDv22GPnn9u6deu2jJctC9ddd1142tOeFl96AAAAmJSvfy9fvjwcdthh4eKLL84FyenfRx111KLt999//3D11VeHK6+8cv7fq1/96vCyl70se+y30gAAAMzU17/T22mdcMIJ4fDDDw9HHHFE+PCHPxw2btyYXQ08dfzxx4e99947u9hYeh/rAw88MLf/rrvumv134fMAAAAw9UH1cccdF+64445w2mmnZRcnO/TQQ8NFF100f/Gym2++ObsiONMvCaO5I3xScEP6pOKN6t3DfnSSfgdmQuT6WQu9KZmRMTxJBmmjQbt8W2NmCoZidN2KXq+6fkSVp/J2zWbcN7Uea+co2n7RNrnHg5cun95g+0fl31JbL0q7QuMO0s8H27f3DpM0FdVtg6bmknw6k9Ri/fvCNJ5/RF2o7OSTT87+Fbnkkkv67nvuuefGZAkze5IIAACMLx8pN6jTZGIAAGXnHg2efHScyUwHJ6QwdIJqAAAAiCSoBgAAAEE1AAAADJdPqgEAACCSoLptC26nsOj2CrlbIoSxlL+af3Eh2yj6uLbHQr1vC9BuBWJv1ZG7pUFSvU6F25aUYdDbmVRR/XZqRXUqq+foOmGtY7pg475VSIZzW6DCWxcNeoupXPrjeWuOspKUda9BalJtbPfeZ5xUmTvKxn7S4mISM7fFFCMZ0q2studXr5D1buTUvFHNA/n1N2noFkOFGxTm2WezbduV7Nf2+VVTyefrNViqMWt7G+00SJpVz/t6zY0xc1WbtxycNoJqmDEmRaaBtV37ANDyWmuxrUxQDTN8+5Vet2Ipuq1Kk7dtGYXiOk14pYZEK2lLpsiEDOhZuL3XpNRxMkrZrmlog2mowzgTVAMAAEAkQTUAAABEElQDAABAJEE1AAAARBJUAwAAQCRBNQAAAEQSVAMAAEAkQTUAAABEElQTLUlGm28Stheg1+Ne+86acaj3OJShyTq0Up8ht9E0HJNxPs6DNm9bh6ffHDntiuqeO94Nt03l/tPwIembb65/N5dxWUpV2ra7PE0ci5ixnCvDgEXInZs0PuxyHbd86x79vEofGKTo/ZKfpDWou6hVit3UXJI/v51sSdvnUCMmqGYqTOPgBAAAxp+gukGdTpOpAQAM79yjE5zITAWHEYZOUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQ3YJet4RIn89dkj/7u95tDUYhfxuGXtuMZ9lTbRetV/qt55vLq3pmTZar9HYhLd6qZnu+zd6ypN1boNQoRxI/LvvdIqjN2ymV3S5j4NvT9Eh/nKafOmUpvr1TfGVyu/ZIZ+HT49R2tcd17vnet8pq5e53MbdqGjCf2Pzr5Ft3fqgzT7VuiHlVGGr10yxIqOrxWHS7p5K1t/3zooZuJ9Xo+UpL6dZMa7Dbk1WLGaqct/fNJ+KWtQiqAZhAFvey9oHJvjK0K5GPjwnpMq2a1TYY1zdex5FPqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqAQAAIJKgGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqCaiZOEZNt/t/2n7+Ne+86acah3v+MyObZXIpmC4zQVh6Tl45CMsM+3NWamYywWS0oqV/Ry7ngnwy3P9jI0nG+/FLvXyybzLEmsSlMkDc+HMWO5yTLkzk0GSqkk7QqN26stqpQrt33NivQ/J+u1z/hNUvk2qNDeDVWhzT40SkmYPoJqAAAAiCSoblAndJpMDgCg/7lHg6cezmOmhNNRGDpBNQAAAEQSVAMAAEAkQTUAAABEElS3oNdVEpMFVwzc9nfxfuOkypVRW7kSckOXTmz7isq9r17Zarb5vlQjrypX8Sxqs8Kr5uaeK9in5atlL0y337EurlP/eo52TCYDjMver8X0y7ir5ha9PuCVdMfyONU9bmVXom4m56pje7zart64Llubkhbn4vzcVvEK31FjL67udfLNn5fUK2TZ9m33r1HNA1XvOFKaTskaWf3OJgt2Ktuv9fOThtJp8Mr8C8+/q+1TYZu6Y2aAilTt7/l2a67eY3hR9rEiqIYZM463qoC69OKy9tFCAAzGOWN1gmqYMZ2uS8X2umps0RVgm7zC7CgU12nCKzUkWklbMkUmZEDPwpXIJ6WOk1HKdk1DG0xDHcaZoBoAAAAiCaoBAAAgkqAaAAAAIgmqAQAAIJKgGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqiZYko823O/ukamFGVOZZPVbjVoYm69BGfYbeRtNwUMb6OA/WvklLE9Y0H/WY45U73o2Wpnp6ldewyun1e7HidnXzbKD18sei4fQqVrbJeT7qPCUq7fi2rbRv7nG9evTtij0yH8elqW6R2qjCGDZLLUnXgW16PIwDQTVTYfqGJgAAMAkE1Q3qdJpMDQBgeOceneBEZio4jDB0gmoAAACIJKgGAACASIJqAAAAiCSobkGvK4mmzy+8qmTbVxNuQqWrZ7ZxJeSm0mm5XXtevbLly6fFpt7kFRfL+m/+uZauZNzwGKp7RdW2lOXd7yq5/dokGeFcMfCVdHNXDu2f16jUKUrRpoNUpVf79E1/fJour8K4Lp9/kvb6R8S8E7MmxNa9Tr6DXHG7zjzVhvxVrIfZmbvybSrFoj6ce5xUa4cKhWr/uDSUToNXg4+5EnuVPIfZ7arM8WWvVcqnx2P6E1QDMIEs9X1bR/Mw4RexctG08TEhXaZVs9oG1pLqBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1URLQjLS1kuSXo97l2u0JR6dcah3n8MyMfJVSCa+jabgkLTeLoPMcwMfz5YOUL85ctIlEXWvun5Eladick0fkb7pdde3wZzL6lqlbbvL00TZYg5nvgzDzz8m7Sr5JD0fVzku9fLK7RvRCOM4Q9Vtg6bmkmmar5Mw3QTVTIVRB/gAAMBsElQDAEyoTqfBtEKDiTE6DiMMnaAaAAAAIgmqAQAAIJKgugW5i1zkLjCw+DJHTV+Uow29a9DWxU62pdXUtRnavsZDr/SHmW+dvKpcbKPoeBZtW3ZBlyp9Z3DVLipTXKfhXrSo0Yv+9Nm230Vo4i7cU3/Lsv4Qo1edk0m6UFZZ/xsk74g2Gd91p3xc5+s73AtUxsxtTY69OhdNqjWX1GytZMT9K3YdbDbfAS5mmL9qXEE+3eeTVcuz4GJ0Jem2oY3kB00zan6seQG4ptKssm/f850ex79y1j3m1mm6aFobBNUwY8yJTANLe0n7GOgADLrWWmwrE1TDDF/UptcFboouVtPkxXBGobhOE16pIdFK2pIpMiEDehYumjYpdZyMUrZrGtpgGuowzgTVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVBNtCQZbb5JSArL0q9cyagKPWLjUO9xKMOgqvaz6PSbT7J/fpN/SMb6OA/avm0dnmk+7GVtXvR60uKYqJpc4/n2S6+leawsqaTu2Gugp/Y6T6hchgEbKCb/mLSr7dBVluKn++RV/LhSttWKtOD58Zul8m1QXr6matD0mJjmc6hRE1Q3qNNpMjXqmMKxCQBDPffoBCcyU8FhhKETVAMAAEAkQXUL8l/VyD+f+7pDkiz4O4yn7q8M9fyqTvPZNfU1l1E1azJmX0Wq8/WbovQKvzZZklb3V7ha+ypr1a/+F9apaIf2y1xF2THt/zOH3tvFjKuYr7CWNG2UXl/LHKevkZV+/bjH4+37t1uZhemPU9vVn6f6bzO/lrTxU41c/6uWQUwxeqVdp/+Xfi07N0/Hf6U44uXWzrfa1lS+ua+HF61RPR4vLs+CdEq+Mtz6cWnq/K3ReT7ipwBVtkmG1zZVf5rQq19VXst77DOu68W4EFQDMHGs7SXto4EAGHSttZZUJqiGGdbrt3hFv6ub9GsGFNdpwis1JFoJpsiEDOhZ+H33pNRxMkrZrmlog2mowzgTVAMAAEAkQTUAAABEElQDAABAJEE1AAAARBJUAwAAQCRBNQAAAAwzqD7rrLPCfvvtF3bcccdw5JFHhssuu6znth/72MfCS17ykrDbbrtl/44++ui+2wMAAMDUBtXnnXdeOOWUU8Lpp58errjiinDIIYeEY445Jtx+++2F219yySXhta99bfjKV74SLr300rB27drw8pe/PNx6661NlB8AAAAmJ6g+88wzw0knnRROPPHEcMABB4Szzz47rFy5MpxzzjmF2/+v//W/wh/90R+FQw89NOy///7h4x//eNi6dWu4+OKLe+axadOmsGHDhtw/AAAAmOigevPmzeHyyy/PvsI9n8CSJdnf6afQVTz44IPhkUceCY9//ON7bnPGGWeE1atXz/9LP90GAACAiQ6q77zzzrBly5awZs2a3PPp3+vWrauUxtve9raw11575QLzhU499dRw3333zf+75ZZb6hQTAAAAhmJZGKIPfOAD4ZOf/GT2O+v0Ime9rFixIvsHAAAAUxNU77777mHp0qVh/fr1uefTv/fcc8+++/71X/91FlT/+7//ezj44IPjSstYSUaW77ack64C5B7323dUhR6xcaj2NLR90lWJpOX0hzmWaKddBk2nre4wDWMxts2TIY+7qmk3X4I+KbZV3ZK61m3mJsZh/txg+MciJv+4tCtsX+FxpX3rH8g+LxW/OI5TVL4Nau4wzHzHWNJVm2k8/6j19e/ly5eHww47LHeRsbmLjh111FE99/vgBz8Y3ve+94WLLrooHH744WFadUJn1EWYYdM3OAGgTKfBUw/nMVPC6SiM/9e/09tpnXDCCVlwfMQRR4QPf/jDYePGjdnVwFPHH3982HvvvbOLjaX+8i//Mpx22mnhE5/4RHZv67nfXu+8887ZPwAAAJiZoPq4444Ld9xxRxYopwFyequs9BPouYuX3XzzzdkVwed89KMfza4a/tu//du5dNL7XL/nPe8J06jXVzWSRV99qP8VnFGoUsYmv5KSNJxm21+p7ZV861/T6f4qctJw2QuOdNG2ZV8JG+grYxXlU+2dR3Gd+tdzlF+1Kss7N5cs2Ljf19Rj6lR1l3zaRf1h0AYt7vPJJH39uGTcJi1/1TRp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ghckL3zhC+dff/TRR5MDDzwwOfroo5Pvf//72Vjcfffdk1NPPXV+m+uvvz5ZuXJlcsopp2Tj4r/9t/+WjZOLLrpofhvrFpPkc5/7XHLBBRckP/nJT5Lrrrsuecc73pHN9elYShk30N9ll12W7LfffsnBBx+cvPnNb55/3thpjqC6AUcccUTypje9af7vLVu2JHvttVdyxhlnNJE8jLWFQfXWrVuTPffcM/mrv/qr+efuvffeZMWKFVlgnEpP9NP9vvvd785v84UvfCHpdDrJrbfemv39kY98JNltt92STZs2zW/ztre9LXnWs541//fv/M7vJK961aty5TnyyCOTP/iDP2ipttCc22+/PRsHX/3qV+fHSRoofOpTn5rf5pprrsm2ufTSS7O/0yB6yZIlybp16+a3+ehHP5qsWrVqfqz86Z/+afKc5zwnl9dxxx2XBfVzrFtMunR9+PjHP27cQIn7778/ecYznpF86UtfSl760pfOB9XWnGb5+veANm/eHC6//PLs661zlixZkv196aWXDpo8TJwbbrghrFu3LjcmVq9enf0sYm5MpP9Nv/J9+OGHz2+Tbp+One985zvz2/zKr/xKWL58+fw2xxxzTPZ12XvuuWd+m+585rYx9pgE9913X/bfxz/+8dl/07XkkUceyfXp9KcN++67b27spD9zWLNmTa7Pb9iwIfzoRz+qNC6sW0yyLVu2hE9+8pNh48aN2dfAjRvoL/1JUfqToYXrgrHTrGUNpzdz7rzzzmyC7z7BSaV/X3vttSMrF4xKGlCnisbE3Gvpf9PfgnZbtmxZFlx0b/OUpzxlURpzr+22227Zf/vlA+Nq69at2e/aXvSiF4UDDzwwey7tt+mbSOkbTv3GTlGfn3ut3zZp4P3QQw9lb0pZt5g0V199dRZEp7+fTq838NnPfjYccMAB4corrzRuoIf0DagrrrgifPe73130mjWnWYJqABjBJwc//OEPwze+8Q1tDxU861nPygLo9Bsen/70p8MJJ5wQvvrVr2o76OGWW24Jb37zm8OXvvSl7GKutMvXvwe0++67h6VLly66Omv695577jlo8jBx5vp9vzGR/vf222/PvZ5evTi9Inj3NkVpdOfRaxtjj3F28sknh89//vPhK1/5Sthnn33mn0/7bfrV7Hvvvbfv2IkdF+lVk9Or8Vu3mETptzjSK9kfdthh2ZX0DznkkPC3f/u3xg30kH69Oz3XSu8EkX4bMP2XvhH1d3/3d9nj9BtM1pzmCKobmOTTCf7iiy/Ofa0v/Tv9mhLMmvQr2+lJffeYSL92mv5Wem5MpP9NA4d0wp/z5S9/ORs76W+v57ZJb92V/sZ0Tvpua/ppRfrV77ltuvOZ28bYYxyl1/VLA+r0a6tpf1/484Z0Ldlhhx1yfTq9hkB6C63usZN+Dbb7Tam0z6cBc/pV2CrjwrrFNEjXi02bNhk30MOv/uqvZutF+g2PuX/ptWzS25nOPbbmNKjhC5/NpPTWJOmVjc8999zsqsa///u/n91Sq/vqrDBtV5JMb+eT/kunkTPPPDN7fNNNN83fUisdA//6r/+aXHXVVclv/MZvFN5S67nPfW7yne98J/nGN76RXZmy+5Za6VUp01tqvf71r89um5KOs/Q2QQtvqbVs2bLkr//6r7OrJJ9++uluqcXY+sM//MPsVnOXXHJJ8stf/nL+34MPPpi7vUl6m60vf/nL2S21jjrqqOzfwltqvfzlL89uy5XeJuuJT3xi4S21/uRP/iQbF2eddVbhLbWsW0yKt7/97dlV8m+44YZsTUn/Tu8W8W//9m/Z68YNVNN99W9jp1mC6oak9wFNT4TS+1WntypJ770L0+orX/lKFkwv/HfCCSfM31br3e9+dxYUpyfuv/qrv5rdW7TbXXfdlQXRO++8c3Y7oBNPPDEL1rul97h+8YtfnKWx9957Z8H6Qv/8z/+cPPOZz8zGXnobofRepjCOisZM+i+9d/Wc9I2nP/qjP8puF5QGxr/5m7+ZBd7dbrzxxuQVr3hFdt/29B7V//W//tfkkUceWTRGDz300GxcPPWpT83lMce6xaT43d/93eTJT35y1p/TN5HSNWUuoE4ZNxAXVBs7zemk/9fkJ98AAAAwK/ymGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqAQAAIJKgGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAQpz/DxSwp3EX8nMOAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -674,9 +675,85 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, + "id": "f23a83cc", + "metadata": {}, + "outputs": [], + "source": [ + "regressors, labels = regressor.generate_gonogo_regressors(\n", + " df,\n", + " timestamps,\n", + " go_stim_id=GO_STIM,\n", + " nogo_stim_id=NOGO_STIM,\n", + " uncued_push_id=\"precued\",\n", + " correct_outcome_id=\"correct\",\n", + " lever_push_duration=0.07,\n", + " stimulus_duration=0.15,\n", + " reward_duration=1.5,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "23676744", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0, 0, 0, 0, 0, 0],\n", + " [0, 0, 0, 0, 0, 0],\n", + " [0, 0, 0, 0, 0, 0],\n", + " ...,\n", + " [0, 0, 0, 0, 0, 0],\n", + " [0, 0, 0, 0, 0, 0],\n", + " [0, 0, 0, 0, 0, 0]], shape=(41168, 6))" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "regressors" + ] + }, + { + "cell_type": "code", + "execution_count": 15, "id": "6c69afc5", "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAK9CAYAAABYVS0qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAA2KVJREFUeJzs3QeYE8XfB/Dv5no/yhV67x0UBAsqKmLH7l8FexexotJExYJiBwsKFuwIvCh2FATpvUnvcHAHx/WStu8zk7uQXE1yKbvJ9/MYySVbZmdmN/vbnZ1RVFVVQUREREREREQBZwh0AoiIiIiIiIjIhkE6ERERERERkUYwSCciIiIiIiLSCAbpRERERERERBrBIJ2IiIiIiIhIIxikExEREREREWkEg3QiIiIiIiIijWCQTkRERERERKQRDNKJiIiIiIiINIJBOhEREREREZFGMEgnIqKQtXfvXjz00ENo3749YmNj5atz58548MEHsXHjRoSali1bQlEU+ysuLg59+/bF559/HuikERERhQxFVVU10IkgIiLyt59++gk33HADwsPDcfPNN6NHjx4wGAzYtm0bZs+ejf3798sgvkWLFiEVpNerVw+PP/64/DsjIwMff/wxduzYgY8++gh33313oJNIREQU9BikExFRyNm9e7cMyps3b44FCxagUaNGTt+bzWZMnToVQ4cORbNmzRBKQXrXrl3lBYxyWVlZaN26tcyHrVu3+jU9hYWF8m6+XlitVhiNRkRHRwc6KUREpGNs7k5ERCFn0qRJMgCcMWNGpQBdEHfXR4wYUSlA/+uvv3D22WfLwDE5ORlXXnkl/vvvP6dpnnvuOdlUfNeuXbjtttvkdElJSbj99ttRVFRU6WLACy+8gDZt2iAqKkoGyc8++yxKS0srBX9iuY0bN5ZN8s877zwZMIvpxToc7dmzB9dddx3q168vpz3jjDMwf/58j/MqJSUFHTt2lBc2KqbprbfeQpcuXWRQmpaWhnvvvRcnT570KO2ffvqpzLdFixbhgQceQGpqKpo2bWr//pdffrHnfUJCAi699FJs2bLFaV1Hjx6V+SzmE/kpylaU0b59++zTrF69GoMHD0bDhg0RExODVq1a4Y477nBajqgbojWBKH+xnA4dOuD1119HxcaHIr3icYkvv/xS5oOY9tdff5XfffPNN+jTp49Ma2JiIrp164a3337b43IgIqLQER7oBBAREfmbuFPctm1b9OvXz+V5/vzzTwwZMkTeVRZBZ3FxMd59912ceeaZWLt2rQw6HV1//fUyAHz55Zfl96LZuAg8X331Vfs0d911Fz777DNce+21MihcsWKFnF4E/nPmzLFP98wzz8gLC5dffrkMMDds2CD/LSkpcVrnsWPHMGDAAHkxQFxkaNCggVz+FVdcgVmzZsmWAe4SFxIOHTokm8E7EgG5CKxFUCzWJR4NeO+997Bu3Tr8+++/iIiIcCvt5USALi4MjBs3TgbLwhdffIHhw4fL+UT+ie17//33cdZZZ8n1lef9NddcIwP3hx9+WH6WmZmJP/74AwcOHLD/fdFFF8nlP/300/ICigjgxeMN5UQgLvLr77//xp133omePXvit99+w5NPPonDhw/jzTffrHTh5rvvvpPBugj8xXrEOm+66SYMGjTIXt6iTEW+PPLII26XARERhRjxTDoREVGoyM3NFbdD1auuuqrSdydPnlSzsrLsr6KiIvt3PXv2VFNTU9UTJ07YP9uwYYNqMBjUYcOG2T8bP368XP4dd9zhtOyhQ4eqDRo0sP+9fv16Od1dd93lNN0TTzwhP//rr7/k30ePHlXDw8Mrpfe5556T0w0fPtz+2ciRI+Vnixcvtn+Wn5+vtmrVSm3ZsqVqsVhqzJsWLVqoF110kX37N23apN56661ymQ8++KB9OrF88dmXX37pNP+vv/7q9Lk7aZ8xY4b87KyzzlLNZrNT+pOTk9W7777baRli2UlJSfbPRdmJ+V977bVqt2/OnDlymlWrVlU7zdy5c+U0L774otPn1157raooirpr1y77Z2I6Uf5btmxxmvaRRx5RExMTnbaDiIjIVWzuTkREISUvL0/+Gx8fX+m7c889V95lLX9NmTLF3oHa+vXrZfNs0Yy8XPfu3XHhhRfi559/rrSs++67z+lv0VT7xIkT9vWXz/PYY485TVfeaVt5E3XxzLy4my3uMDsSd4srEssUvbGLO8zlxHbec8898o6xK8+U//777/btF020xV1scbf8tddes0/z/fffyyb8YtuPHz9uf4nm3WJ94i60u2kvJzqnCwsLs/8t7krn5OTIO9OO6xLTiJYQ5esSTdcjIyOxcOHCSk3uy4k75+UtKUwmU5XTiDwUyxatAyqWi4jLRbN7RwMHDpQjAlRcj2gFINJORETkLgbpREQUUsQzwkJBQUGl7z788EMZWM2cOdPpc9HTuyCeTa6oU6dOMmgsb5pdTnRK56i8uXh5ACmWKXqTF83uHaWnp8sgr3yd5f9WnE5cLKjYBF1MW10aHZdVExH4ijwQz1aL57BFWkSaRQBcbufOncjNzZXN9x0vaoiXyFfRrNzdtJcTjwg4EusSzj///ErrEhcUytclngcXTctFEC2ejz/nnHNkM3vxnLpjQC2axE+YMEE2TRfPq4t+CRz7ABBpFs/Pl9eT2vKwYnoFcVFCDOsnHo8Qz8eLZ97Ln1UnIiKqDZ9JJyKikCLuAIsOxTZv3lzpu/Jn1B07GvOU491gR1V1PqYlIni94IIL5HvxDLjoNO6yyy6TnZ6V3/UXncGJAF10mFYVEUB7StwRdyTWJYg7+uICRlWd/JUbOXKkfPZ97ty58jnysWPHymf8xXPjvXr1knktns1fvnw5fvzxRzmNCKAnT54sP6uqdYW76RVE3oiWF2L54qKBeImLAcOGDZN9BBAREdWEd9KJiCjkiJ7BRe/rK1eudGn68rHSt2/fXuk7Ma66CGzdHSpMLFMEoOV3ih07fxPNu8vXWf6vSK8j0XS+YrNuMW11aXRclrt5Je5Av/TSS/bWAqI3erF+0WmeCOgrvsTwdu6mvTpiXeWBb1XrEo8oVJxeNE0Xd9nFhRgxJJoIwh2JHu8nTpwoe3oXFxpEZ3OiN/byNB85cgT5+fl1ykPR8kBcMBBD+Yme8UVHe59//nmlvCAiIqqIQToREYWcp556Sg4HJu6iiqC4trvd4s676OVb3AUVAXQ5EQSKYPCSSy5xOw3l84hhzBy98cYb9uBYED2Ei7vFojdzR6In9aqWKS48LFu2zP6ZCKw/+ugj2et4xWenXTVq1CgZWE+bNs3ec73FYpHDx1UknkEvzyN30l4dcTdfDGEmLhJU9Ry5GMddED2+V+wxXgTsotl6eXN2cWGgYtmKchXKpxF5KLatYhpFr+7iTrxowl4bkVeOxGMNov8Cx/UQERFVh83diYgo5LRr1w5fffWV7IxMPMN98803y7u/IoATQ4mJ70Rg5ThOt+g4TQRo/fv3l0NzlQ/BJprPiyHZ3CXWJ4YVEwG0CGrF3WoRYIsLAVdddZUcT1wQz1eLYbvE3WAxNNjFF18shzETTajFHXzH5vJiWLGvv/5aplN0fCae/RbLE9v0ww8/yG3yhFhe165d5QWEBx98UKZV3BkWTclFs24xrJkYck20ChCdyomm8WJYOXfSXh0RoIsg/9Zbb0Xv3r1x4403yub0Ylg10bmeuJsvAuodO3bIiwLiAoK4GCEuDohh7MRFGDGPIPJC3NkWQ9GJAF7cLRcXHsQ6yi+aiLvfIu9Hjx4tH3sQ5SQuxPzf//2fbE5ffme/JmJovezsbPkcvahD4jl2UVfEBYHyZ9uJiIiq5XI/8EREREFGDKd1//33q23btlWjo6PVmJgYtWPHjup9990nh0ir6M8//1TPPPNMOZ0YYuvyyy9Xt27d6jRN+RBsYggzR+VDjO3du9f+mclkUidMmCCHSIuIiFCbNWumPvPMM2pJSYnTvGIor7Fjx6rp6ely3eeff77633//ySHdRFod7d69Ww4XJoYtE9vUt29f9aeffnIpP8QQbJdeemmV33366acy/WI7yn300Udqnz59ZJoSEhLUbt26qU899ZR65MgRt9Nenj/VDY/2999/q4MHD5bDrontatOmjXrbbbepq1evlt8fP35cDhMnyi8uLk5O169fP/W7776zL2Pt2rXqTTfdpDZv3lyNioqSQ+pddtll9mU4Dvv26KOPqo0bN5bl0q5dOzm0m9VqdZqu4tB05WbNmiWHshPLj4yMlOu799571YyMDBdKgYiIQp0i/ld9CE9ERERaJO6+ix7SX3zxRXnXV0/0nHYiIiJf4zPpREREGiea1ldU/ix7xY7TtEbPaSciIgoEPpNORESkcd9++y0+/fRT+dy0GCZsyZIl8tlz8Sy4eCZby/ScdiIiokBgkE5ERKRxomdw0RHapEmTkJeXZ++QTTQX1zo9p52IiCgQ+Ew6ERERERERkUbwmXQiIiIiIiIijWCQTkRERERERKQRIfdMutVqxZEjR5CQkABFUQKdHCIiIiIiIgpyqqoiPz8fjRs3hsFQ873ykAvSRYDerFmzQCeDiIiIiIiIQszBgwfRtGnTGqcJuSBd3EEvz5zExMRAJ4eIiIiIiIiCXF5enrxZXB6P1iTkgvTyJu4iQGeQTkRERERERP7iyiPX7DiOiIiIiIiISCMYpBMRERERERFpBIN0IiIiIiIiIo1gkE5ERERERESkEQzSiYiIiIiIiDSCQToRERERERGRRjBIJyIiIiIiItIIBulEREREREREGsEgnYiIiIiIiEgjGKQTERERERERaQSDdCIiIiIiIiKNYJBOREREREREpBEM0omIiIiIiIg0gkE6ERERERERkUYwSCciIiIiIiLSCAbpRERERERERBrBIJ2IiIiIiIhIIxikExEREREREWkEg3QiIiIiIiIijWCQTkRERERERKQRDNKJiIiIiIiINCKgQfo///yDyy+/HI0bN4aiKJg7d26t8yxcuBC9e/dGVFQU2rZti08//dQvaSUiIiIiIiIK6iC9sLAQPXr0wJQpU1yafu/evbj00ktx3nnnYf369Rg5ciTuuusu/Pbbbz5PKxEREREREZGvhSOAhgwZIl+u+uCDD9CqVStMnjxZ/t2pUycsWbIEb775JgYPHoygVXgcJ/YcRlhqCxw/uB0pqemIKihEdOfO2JGRi6L929CkUSoaJoUj62ABItNScHz/LjTp1AXrM/NQeHAFujbrhvSUBKA0H2r9NijZtAlRHTrAoJYAOfuBRj2AwhNAwVGUFkQjLCkJ4fWSkbt/CY4mpqBDwy6A2QhkbACa9Lal6/Ba23xhEbb3qZ2AiBjgyDqgYXuYThZALSlBZIsWKDm4AjvCga6N+sK4bTsimjRBWGwUCnesR0lCB+Sf2A1l3wGktmyFmJ49se1oDjJLd6FlQTiMu/YiNT4R1tw8JAw6X86XdWAJ8uu3Qut6bWxpObYViE8F4hoCJ3YD4dFAUhNYj2xBZk4CIhINyM3KQNPW7WHZvx/R3bphz+ETOL5rK7r06Ir/Dh5HTGE2WqenITwiEhFNGmPtnkzEHt+LJq1b41CxAcaD29GybRtEHctEVLt2MBjMyN2xDdaG7XAyYyfqN2mGZEMuEJ1sS0vGeqB+GxizcqEYDIho1AjGfWtw0toSFusJWMwmJLZsj03rN6NlchQSWraT7xvnHkXzM89GeEwkCndtRGlCe+Sd2IP4+g2QFxaPzO1b0Llze0RkHEV0ly5QSnOw89g6NGxyOpLD4lGyZQuiu3aFUnISKDoBS2wzGPfuRXTXLijduRPhDRvCdPCgLH9rcTEKFy9GZMuWCE9LQ0RKCkp3r0ZuWGuYjJmAoqBx01Qo+UeA9G5AQSZ2HFuP1CZ9kSy2syQXObt2Q01pi+xD29CwWQscKTGgYOUitO/dC0ktWtjqQ+OegMWIvJ1bYU5uj9zMnUhKa4QT1mjk7NmKto3SEGsIQ2Tr1ra62a4dChGGNStWo7XBiLRmLWCVdb6T/F7U/ewSE7asXosu7VsiPyIJx3duRuvWzXHCEoHs3dvRrVd3xBbuhVqvNYo2bAMMCmJPPx1K9h57/bBk/ofNxUfRqemZiAyLBLL3AoYwILk5LIc2ICu/AQyxZhTlZCM1LhERCQkIq1cPpVu3yjqkFGYia99JRKSlIevADjRp3wmb9mUivvgEWot6v2gxwtNSEV6/PqK7d8fejGxb+XXrhERLJhCfDsTUg3HvGpxUW8BsPQHVbEGTFo2xL2MF4hr3QWpsKmAqQeaBxSis3wat6rUGSvKA7N1Ao56A1Yzsff/gRFITNM0wI6p1KxgiAGRus+2rFuOp/ezkXsTGxiGhoEiWrazH4SqQtQ1o3BsoPonsPQdhSG2J4we2IbVFK0RkZiGyeXOERUegYOdGGJPaI+/4HsQn1UNcTq4sC8WUjxO7DyG8UUtk7d+G9NZtEW/MABIby/3BuGc1TiqtYTZnQbVaENe0LTatWYOOLRshtX4MSnftgKFJJ0SkNED+/iU4FFcPnVK7y13bmrEVmdlxiEgKs+3DbTqgZOlSud7IZs1g2rcG2ebmsCo5MJWUILlNB6xftR5t0hMRld4S29atQ/sW6UiyKjDExyGiQX2oB1ejJDsc0d16QDHmyuNreFoLZB3YjrTWbbAnxwxk7ELLxo0RKfLKapH7VMnmzYjq2BEGazHM+zfBbEhDdPv2wNFNQGITWZb2YyGAowf+RWlKO7RIbAHzgbU4XtIYiiEP2Uv/RYvT+yO2cyfgiDhOtILVEIPS//6T9Qp5R/Bf9lY0a9ofCZEJznXx5Ak069ABYSfKyqw0Dyd37YGS1gYnDm5DSotWiDVnYosxG52b9keExYz8HZtkueXs34iYklLUS0mz1d+cA7bjZ70WwPGdQGQ8kNjIdpyv1xKIToLl8CZk5SYjPF5FfnYW0jp2wfpt+5FqzkXTLt2wdPFKNDflofWQS3Eguwibty9Eh7hUNE1ogPD4BBhiY2A8cACRTZvClJGB6I4dYT26FZknTpVp8w6dEH7iP1lfzTm5yP/9d5ms+IEDYc7KghIZieL162WaY7p0AY5tgQXxMJ0oRGTbtk77439ZG9GkWX8kRiYCxiIg07Zc8duXs2sH0LAtThzegQaNmyDqWJasRyXbtpUd0y3I2/kfzA3aI+foDiTFJyHOYpVp3rznCIyHd6Nd27YIP5GN6C6dsf3AMeTv24EuPbohtmifPN4jKgHm/WtxvLQxlPBClBQVoFm7NjCc2GErL1PRqf3t5D7AEA4kN3PK54LsLDTr0B5hJ7bbpjPm245NjXtCzdyJY5kGRDWIw4nD+9G8U2dEZm8DGnWHKVMcP8y2/WL/GmQbm0INz4exqAj1WnfEmlVr0aFJfTRKrw8UHYfaoL3teNu5MwyWQmTv2gdDaiucOLQdqS3bIMEsjlFptmOUw2+X1WxGWoMUmI8fB6xWuW/sz8xF5vbNaNUgGYkxsYhq3Rrrdh0Btq5C6/btkdS+A3BkLZDW1bbN5b8L4vwhY6M85or6JtNtagarkgtzaQnS6jUEjEaE1a8P06FDsry2H8vB7t3/oJ0pFs2atUZ0q1YoPbQS28NUeY5hKDwOFGUDqR2hZu7AscxwRNaPRfaR/WjeuQsiRV0T5y7mEhw8tBThad3RKKGx3M9Ldq1BXkQbGEsyEBYegfT0etiVuQ4NmpyO+lH17OlTDXkwlRQjPb0JipYskb+fIh/CosJwdP9ilDZshxbJrWQ6snfvhyGtte2Y2rI1Yk0Z2GLORecmZyBCHKwLsnB8z1FEpDeTx8/G7TsivGAX/lNL0d7YCKbt2xE/aJAso5O79kJJbe1QRseAhEZAbH1YDm9EVm49hMVbUZh9XB4nso8st58rWY9sRmZOIsITFeQfz0Tzjh0RlrXV/jtRsHOT/fie0KAhCqKSkbljK1o2S0dpQiqydu9ESmwYUqJjYYiNRVhqGlZu2YvEwqNo1bU7Nh3KQXzOATRv1x5hBw/BkJQEQ2QkIho3th0X0zoDYZEo3b0GueG2PFZMZtRDGGK6dcXezHyc3L0VzRqlICGvABGiHh8+Is9ddmflY+feJWgdXg9tu3RD2HHbPlS6bz8McXHyt0MuN6w1jMZjUBQDohu3xH//LEbTzINI6dhZ/v4fL7Zg//ZtSI1WkBITh/D4eBhiYmA6fFieE8ljfPv28vzj352b0CD3GNq364VIcb4ljhXbtyOqTRsUhUVi+YEdaB5hRtiJYjTv1BURJ7ba6lVpvjyXRlqXU78NsfWhnjyArINFiExriOMHdqFpx85Qd++Ryz1pVLFt4ya0aBCH+hYVkU2ayPOz8nNo8/41OF7aFEpEIUoK81G/dQesWr4aXVs1knklzgXFcbZo1SpAVRHRrDnizuhn257OnWHavx9hDRpATUrGv7v2wJC5FZ2ad0NpYhoyd21HakIk0hqmwZqTg7DkZHkeGdW2rSw7cX6SbRb7ZA6sJhNS6zeEWlQszzVWb9mDqLyjaNujJ9b8tx+pagFatGwlz7NNR44gtm8/GFJSsHLLHtQrykTLrt2x6tBRlB5eh9O6nCXPmUszchHWuDXC6yWVxRxp6NCws9wOuV8brOjauB9QakTp9u2238jcg8g6VILI1AZledkF0bk7bL+9kbEIFoqqqio0QDR3nzNnDq666qpqpznnnHNkU/e33nrL/tmMGTPkHfXc3Nwq5yktLZWvcnl5eWjWrJmcPjExEXqQM6Yjvjw+FcaC/4PVtBtRFisGbd6LuHffx0Ozl2Ng9hI53eBmpVhU8AxMBZ/CYspGRLMOWBC3FedsC5Pf39Z6NRpEFeNEo4nIfHMK4gb0R/OOC2Ugh2HzgM+vgKkwDLt+TJPTd3rnGvQ9PAfFBgNmXjITPf55F9j0PXDWo4ASBix+HehyNdDmfGDeQ0CTPkD/h4BZtwMNO+C/9/Llctp/Nh73rhuLFTHReD7mBnQc96W8CND+kZaY8s89MJesg7n4bznteVv3IfmNKbh4wxykRv+DoYsby8/77M1AWl6RLV1ju6KbeZt8/+e1fyKt8CQwtZ8ts57aC0xqZXv/wAr8+8pUrCu8FKU57wFQ0Q4RaLdhGxqMG48JfyxB66J9iIhLRGlhPgxQ0TrzJDpmZGPdJz/iz+kfoEvBNoRHx2BDeAvb+7AwXLB2B+J690bj0/dg2vaJMBUthKV0LcLCw/Fw24UIU1Tgpm+Ar2+ENa4Ztn9ikcnpOO1+fPNtIo6XRMKY/5X8bGvKaeictbrS+74nCnH2bfUxZcmDMJesgbl4kfz8cFQjNCnNQFRYOAat3Y7kG29AYcR7GNq0kfz+t51XInfWD6g37FakG1+Vn+1a3AemwxlIeWQEst5+x16vYvv1Q9GKFU51rdNHd+DTb1oir7QQpoJZ8rPrW21Ds+gs4K6/sO3zwbiuSSMoULBx+EYUv9IL0/dNhqnwD1iMmxAWEYn9hhQ0LT2MuBIj7runO7BqGnDaHbAeXo/3142FqXgpLCXL5bL3xLZA66L9iDRbcMGWfWhwzz048dFHiOndG8+2PBt9dv8kpzt7+0EklBhlEG/csweJl12GR4uS0O+EbTnrErujV95G+T4zsiFSjcfRILU+bmvwf8g73gyH/7SVQZPXX0Li6ttsG/voVrw/4wxMrZeMC5pfgDfPnAi8ZMtHDP8Jv7+9ADuKTkNp7ge2vDl8HK2O5yLhwguQ/8efaPjQQyg5/DXmnXwepoIvYTEdQ1RqExRmHUW4akHz47noevi4PW8bjB2LsQtWon3hLkTHxuDBFrZABINfxpczE5BdqsCY/41tP2h7AMPb2w7Nm4ZvAr68Ht3M/8m//77+bzR8fyCQdwi4eRaweTa65S3BgK1WjPw/qww2Wl+eZzsJvuI9YPsvmLLoLqf97Pwt+xBttsiAs/XFWbYTiaEfIm/WWHyR9SGMBT/BatqBqKhoDFq5RZ6AtrszGVOWjoC5ZDXMxf/I5VyweS8aXnopYiN/wlfH34OxYB6spl2IT0rEvY3n207GBz6NL75rgpwSM4wF38n59iW0Rcv8XbbjUtPVyJxfz5bH792IgQe+RXZYGKZdNA1nRKZg6UtvYW3BZfZ9uIMhCm3WbZXTd/hkJH74Bjhakgxj3hfys0P1O6KpCFoAbItvj44FO+T7c//bj1ijGZ3eugrH3p+J7O3xSBo6FLFhc/Dl8Sn242tkQhK2WerJY0O00YTz/7MFsvKE8eBBxA0YgOYd/sJ/M6Ll560/fhlRfw4HImKBwS8BP40EmtmOR93CM+S/S3qNxuJPDmBvUTsY8z6Rn3U5lIVBrz2BiN/vkifZB3eeh4KFC5Hy6KPYljMW96enIjUmBQvOeAm/v/ELdhSdbq+LZ3UMQz9lIXDh8yj8+2N8euhtGAt/hdW4FVEx0SjtuQqf1kvEFW2uwMQdazFl5ZMwF6+EucT2W3Hh5r1oNnY06m2731YHR24G3upqe3/rXOCLq4C4VODm7/H3a99gS+E5KM2datu/2g5E/d1LZB23JKYgLC/LVo0vuAK3ZuzGLVu2yL+7HsxE8+x8hKemwpyZad8PWn74OtbN+9WpTPt2isfZ+AU48xH89/D3qEmr6a8h+vebsWN2OixGg7xoZjl5Eg0ffBB7C5/HnY3SUD8qGYtuXAx8fCFwaCVw2VsoWTgVn+x6FaaiBbCUbkCYYsCF63fCoCjyZFBcRGt69mF8tOV5mIr+gaV0tThBwkWb9iLmgxn44JMPkV6aiUSzFWdt2YukyW/h9e9moUlJhv1YIwPNC1/A3A/34WBxMxjzZtjyu30RuoetAa6eBvz7DnBsE3DZm8BPj9o26q6/8NfkWdhaeLY9n8/qFI5++Bu4YAKw4gMgP0POv/GLOVicfzeMee/DailGh7YNcVnEHKgdLsO2CWvlvO0/H4P/++IkDpekwZj3ma3cktsgNWe3rYhbrUVqdCGyYh7H8RlfI2HwYCTVX4DPM96GsWA+rKbtiImPwwPNfrWl78IX8NVXyThRGgZj/tfyo957M5Be9pvc8IUXMfKPteiduwGKVcVFm/cgd8ZszJr6JpqWHkFsqRH3PX4ZlAVjgdbnAamdgeVTgJ43216fXmK7uD34JXw/PR9HS+rDmPe5XHavfUfRKLcQMBjkBYHYKR/i2mXf4MZNtv2yx4FjOPetJ/Dg2tFYGhuDJ057AsO/H1GWrwuw4e03sTjvDpjyRX6VoFPbBrgkYi7QZSgKD67CGQ1sDUo3DtsI5c/x+Gh2X5SUZsBU+H/y84FtN+L29km2Y3HP0Zj18UlklDSwp6/n/qNonFMo34c3boR2w+PQDfts+/2NS6C8NABfHHvXfkwVx/6TvVfh28QE3NDhBow5YwyyRvfEdyfegDH/e1jNB1E/pT42df4X/0TE4IvJtt+u+AsGoV7qInx2ROzrP8Nq3IbouFg82Fy0JFXkti6YPBv/FQ5Aae77cp6zO4bhztZ75PsFA6dg2zvzsLFwEEpzbK1X+3eOwwD1V+DsJ4BDqzBl2UiYS1bBXLxYfr8yuQ/65qyR7+enDsalmbZWq733HkV6XiH+/uBHZH00GvGWQoS37IK9R0+iWckRJERG4exVtmO00HHGSCi/PQU0HwA0PwMf/9ALRcZMmApsj7gO2HkIrca/iHt+3Ww/nxXngjEm27YnvvYGBm/8C7dvtP0GntUxAv2Uv2A+/QnsfNx2LtXp/Vsx/ftOKCg9CVPBbPnZ5oTO6Jq/1f5blT78Nlx8NB23HP5Wftb9wDE0PVkAQ2IirHl5SLxkCPJ+/kUG8zd3vxE9Dr+G1hlxiAgLxwVrt4tclkSQeHu/u5Dd8HH87/dmiLAY0KVdfVwc/n9A9xuAjbbl48opwP89aLsp8Mxh7Bp9GX7LeQqmghmwmE6iUWI99Fq8GolXXI4bTe1w1RFbneu7+whSEQZrQYFtf57+DH765gQOFLeAMW+6/Cw/NhUJRZn23/OGZ5+Dgr9tv+/lyo+NUe3aonSn7fd25svfYefGe9Fva335928pgzA4a4F8f/qeI0jJL3Zahii7b76MxPGSKPt5a/n5+PEZs7HonTGIsZZCbd4V6oEt8jy67clCtD9w1L6MX96Zi4JPxyLOUoSwNj2x0bgcXQ5GQwkPw/3pS7BvfqqtDF+/GL2P/wGTouCbS79Bl+xDeHDBg/gnNgYje4/EBW8sQdGy5Ugb9SRytn+NX3JOxTtNmzbEDQlzbHHI3X9By0QcmpSU5FIcqquO444ePYq0NFsAWU78LTa4uNi5YpV7+eWXZWaUv0SArjdHTR3lv1ZxVVtceAizFduxn39HvMW2Ews7i3rJf0WFldMd2ol4qy1QFgrMUfLfk1/bDiCFS5fZAnRh+8/yn+KT4hZcmaXvygBdWHJ4iS1AF/59G1haFuxtmQ2ss50c4/CaU9Mc325fjHHZ9zJAl2n+3RZ0WcRFlR2/yPeq9dQ2lIaHI+Pn3xHZ4B/EltguLgglEQ6NPnaWBTcAdpzcAey3HdRtG7f31Pv9S7C+6CpANcoTQZkHJ215c/L775FWeky+NxXmyQOL43rmLN2FeqYc+d5cUnzqvcUCVVFQvHYtCk/YPlOtebZtMpthspbtUlvm2D7LPGJPjnX5x/KOn+pQJoniDnUV74uKioBdf1bKHxGgy3yymOW/Od98i1XRtnIVRIAut+/zsjIR23fYNo9jgC7XUSFAl5a/j0JrA8BhnQXl17h2L8CKaFs5qmX5lZMXWZZGW15YTEY0KktjYXSkLUAXVk+H+XDZj7bD9jcptk1rDLeVtQjQBZG/RWVlJZRE2L4XAbqQ99NPiDGeSmOK8VQwLAJ0uaxM2/y5W20nULb5bD+C0rHN+DzJdoD888Cf8s6S3db/w86Sc6Cqp+YtrxsiQBeyP/0Ue0ttwZgI0IXSzMMyeJHbEOncUCnnu1loYLTtbyVFDserVdOQY2niVM4HSqxO82LnqUd69uTssQXoMp1zgQ22H85zNtvKRLSWkAG6sP5LYPv8yvtZWX6WbttmC9CFDV8jy9TaNq3FlhelpSXyX/OxY8Cev6vYX8OQN+9HHDF2ln9bxV0dUWdybfuEuMsvTsbzLOlQ1VPzNSiylbtwMi/m1Hb++5YM0IW/DvwlTxzXFQ513ofF3bsylmWfI9PUzilNCXmH7e/TSmzpkXkeXlYey6fKAF3InTMHGcby46ttWmN+rv3YUBJ56ngoAnShcOlSoPhU3Sz6q6wvFXGHdK0tIMLBFbZXmSNbvsP+0tOACvWpZJHtZFIEYCJAF7JnfoE/42x3AjKLs4Adv2JnyUCoqi0gknlwzJYWrJyG7EJbAKFabHWrtLgEnybb6vW83fOAA0tt36un9jtjmAE539suwkmHVp16v812jEZhpizzrcUXQVVP1deTGUfsdbw8QJdpXbQIidHrnbZPcAzQZdp/n1e5TI/sPvXbUouiBfPkvyJAl/+ePGnLtxkz8FesLd+yS23HIxmgC+u+QP5JU1k+lR2rVCusBluALtO7cSOKM20nluXHaHGsNxsUHPrtLxmgC3nhtvWe+OlnGaA7HmsgWiZs+h6Hjd2d6qS4My5t+NoWoAtL3nL6Tfuv+EKnfC44WtbKYeVHtgBdWPwGNhfbWg2KAF2u+1BZXfivrNxEni/7Ghmmzk5piHfYLwpMtuP2ia9sdSD/t9+QVZxelj+2tBYXnKqrIg0nLU2dfrscf5NPzp6NeLNtetWgwGIwYN2i1WhUasvPoqhIqCs+tk0sjiMiQC8/PpWdB6AkR/6daWpf9XqstmPisV/+QFK07WKETGdEOEz/fi8DdOGbbbYLnbb8/gabikRrTVUG6Lb8KsvXLXOQWXwqkLCqVln/TGqs07FqM2zHivL0HjN1cMpX+3FF5PuRDGCv7QKmcKjgEDJLm5fl63H7sV8E6MK3223nYgeNPWxpMNvKMjsrG3/ExSLZoQgK/lyA40UpzssqLD8mqMCuP7CteJBzHTpWtq3iYv3uX7Gp6BKo1pJT3x+xBW7yfG6v7UaA47allp7av9PK6r9cb9nvx4x/98kAXS7r0D40LrHlZ77x1I0xuV0rbBer5LHo37dQqsY7rUeU4cl585zOZ8W5YLnj835CYpztBoZc/rH9tmkWfOF8vmpNcqo7jmkW5xjZ06fb66ltO2zrEAG6IAJ0QdyNPpJ/FMkFtuO/qex8yz7fpk3Yn5MFgxUyQBdOHio79ywP0IU/J9j+NZcAllLsKD5H/ikCdCHzpO2YLX5DY0VrmfJtjzgVoMu0//sNDok64vg7Vxagl09fMUB3PDaWB+jClysOOJ1bO5ax03l2GevKz5BtbuFc58umW/vPGhmgy88O7bKfRxeX/T6U+/CfPTJAF3IP7kVCqW1fFq0GC07Yziml1dNlgC4sy1gm91ERoAtf/feVDNCFk998i50lZ5flpe3Ye+jQ8VNxSBDRVZDuiWeeeUZerSh/HSw70SIiIiIiIiLSmoA+k+6u9PR0HBN3dByIv0VzgZgYh7sxDkQv8OJFREREREREpHW6upPev39/LFhge3ai3B9//CE/JyIiIiIiItK7gAbpBQUFcig18SofYk28P3DggL2p+rBhw+zT33fffdizZw+eeuopbNu2DVOnTsV3332HRx8t63yFiIiIiIiISMcCGqSvXr0avXr1ki/hsccek+/HjRsn/87IyLAH7IIYfm3+/Pny7rkYX10Mxfbxxx8H9/BrREREREREFDIC+kz6ueeei5pGgPv000+rnGfdurKei4mIiIiIiIiCiK6eSSciIiIiIiIKZgzSiYiIiIiIiDSCQToRERERERGRRjBIJyIiIiIiItIIBulEREREREREGsEgnYiIiIiIiEgjGKQTERERERERaQSDdCIiIiIiIiKNYJBOREREREREpBEM0omIiIiIiIg0gkF6sFOhr0QqVb6t42Z4NxNUx4RVovhgHYEoRNUva1dqWHpN3/ktX/ya9apOlq/WeT7F62uv+lPF+7tmAMvA9Xlr31Tvl0Bdlqpq+XdK8Xir6rTamuZWPcgw599TL+wMftqf1ECsutb8rfqcRWs8K2cX6pZXtll1ax2K4+QuV3/Vg/MKd3iv8F073/VO2h3z0vX8UH2SL1o+9GsBg3SiAHI8QHr3xyO0MO/oVF1wxH3K+/saEYXe+Yn+6DHNRI4YpBMRERERERFpBIN0IiIiIiIiIo1gkE5ERERERESkEQzSiYiIiIiIiDSCQToRERERERGRRjBIJyIiIiIiItIIBulEREREREREGsEgnVyiqhXGG674d02fW099pvpi3GLHdXpp8dVtnv8WECB6TberHDfP1Trta8Ge58GeN6pO88CVY7ge8r+MT1OqWl1foxbyzOE3N1A8SoELeafWOc/rkDcela2fyqK2tPmgXrq8SFeOKcF+zqX19HmQblc3SQ21PPMiBumhSFGq/8q1BXgxMaQfLHct5LTzhS7Fi2Xmefkq/joRpUo5ry2BTU/19VAr+aT47LebmF91qFg6rT56TTeRaxikExEREREREWkEg3QiIiIiIiIijWCQTkRERERERKQRDNKJ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l/XVV1+t58+fr7dv35520oDIPfDAA/ov//Iv9X/8x3+YN03o++67z/P9LbfcooeGhvT999+vX3jhBf17v/d7+thjj9UjIyO1ad7//vfrNWvW6J/85Cf6Rz/6kT7uuOP05ZdfXvt+3759esmSJfojH/mI3rRpk/7Xf/1XPWvWLP21r32tNs2TTz6pi8WivvXWW/XPfvYzfeONN+re3l790ksvUeuwxtq1a/W3vvUtpx0///zz+gMf+IBeuXKlPnjwYG2aP/uzP9MrVqzQjzzyiH722Wf12Wefrc8999za95OTk/rEE0/UF154of7pT3/q9MHFixfrG264oTbNr3/9az04OKivv/56pz/84z/+o9M/Hnroodo0bKuQFf/5n/+p/+u//ktv2bJFb968WX/+8593xnfTjwz6DNDchg0b9KpVq/TJJ5+sr7322trn9Jt4EaRb6Mwzz9TXXHNN7e9SqaSXLVumb7755lTTBcRtZpBeLpf10qVL9d/93d/VPhseHtb9/f1OoG2YAMLM98wzz9SmefDBB7VSSr/55pvO3//0T/+kFyxYoMfGxmrTfPazn9UnnHBC7e8Pf/jD+pJLLvGk56yzztIf//jHY8ot0LkdO3Y47f8HP/hBrX+Y4OPee++tTfPzn//cmeapp55y/jZBeaFQ0Nu2batNc8cdd+h58+bV+shf/MVf6He9612edV122WXOQYIqtlXIMrNN+OY3v0mfAXwcOHBAH3/88frhhx/W559/fi1IZ1sTPy53t8z4+Lg899xzziW9VYVCwfn7qaeeSjVtQNJeffVV2bZtm6c/DA0NObeAVPuD+d9c4n766afXpjHTm37z9NNP16b57d/+benr66tNs3btWucy4b1799amca+nOg39Djbbt2+f8//ChQud/832Y2JiwtOWzS0cK1eu9PQZczvHkiVLPG19//798vLLLwfqD2yrkFWlUknuvvtuOXTokHPZO30GaM7cOmVujZq5PaDfxK8ngXUghF27djkbEPfOk2H+fuWVVyhLdBUToBuN+kP1O/O/uafWraenxwla3NMce+yxdcuofrdgwQLnf7/1ALYpl8vO/YHvec975MQTT3Q+M+3VHIwyB678+kyjtl79zm8aE8iPjIw4B7fYViFLXnrpJScoN/efm2c13HffffLOd75Tnn/+efoM0IA5mLVx40Z55pln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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot regressors\n", + "plt.figure(figsize=(12, 8))\n", + "for i, label in enumerate(labels):\n", + " plt.plot(regressors[:, i], label=labels[i])\n", + "plt.legend()\n", + "plt.xlabel(\"Time\")\n", + "plt.ylabel(\"Regressor Value\")\n", + "plt.title(\"Gonogo Regressors\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f0789bf", + "metadata": {}, "outputs": [], "source": [] } @@ -697,7 +774,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.14.5" } }, "nbformat": 4, diff --git a/src/visiomode_analysis/session/regressor.py b/src/visiomode_analysis/session/regressor.py index 261a09d..ac101a8 100644 --- a/src/visiomode_analysis/session/regressor.py +++ b/src/visiomode_analysis/session/regressor.py @@ -56,108 +56,86 @@ def generate_gonogo_regressors( dict: A dictionary mapping regressor names to their corresponding column indices in the output array. """ - regr_stim_go = [] - regr_stim_nogo = [] - regr_resp_cuedpush = [] - regr_resp_uncuedpush = [] - regr_resp_hold = [] - regr_reward = [] + timestamps = np.asarray(timestamps, dtype=float) response_times = np.array(trials_df[trials_df.response.notna()].response_time.values) leverpush_rt = np.nanmedian(response_times) - trial_idx = [] - - for idx, timestamp in enumerate(timestamps): - trial = trials_df[(trials_df["start_time"] < timestamp) & (trials_df["stop_time"] > timestamp)] - if trial.empty: - continue - - trial_idx.append(idx) - - # Stimulus regressors - regr_stim_go.append( - 1 - if ( - (trial.stim_id.values[0] == go_stim_id) - & (timestamp >= trial.cue_onset.values[0]) - & (timestamp <= trial.cue_onset.values[0] + stimulus_duration) - ) - else 0 - ) - regr_stim_nogo.append( - 1 - if ( - (trial.stim_id.values[0] == nogo_stim_id) - & (timestamp >= trial.cue_onset.values[0]) - & (timestamp <= trial.cue_onset.values[0] + stimulus_duration) - ) - else 0 - ) - - # Response regressors - regr_resp_cuedpush.append( - 1 - if ( - (trial.response.notna().values[0]) - & (trial.outcome.values[0] != uncued_push_id) - & (timestamp >= trial.cue_onset.values[0] + leverpush_rt - lever_push_duration) - & (timestamp <= trial.cue_onset.values[0] + leverpush_rt) - ) - else 0 - ) - regr_resp_uncuedpush.append( - 1 - if ( - (trial.outcome.values[0] == uncued_push_id) - & (timestamp >= trial.stop_time.values[0] - lever_push_duration) - & (timestamp <= trial.stop_time.values[0]) - ) - else 0 - ) - regr_resp_hold.append( - 1 - if ( - (trial.response.isna().values[0]) - & (timestamp >= trial.cue_onset.values[0] + leverpush_rt - lever_push_duration) - & (timestamp <= trial.cue_onset.values[0] + leverpush_rt) - ) - else 0 - ) - - # Reward regressors - if trial.index > 0: - previous_trial = trials_df.iloc[trials_df.index.get_loc(trial.index[0]) - 1] # type: ignore - regr_reward.append( - 1 - if ( - (previous_trial.outcome == correct_outcome_id) - & (timestamp <= trial.start_time.values[0] + reward_duration) - ) - else 0 - ) - - if len(trial_idx) > 0: - regressors = np.array( - [ - regr_stim_go, - regr_stim_nogo, - regr_resp_cuedpush, - regr_resp_uncuedpush, - regr_resp_hold, - regr_reward, - ] - ).T - - regressor_names = { - 0: "stim_go", - 1: "stim_nogo", - 2: "resp_cuedpush", - 3: "resp_uncuedpush", - 4: "resp_hold", - 5: "reward", - } - - return regressors, regressor_names - else: + start_time = trials_df["start_time"].to_numpy(dtype=float) + stop_time = trials_df["stop_time"].to_numpy(dtype=float) + cue_onset = trials_df["cue_onset"].to_numpy(dtype=float) + stim_id = trials_df["stim_id"].to_numpy() + outcome = trials_df["outcome"].to_numpy() + leverpush = trials_df["response"].notna().to_numpy() + + # For every timestamp find the index of the trial that contains it (start_time < ts < stop_time). + ts_indexes = np.searchsorted(start_time, timestamps, side="right") - 1 + trial_entries = ts_indexes >= 0 + trial_entries[trial_entries] &= start_time[ts_indexes[trial_entries]] < timestamps[trial_entries] + trial_entries[trial_entries] &= stop_time[ts_indexes[trial_entries]] > timestamps[trial_entries] + + trial_idx = np.nonzero(trial_entries)[0] + + if len(trial_idx) == 0: raise ValueError("No trials found for the provided timestamps.") + + ts = timestamps[trial_idx] + trial_idx = ts_indexes[trial_idx] + + # Stimulus regressors + regr_stim_go = ( + (stim_id[trial_idx] == go_stim_id) + & (ts >= cue_onset[trial_idx]) + & (ts <= cue_onset[trial_idx] + stimulus_duration) + ).astype(int) + regr_stim_nogo = ( + (stim_id[trial_idx] == nogo_stim_id) + & (ts >= cue_onset[trial_idx]) + & (ts <= cue_onset[trial_idx] + stimulus_duration) + ).astype(int) + + # Response regressors + push_window_start = cue_onset[trial_idx] + leverpush_rt - lever_push_duration + push_window_end = cue_onset[trial_idx] + leverpush_rt + regr_resp_cuedpush = ( + leverpush[trial_idx] + & (outcome[trial_idx] != uncued_push_id) + & (ts >= push_window_start) + & (ts <= push_window_end) + ).astype(int) + regr_resp_uncuedpush = ( + (outcome[trial_idx] == uncued_push_id) + & (ts >= stop_time[trial_idx] - lever_push_duration) + & (ts <= stop_time[trial_idx]) + ).astype(int) + regr_resp_hold = (~leverpush[trial_idx] & (ts >= push_window_start) & (ts <= push_window_end)).astype(int) + + # Reward regressor, depends on previous trial + has_previous = trial_idx > 0 + previous_outcome = np.where(has_previous, outcome[np.maximum(trial_idx - 1, 0)], None) # type: ignore + regr_reward = ( + has_previous & (previous_outcome == correct_outcome_id) & (ts <= start_time[trial_idx] + reward_duration) + ).astype(int) + + regressors = np.stack( + [ + regr_stim_go, + regr_stim_nogo, + regr_resp_cuedpush, + regr_resp_uncuedpush, + regr_resp_hold, + regr_reward, + ], + axis=1, + ) + + regressor_names = { + 0: "stim_go", + 1: "stim_nogo", + 2: "resp_cuedpush", + 3: "resp_uncuedpush", + 4: "resp_hold", + 5: "reward", + } + + return regressors, regressor_names From bc082f910f8deb640ac61eaa79e70a67d644241f Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 3 Aug 2026 16:59:24 +0100 Subject: [PATCH 44/64] add option to session command to generate regressors file --- src/visiomode_analysis/session/__init__.py | 89 +++++++++++++++++++++- 1 file changed, 85 insertions(+), 4 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index ef6337e..228dd9e 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -36,6 +36,7 @@ from collections.abc import Iterator from visiomode_analysis.session import metrics, plots +import visiomode_analysis.session.regressor as rgr SESSION_REPORT_TEMPLATE = "session.html" @@ -61,24 +62,57 @@ default=".", help="Output directory for report and trials files.", ) +@click.option( + "--no-report", + is_flag=True, + default=False, + help="If set, do not generate a session report.", +) +@click.option( + "--with-regressors", + is_flag=True, + default=False, + help="If set, generate regressors for the session.", +) +@click.option( + "--regressor-timestamps", + type=click.Path(exists=True, dir_okay=False), + help="Path to a CSV file containing timestamps for regressor generation.", +) def session_cmd(**kwargs): """Generate a session report and extract trials from a Visiomode JSON file.""" out_dir = preprocess_session(**kwargs) click.echo(f"Files saved under {out_dir}") -def preprocess_session(path: str, output_dir: str = ".") -> str: +def preprocess_session( + path: str, + output_dir: str = ".", + no_report: bool = False, + with_regressors: bool = False, + regressor_timestamps: str | None = None, +) -> str: """Generate a session summary report and trials file from a raw Visiomode JSON. Args: path (str): Path to Visiomode JSON file. output_dir (str, optional): Output directory for report and trials files. Defaults to ".". - + no_report (bool, optional): Whether to generate a session report. Defaults to False. + with_regressors (bool, optional): Whether to generate regressors for the session. Defaults to False. + regressor_timestamps (str, optional): Path to a CSV file containing timestamps for regressor generation. Defaults to None. Returns: str: Returns directory under which files were saved """ - get_trials(path, to_csv=True, output_dir=output_dir) - generate_report(path, output_dir=output_dir) + trials_df = get_trials(path, to_csv=True, output_dir=output_dir) + meta = get_metadata(path) + + if not no_report: + generate_report(path, output_dir=output_dir) + + if with_regressors: + if not regressor_timestamps: + raise ValueError("Regressor timestamps file must be provided when generating regressors.") + generate_regressors(trials_df, meta, regressor_timestamps, output_dir=output_dir) return output_dir @@ -366,6 +400,53 @@ def summary(path: str) -> dict: } +def generate_regressors( + trials_df: pd.DataFrame, metadata: dict, regressor_timestamps_path: str, output_dir: str = "." +) -> tuple[np.ndarray, dict]: + """Generate regressors for the session based on the protocol. + + Timestamps are recalculated to align to the start of the behaviour session, based on the session start time in the metadata. + + Args: + trials_df (pd.DataFrame): A DataFrame containing trial data with columns for trial type, + start time, and stop time. + metadata (dict): A dictionary containing session metadata. + regressor_timestamps_path (str): Path to a CSV file containing timestamps for regressor generation. Typically corresponds to the timestamps of an imaging session or other continuous recording and should be in ISO format. + output_dir (str, optional): Output directory for saving regressors. Defaults to ".". + + Returns: + tuple[np.ndarray, dict]: A tuple containing the regressors array and a dictionary mapping regressor names to their corresponding column indices in the output array. + + Raises: + NotImplementedError: If the protocol specified in the metadata is not supported for regressor generation. + + Note: + The output regressors are saved as a .npz file which contains the regressors array, labels, and recalculated timestamps. + """ + + source_timestamps = pd.read_csv(regressor_timestamps_path).to_numpy().flatten() + session_start_time = datetime.datetime.fromisoformat(metadata.get("session_start_time", "")) + + # recalculate timestamps to align to behaviour + timestamps = [ + (datetime.datetime.fromisoformat(timestamp.decode("utf-8")) - session_start_time).total_seconds() + for timestamp in source_timestamps + ] + + if metadata.get("protocol") == "gonogo": + regressors, labels = rgr.generate_gonogo_regressors(trials_df, timestamps) + np.savez( + f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date')).replace('-', '')}_behaviour-{metadata.get('protocol')}_regressors.npz", + regressors=regressors, + labels=np.array(list(labels.values())), + timestamps=np.array(timestamps), + ) + else: + raise NotImplementedError(f"Regressor generation not implemented for protocol {metadata.get('protocol')}.") + + return regressors, labels + + def generate_report(path: str, output_dir: str = ".") -> str: template = env.get_template(SESSION_REPORT_TEMPLATE) From 913229867a07431aba1c97ab984b287976b3c3fc Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 3 Aug 2026 17:01:57 +0100 Subject: [PATCH 45/64] add separate command for generating regressors only --- src/visiomode_analysis/session/__init__.py | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 228dd9e..3c10322 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -85,6 +85,32 @@ def session_cmd(**kwargs): click.echo(f"Files saved under {out_dir}") +@click.command("regressors") +@click.argument( + "path", + type=click.Path(exists=True, dir_okay=False), +) +@click.option( + "-o", + "--output-dir", + type=click.Path(dir_okay=True), + default=".", + help="Output directory for regressors files.", +) +@click.option( + "--regressor-timestamps", + type=click.Path(exists=True, dir_okay=False), + required=True, + help="Path to a CSV file containing timestamps for regressor generation.", +) +def regressors_cmd(**kwargs): + """Generate regressors for a session based on the protocol.""" + trials_df = get_trials(kwargs["path"]) + meta = get_metadata(kwargs["path"]) + generate_regressors(trials_df, meta, kwargs["regressor_timestamps"], output_dir=kwargs["output_dir"]) + click.echo(f"Regressors saved under {kwargs['output_dir']}") + + def preprocess_session( path: str, output_dir: str = ".", From 837ad14c637e1f8513f2b07d9a3b772542d4dacd Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 3 Aug 2026 17:02:01 +0100 Subject: [PATCH 46/64] add separate command for generating regressors only --- src/visiomode_analysis/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/visiomode_analysis/__init__.py b/src/visiomode_analysis/__init__.py index 92268dd..d4d8bd1 100644 --- a/src/visiomode_analysis/__init__.py +++ b/src/visiomode_analysis/__init__.py @@ -33,5 +33,6 @@ def cli(): cli.add_command(session.session_cmd) +cli.add_command(session.regressors_cmd) cli.add_command(subject.subject_cmd) cli.add_command(group.group_cmd) From 69f151233abed53267e4fdc804ffc752bad32914 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 3 Aug 2026 17:04:57 +0100 Subject: [PATCH 47/64] replace dataframe indexing from attribute to label based --- src/visiomode_analysis/session/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 3c10322..ce72ffc 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -251,7 +251,7 @@ def get_trials(path: str, to_csv: bool = False, output_dir: str = ".") -> pd.Dat df = pd.DataFrame(session) # Convert legacy outcomes if they're still about - df.outcome = df.outcome.replace({"hit": "correct", "false_alarm": "incorrect", "miss": "no_response"}) + df["outcome"] = df["outcome"].replace({"hit": "correct", "false_alarm": "incorrect", "miss": "no_response"}) if to_csv: out_path = f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date')).replace('-', '')}_behaviour-{metadata.get('protocol')}_trials.csv" From 6209088ec4a982bcefe183f6eaffb61bccae8882 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Mon, 3 Aug 2026 17:07:41 +0100 Subject: [PATCH 48/64] replace dataframe indexing from attribute to label based, some missed out --- src/visiomode_analysis/session/__init__.py | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index ce72ffc..4ea3a57 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -295,29 +295,29 @@ def summary(path: str) -> dict: } # Trial counts - correct = len(df[(df.outcome == "correct") & (df.correction == False)]) # noqa: E712 - correct_wc = len(df[(df.outcome == "correct")]) - incorrect = len(df[(df.outcome == "incorrect") & (df.correction == False)]) # noqa: E712 - incorrect_wc = len(df[(df.outcome == "incorrect")]) + correct = len(df[(df["outcome"] == "correct") & (df["correction"] == False)]) # noqa: E712 + correct_wc = len(df[(df["outcome"] == "correct")]) + incorrect = len(df[(df["outcome"] == "incorrect") & (df["correction"] == False)]) # noqa: E712 + incorrect_wc = len(df[(df["outcome"] == "incorrect")]) - correction_trials = len(df[(df.outcome == "incorrect") & (df.correction == True)]) # noqa: E712 + correction_trials = len(df[(df["outcome"] == "incorrect") & (df["correction"] == True)]) # noqa: E712 - hits = len(df[(df.sdt_type == "hit") & (df.correction == False)]) # noqa: E712 - hits_wc = len(df[(df.sdt_type == "hit")]) + hits = len(df[(df["sdt_type"] == "hit") & (df["correction"] == False)]) # noqa: E712 + hits_wc = len(df[(df["sdt_type"] == "hit")]) - false_alarms = len(df[(df.sdt_type == "false_alarm") & (df.correction == False)]) # noqa: E712 - false_alarms_wc = len(df[(df.sdt_type == "false_alarm")]) + false_alarms = len(df[(df["sdt_type"] == "false_alarm") & (df["correction"] == False)]) # noqa: E712 + false_alarms_wc = len(df[(df["sdt_type"] == "false_alarm")]) - correct_rejections = len(df[(df.sdt_type == "correct_rejection") & (df.correction == False)]) # noqa: E712 - correct_rejections_wc = len(df[(df.sdt_type == "correct_rejection")]) + correct_rejections = len(df[(df["sdt_type"] == "correct_rejection") & (df["correction"] == False)]) # noqa: E712 + correct_rejections_wc = len(df[(df["sdt_type"] == "correct_rejection")]) - misses = len(df[(df.sdt_type == "miss") & (df.correction == False)]) # noqa: E712 - misses_wc = len(df[(df.sdt_type == "miss")]) + misses = len(df[(df["sdt_type"] == "miss") & (df["correction"] == False)]) # noqa: E712 + misses_wc = len(df[(df["sdt_type"] == "miss")]) cued = hits + misses + false_alarms + correct_rejections cued_wc = hits_wc + misses_wc + false_alarms_wc + correct_rejections_wc - precued = len(df[(df.outcome == "precued")]) + precued = len(df[(df["outcome"] == "precued")]) total = cued_wc + precued From da64d150908434476d4539dc7e441a753ec4dd3e Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 4 Aug 2026 10:29:00 +0100 Subject: [PATCH 49/64] handle timestamps file in either txt or csv format --- src/visiomode_analysis/session/__init__.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 4ea3a57..7619e35 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -437,7 +437,7 @@ def generate_regressors( trials_df (pd.DataFrame): A DataFrame containing trial data with columns for trial type, start time, and stop time. metadata (dict): A dictionary containing session metadata. - regressor_timestamps_path (str): Path to a CSV file containing timestamps for regressor generation. Typically corresponds to the timestamps of an imaging session or other continuous recording and should be in ISO format. + regressor_timestamps_path (str): Path to a CSV or TXT file containing timestamps for regressor generation. Typically corresponds to the timestamps of an imaging session or other continuous recording and should be in ISO format. output_dir (str, optional): Output directory for saving regressors. Defaults to ".". Returns: @@ -450,7 +450,12 @@ def generate_regressors( The output regressors are saved as a .npz file which contains the regressors array, labels, and recalculated timestamps. """ - source_timestamps = pd.read_csv(regressor_timestamps_path).to_numpy().flatten() + if regressor_timestamps_path.endswith(".csv"): + source_timestamps = pd.read_csv(regressor_timestamps_path).to_numpy().flatten() + elif regressor_timestamps_path.endswith(".txt"): + source_timestamps = np.loadtxt(regressor_timestamps_path) + else: + raise ValueError("Regressor timestamps file must be in CSV or TXT format.") session_start_time = datetime.datetime.fromisoformat(metadata.get("session_start_time", "")) # recalculate timestamps to align to behaviour From b8e4fea51a579ca8bfa49013b2662043c98ff825 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 4 Aug 2026 17:20:42 +0100 Subject: [PATCH 50/64] fix regressor length to match input timestamps --- src/visiomode_analysis/session/regressor.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/visiomode_analysis/session/regressor.py b/src/visiomode_analysis/session/regressor.py index ac101a8..cfe2aa7 100644 --- a/src/visiomode_analysis/session/regressor.py +++ b/src/visiomode_analysis/session/regressor.py @@ -74,13 +74,13 @@ def generate_gonogo_regressors( trial_entries[trial_entries] &= start_time[ts_indexes[trial_entries]] < timestamps[trial_entries] trial_entries[trial_entries] &= stop_time[ts_indexes[trial_entries]] > timestamps[trial_entries] - trial_idx = np.nonzero(trial_entries)[0] + entry_idx = np.nonzero(trial_entries)[0] - if len(trial_idx) == 0: + if len(entry_idx) == 0: raise ValueError("No trials found for the provided timestamps.") - ts = timestamps[trial_idx] - trial_idx = ts_indexes[trial_idx] + ts = timestamps[entry_idx] + trial_idx = ts_indexes[entry_idx] # Stimulus regressors regr_stim_go = ( @@ -117,7 +117,9 @@ def generate_gonogo_regressors( has_previous & (previous_outcome == correct_outcome_id) & (ts <= start_time[trial_idx] + reward_duration) ).astype(int) - regressors = np.stack( + # Timestamps that fall outside every trial window (e.g. inter-trial intervals) get all-zero rows, so the output always matches the length of the input timestamps. + regressors = np.zeros((len(timestamps), 6), dtype=int) + regressors[entry_idx] = np.stack( [ regr_stim_go, regr_stim_nogo, From a8ecd9232774e68c79bafaaffd6f8bcbbd82d0be Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 4 Aug 2026 17:20:58 +0100 Subject: [PATCH 51/64] remove unnecessary string decoding --- src/visiomode_analysis/session/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index 7619e35..f5091d9 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -453,14 +453,14 @@ def generate_regressors( if regressor_timestamps_path.endswith(".csv"): source_timestamps = pd.read_csv(regressor_timestamps_path).to_numpy().flatten() elif regressor_timestamps_path.endswith(".txt"): - source_timestamps = np.loadtxt(regressor_timestamps_path) + source_timestamps = np.loadtxt(regressor_timestamps_path, dtype=str) else: raise ValueError("Regressor timestamps file must be in CSV or TXT format.") session_start_time = datetime.datetime.fromisoformat(metadata.get("session_start_time", "")) # recalculate timestamps to align to behaviour timestamps = [ - (datetime.datetime.fromisoformat(timestamp.decode("utf-8")) - session_start_time).total_seconds() + (datetime.datetime.fromisoformat(timestamp) - session_start_time).total_seconds() for timestamp in source_timestamps ] From 5cb8741e8ee6b16b088cf6d06383c564c114d1f0 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 5 Aug 2026 17:19:13 +0100 Subject: [PATCH 52/64] minor regressor adjustments --- src/visiomode_analysis/session/regressor.py | 77 +++++++++++++-------- 1 file changed, 48 insertions(+), 29 deletions(-) diff --git a/src/visiomode_analysis/session/regressor.py b/src/visiomode_analysis/session/regressor.py index cfe2aa7..93f250c 100644 --- a/src/visiomode_analysis/session/regressor.py +++ b/src/visiomode_analysis/session/regressor.py @@ -28,12 +28,12 @@ def generate_gonogo_regressors( timestamps: np.ndarray | list, go_stim_id: str = "movinggrating", nogo_stim_id: str = "isoluminantgray", - uncued_push_id: str = "uncued", + uncued_push_id: str = "precued", correct_outcome_id: str = "correct", - lever_push_duration: float = 0.07, - stimulus_duration: float = 0.15, + lever_push_duration: float = 0.08, reward_duration: float = 1.5, -) -> tuple[np.ndarray, dict]: + trial_epoch_only: bool = False, +) -> tuple[np.ndarray, dict, np.ndarray]: """Generate regressors for the Go/NoGo paradigm for a custom set of timestamps. Args: @@ -46,19 +46,20 @@ def generate_gonogo_regressors( Defaults to "isoluminantgray". uncued_push_id (str, optional): The identifier for uncued push responses. Defaults to "uncued". correct_outcome_id (str, optional): The identifier for correct trial outcomes. Defaults to "correct". - lever_push_duration (float, optional): The duration of a lever push in seconds. Defaults to 0.07, which is lever push duration from Dacre et al. 2021. - stimulus_duration (float, optional): The duration of the stimulus in seconds. Defaults to 0.15. + lever_push_duration (float, optional): The duration of a lever push in seconds. Defaults to 0.08, which is lever push duration from Dacre et al. 2021. reward_duration (float, optional): The duration of the reward in seconds. Defaults to 1.5. + trial_epoch_only (bool, optional): If True, only timestamps that fall within the trial epochs will be considered for regressor generation. Timestamps outside of trial epochs will be ignored. Defaults to False. Returns: np.ndarray: A 2D array where each row corresponds to a timestamp and each column corresponds to a regressor (e.g., stimulus, response, reward). dict: A dictionary mapping regressor names to their corresponding column indices in the output array. + trial_entries (np.ndarray): A boolean array indicating which timestamps fall within trial epochs. True for timestamps that are within a trial, False otherwise. """ timestamps = np.asarray(timestamps, dtype=float) - response_times = np.array(trials_df[trials_df.response.notna()].response_time.values) + response_times = np.array(trials_df[trials_df.sdt_type == "hit"].response_time.values) leverpush_rt = np.nanmedian(response_times) start_time = trials_df["start_time"].to_numpy(dtype=float) @@ -86,28 +87,32 @@ def generate_gonogo_regressors( regr_stim_go = ( (stim_id[trial_idx] == go_stim_id) & (ts >= cue_onset[trial_idx]) - & (ts <= cue_onset[trial_idx] + stimulus_duration) + & (ts <= stop_time[trial_idx] - lever_push_duration) ).astype(int) regr_stim_nogo = ( (stim_id[trial_idx] == nogo_stim_id) & (ts >= cue_onset[trial_idx]) - & (ts <= cue_onset[trial_idx] + stimulus_duration) + & (ts <= cue_onset[trial_idx] + leverpush_rt - lever_push_duration) + # & (ts <= stop_time[trial_idx] - (leverpush_rt + lever_push_duration)) ).astype(int) # Response regressors - push_window_start = cue_onset[trial_idx] + leverpush_rt - lever_push_duration - push_window_end = cue_onset[trial_idx] + leverpush_rt regr_resp_cuedpush = ( leverpush[trial_idx] - & (outcome[trial_idx] != uncued_push_id) - & (ts >= push_window_start) - & (ts <= push_window_end) + & ((stim_id[trial_idx] == go_stim_id) | (stim_id[trial_idx] == nogo_stim_id)) + & (ts >= stop_time[trial_idx] - lever_push_duration) + & (ts <= stop_time[trial_idx]) ).astype(int) regr_resp_uncuedpush = ( - (outcome[trial_idx] == uncued_push_id) + leverpush[trial_idx] + & (outcome[trial_idx] == uncued_push_id) & (ts >= stop_time[trial_idx] - lever_push_duration) & (ts <= stop_time[trial_idx]) ).astype(int) + + # define hold regressor based on average lever push RT + push_window_start = cue_onset[trial_idx] + leverpush_rt - lever_push_duration + push_window_end = cue_onset[trial_idx] + leverpush_rt regr_resp_hold = (~leverpush[trial_idx] & (ts >= push_window_start) & (ts <= push_window_end)).astype(int) # Reward regressor, depends on previous trial @@ -117,19 +122,33 @@ def generate_gonogo_regressors( has_previous & (previous_outcome == correct_outcome_id) & (ts <= start_time[trial_idx] + reward_duration) ).astype(int) - # Timestamps that fall outside every trial window (e.g. inter-trial intervals) get all-zero rows, so the output always matches the length of the input timestamps. - regressors = np.zeros((len(timestamps), 6), dtype=int) - regressors[entry_idx] = np.stack( - [ - regr_stim_go, - regr_stim_nogo, - regr_resp_cuedpush, - regr_resp_uncuedpush, - regr_resp_hold, - regr_reward, - ], - axis=1, - ) + if not trial_epoch_only: + # Timestamps that fall outside every trial window (e.g. inter-trial intervals) get all-zero rows, so the output always matches the length of the input timestamps. + regressors = np.zeros((len(timestamps), 6), dtype=int) + regressors[entry_idx] = np.stack( + [ + regr_stim_go, + regr_stim_nogo, + regr_resp_cuedpush, + regr_resp_uncuedpush, + regr_resp_hold, + regr_reward, + ], + axis=1, + ) + else: + # Only return timestamps that fall within trial epochs + regressors = np.stack( + [ + regr_stim_go, + regr_stim_nogo, + regr_resp_cuedpush, + regr_resp_uncuedpush, + regr_resp_hold, + regr_reward, + ], + axis=1, + ) regressor_names = { 0: "stim_go", @@ -140,4 +159,4 @@ def generate_gonogo_regressors( 5: "reward", } - return regressors, regressor_names + return regressors, regressor_names, trial_entries From 3a0fad4ab42aa5ef1d1a879453f82e2e55ef4250 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 5 Aug 2026 17:19:42 +0100 Subject: [PATCH 53/64] add option to return trial epoch indeceS --- src/visiomode_analysis/session/__init__.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/visiomode_analysis/session/__init__.py b/src/visiomode_analysis/session/__init__.py index f5091d9..06a2538 100644 --- a/src/visiomode_analysis/session/__init__.py +++ b/src/visiomode_analysis/session/__init__.py @@ -428,7 +428,7 @@ def summary(path: str) -> dict: def generate_regressors( trials_df: pd.DataFrame, metadata: dict, regressor_timestamps_path: str, output_dir: str = "." -) -> tuple[np.ndarray, dict]: +) -> str: """Generate regressors for the session based on the protocol. Timestamps are recalculated to align to the start of the behaviour session, based on the session start time in the metadata. @@ -441,7 +441,7 @@ def generate_regressors( output_dir (str, optional): Output directory for saving regressors. Defaults to ".". Returns: - tuple[np.ndarray, dict]: A tuple containing the regressors array and a dictionary mapping regressor names to their corresponding column indices in the output array. + str: Path to the generated regressors file. Raises: NotImplementedError: If the protocol specified in the metadata is not supported for regressor generation. @@ -464,18 +464,21 @@ def generate_regressors( for timestamp in source_timestamps ] + outpath = f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date')).replace('-', '')}_behaviour-{metadata.get('protocol')}_regressors.npz" + if metadata.get("protocol") == "gonogo": - regressors, labels = rgr.generate_gonogo_regressors(trials_df, timestamps) + regressors, labels, trial_idx = rgr.generate_gonogo_regressors(trials_df, timestamps, trial_epoch_only=True) np.savez( - f"{output_dir}{os.sep}sub-{metadata.get('animal_id')}_exp-{metadata.get('experiment')}_ses-{str(metadata.get('session_date')).replace('-', '')}_behaviour-{metadata.get('protocol')}_regressors.npz", + outpath, regressors=regressors, labels=np.array(list(labels.values())), timestamps=np.array(timestamps), + trial_idx=trial_idx, ) else: raise NotImplementedError(f"Regressor generation not implemented for protocol {metadata.get('protocol')}.") - return regressors, labels + return outpath def generate_report(path: str, output_dir: str = ".") -> str: From 93884d9a89cb8f866e9c558324ef272f1b5eee46 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 5 Aug 2026 17:19:53 +0100 Subject: [PATCH 54/64] test regressor generation --- exploratory/session-regressors.ipynb | 403 ++++++++++++++++++++++++--- 1 file changed, 366 insertions(+), 37 deletions(-) diff --git a/exploratory/session-regressors.ipynb b/exploratory/session-regressors.ipynb index 6e91f53..ea0784b 100644 --- a/exploratory/session-regressors.ipynb +++ b/exploratory/session-regressors.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 325, "id": "ee2f6242", "metadata": {}, "outputs": [], @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 326, "id": "1c4bd08b", "metadata": {}, "outputs": [], @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 327, "id": "274611c3", "metadata": {}, "outputs": [ @@ -97,7 +97,7 @@ " 4.484679\n", " 13.484679\n", " 9.484679\n", - " NaN\n", + " None\n", " NaN\n", " ...\n", " False\n", @@ -129,7 +129,7 @@ " 240.0\n", " 0.0\n", " 0.0\n", - " NaN\n", + " None\n", " NaN\n", " NaN\n", " NaN\n", @@ -169,7 +169,7 @@ " 26.700473\n", " 35.700473\n", " 31.700473\n", - " NaN\n", + " None\n", " NaN\n", " ...\n", " False\n", @@ -297,7 +297,7 @@ " 240.0\n", " 0.0\n", " 0.0\n", - " NaN\n", + " None\n", " NaN\n", " NaN\n", " NaN\n", @@ -313,7 +313,7 @@ " 1786.327744\n", " 1795.327744\n", " 1791.327744\n", - " NaN\n", + " None\n", " NaN\n", " ...\n", " True\n", @@ -371,28 +371,28 @@ "304 MM229 2022-03-09 gonogo unknown 109hrb21d 1796.831960 \n", "\n", " stop_time cue_onset response response_time ... correction pos_x \\\n", - "0 13.484679 9.484679 NaN NaN ... False NaN \n", + "0 13.484679 9.484679 None NaN ... False NaN \n", "1 19.065675 NaN unknown 4.072411 ... False 400.0 \n", "2 25.196554 24.067179 unknown 1.128456 ... False 400.0 \n", - "3 35.700473 31.700473 NaN NaN ... False NaN \n", + "3 35.700473 31.700473 None NaN ... False NaN \n", "4 43.881072 42.206945 unknown 1.670673 ... False 400.0 \n", ".. ... ... ... ... ... ... ... \n", "300 1774.055825 1770.847014 unknown 3.207015 ... True 400.0 \n", "301 1781.851167 1779.057461 unknown 2.791260 ... True 400.0 \n", "302 1786.325765 NaN unknown 4.472022 ... True 400.0 \n", - "303 1795.327744 1791.327744 NaN NaN ... True NaN \n", + "303 1795.327744 1791.327744 None NaN ... True NaN \n", "304 1802.662695 1801.831960 unknown 0.828844 ... False 400.0 \n", "\n", " pos_y dist_x dist_y sdt_type stim_id stim_period \\\n", "0 NaN NaN NaN correct_rejection isoluminantgray NaN \n", - "1 240.0 0.0 0.0 NaN NaN NaN \n", + "1 240.0 0.0 0.0 None NaN NaN \n", "2 240.0 0.0 0.0 hit movinggrating 30 \n", "3 NaN NaN NaN correct_rejection isoluminantgray NaN \n", "4 240.0 0.0 0.0 hit movinggrating 30 \n", ".. ... ... ... ... ... ... \n", "300 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", "301 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", - "302 240.0 0.0 0.0 NaN NaN NaN \n", + "302 240.0 0.0 0.0 None NaN NaN \n", "303 NaN NaN NaN correct_rejection isoluminantgray NaN \n", "304 240.0 0.0 0.0 false_alarm isoluminantgray NaN \n", "\n", @@ -412,7 +412,7 @@ "[305 rows x 21 columns]" ] }, - "execution_count": 3, + "execution_count": 327, "metadata": {}, "output_type": "execute_result" } @@ -423,7 +423,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 328, "id": "01235bb3", "metadata": {}, "outputs": [ @@ -452,7 +452,7 @@ " 'notes': ''}" ] }, - "execution_count": 4, + "execution_count": 328, "metadata": {}, "output_type": "execute_result" } @@ -463,7 +463,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 329, "id": "cc5c7ad2", "metadata": {}, "outputs": [], @@ -476,7 +476,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 330, "id": "886ea992", "metadata": {}, "outputs": [], @@ -487,7 +487,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 331, "id": "808a8d71", "metadata": {}, "outputs": [], @@ -536,8 +536,8 @@ " if (\n", " (trial.response.notna().values[0])\n", " & (trial.outcome.values[0] != \"precued\")\n", - " & (timestamp >= trial.cue_onset.values[0] + leverpush_rt - 0.07)\n", - " & (timestamp <= trial.cue_onset.values[0] + leverpush_rt)\n", + " & (timestamp >= trial.stop_time.values[0] - 0.07) # 70 ms is lever push duration from Dacre et al. 2021\n", + " & (timestamp <= trial.stop_time.values[0])\n", " )\n", " else 0\n", " ) # 70 ms is lever push duration from Dacre et al. 2021\n", @@ -570,23 +570,45 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 332, + "id": "522f0d88", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "304 incorrect\n", + "Name: outcome, dtype: object" + ] + }, + "execution_count": 332, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trial.outcome" + ] + }, + { + "cell_type": "code", + "execution_count": 333, "id": "904d0358", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 8, + "execution_count": 333, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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mDFDDjroILn66qttywwAAAAAQCWMmO5wxRVXyDnnnCOXXnppFFBffPHFcvLJJ8sDDzwge+yxx8D2O3bskNe97nXRa9/85jdl7733lieeeEIWLlzoqg4AAAAAANQjqL7ooovkzDPPlDPOOCN6rILrq666Si677DI599xzB7ZXzz/77LNy4403yrRp06Ln1KfcabZv3x7969iwYYNpMQEAQKVwJWEAVcO6hBK+/q0+db799tvlpJNOmkxgaCh6fNNNN8Xu893vfldOPPHE6OvfixcvlsMPP1w+/elPy9jYWGI+F154oSxYsGDi39KlS02KCQAAAABA9YLqtWvXRsGwCo67qccrV66M3efRRx+Nvvat9lO/o/74xz8uX/ziF+Wv//qvE/M577zzZP369RP/VqxYYVJMAEBTcOsdAIDbA0vC30CBX/821Wq1ot9T//M//7MMDw/LscceK08++aR8/vOflwsuuCB2H3UxM/UPAAAAAIDGBNWLFi2KAuNVq1b1PK8eL1myJHYfdcVv9VtqtV/HoYceGn2yrb5OPn36dGmcMEx/7C4jT+nq5jf5ODSpo8P2MErKpl/6t2nF7xOa9EVPmmFpfeZ335jUnFQ1LH9uqn0y00lJNzZPD+MgrYyp5Y8pS9jyV67udcR10kXJs/5Fj9P6xjKfuKxTWrictgsLW3+c015L7LYr+siQvrGHfkpKs7DzpwJk1SUs5tygM+97U8+fvnYKacceR8KC+y/MzLz3SRefhfcdKdJW89z5xHZd1lwPB/ZOKVPMedRU+/q3CoDVJ83XXXddzyfR6rH63XScl770pfLwww9H23U8+OCDUbDdyIDaqYxpaD0gE7720pCvWVaqGlUqS63avSINp12MPG9WVEzWulKpCVbHrwCGpY2PBp7DZAoyx6urfu9q3NQ8LTqhUXPO1FQatPnqGnibI8WoSDFQtCCYuvepVrfT+spXviL/9m//Jvfdd5+8973vlc2bN09cDfy0006LfhPdoV5XV/8+++yzo2BaXSlcXahMXbgMAAAAAIAp9ZvqU089VdasWSPnn39+9BXuo48+Wq655pqJi5ctX748uiJ4h7py9w9+8AP5wAc+IEceeWR0n2oVYH/4wx92WxMAAAAAAOpwobKzzjor+hfn+uuvH3hOfTX85ptvtskKAAAAAIDmfP0bAAAAAAC0EVQDAAAAAFDV+1QjTY7b8sQml7a/xt+Jt3MwvyJlb1I5roxscbna/Fe41Utg4PYCA7upWwbkLUt2KfLd0sPd7Ut675qhHuS5omNY+PzRuCuGQWKaZdG5vZb2vC7o8s5pt33JebswvVvzWdRZ6zZG/X/btm3MvoVdwTgm71by+qVfJYMxmIvhrXc05ln2mMrqL4v6GY2VeEFWGll9kvd8wqHuPohfImxvw5Wx3kS3P0x5Xedx3C0UY/fxMSdMxmVofcus9Dlit6ZnT7uYDWJuWdVdD906xdUn625mVeXrkK495WrTUtXAJ9VNVsC9AaeyyjZpZQs2hfm6jzt97Y7PtmxaP5V9pudbVcqBXIGZlVxv0jXwnI650EiscH4QVNdZg+7tVq0moF29tGrFmzVoSkXyiqtfQXXOe7/UxN2b0mc577nclGZojkDvJePAJrujSx8KDMZym193BKT0U+ljCNYCi3GiPWamMIJqAAAAAAAsEVQDAAAAAGCJoBoAACAOvykFGohfFcM9gmoAAAAAACwRVAMAgAJwoRsAQDMRVAMAAAAAYImgGgAAAAAASwTVhVwAIfRz0ZSiL6DSn591/u7KbVYEm37p3SZM2Me6HN77M8dYdNbfMbubJOW0jRzMzagMWW2Tkm5cHQrv+5TXvJcvue3CzHzC+l9TKqt908aSyzk48FoJjZeap9v1xz3N8oW22yXm5ERqy2uvZ6H9cSLxgJCWXtXGQJasdkypq8Px3kmqJ3kHbambQlhAH+ZrLs2x2PW4ty2zCxSGrTwFHE8j1BsipnNyoKxd9eyus855T6h5fht3HtUABNW11rwBiSphfPlpq6q3a9XLV3f53jhAVWmHGFI7pb6hUcP2qkFdK/ceFdAABNVT8qIuQfzfQTMuIlOpagQlFLykBjDKNnPbiozLKo2lqnDcH+XO14qMM3gTZPZrDfq94LE50GaJ+bsql246NeirEtm2TvYcKUY1iuGnEFVp41illy2QpiCoBgAAAADAEkE1AABTAN/4BADAD4JqAAAAAAAsEVQDAAAAAGCJoBoAAAAAAEsE1WXKeU/W7O117r2ncU855/cGTts0/32E898qIrTcKuY+fGHF7nmb2b72Bc68b6NZahab5Luvbfy9Jo2SSMk75T6vmc+Z3Le1gF/NZt5T2b4fQl9rRPINPeO3iaph2bbRvC+hXzr5pNxztPd5k1Kl1MfXPcy10s0ea1r3Pk/tL599l3q3aLN9B9aFfOuhLwmj0XLvrPVTox20jokaa7KPe0ybjEt1D+O0XVOzCe3PMQx269sidZ9OmVw160BLVmM6ZArLTrcm7VQVBNVN5mORRw3atKrlmsLMznD8bIusxvTXQk3rJ1/1qUo75S1HVerRdJYBn3GarvOo1TkdY7mJst9shA2C6lprzr3dqnV7PdrVS6tWvFmDplQkt5j6FVTl2GwMDv7Jt9NtSJ/lvOdyQ1qhQZJ7JN+Qzd659LHQlDlZU/rNnzJGXRUGhdO+b3bXZgE9nomgGgAAAAAASwTVAAAAAABYIqgGAAAAAMASQTUAAEBVcVEhAKg8gmoAAAAAACwRVAMAAAAAYImgGgAAAAAASwTVRfz+yenvobrTKvrm7WHiY6MqOmyPXPnq7Ky5j1GNwiL7MLnPsnfNsa9OcnaplD834/YxaavYPD2Mg7S6prbDYFkCl2tYSt5hzvvZlvbTU5OMY+uv2Tc5K5i2dzlNZ1KisjpXt3hJ5dNdc8JCx7L1MStzrdNMOamCXs+fCpZVF8N12LoYE/+1PGfLSNdoS0/92V23Qo5VPX/Hl8j1MbR9pOg+XmquOYZtEyZ1XVa6Yd+xLCteqfPcTkBQXWkZJ5PWAzJIuLO7/slrlVWqGkGdMw1LbPeKdKJ2MYze3ZFKy1pXKjXB8kpYC70K6z0+aibIHK8e1svUPC36t1FzztRUmg/56hp4myPFqEgxULSgOR1PUA0AAAAAgCWCagAAAAAALBFUAwAAxGng7/6AqS6YUj8rQFEIqgEAgH8N+u0cAADdCKoBAAAAALBEUA0AwBTAN5kBAPBjxFO60JJ1P0bD33yk7q/xd+I9Es1/e9KbVI7bDVmcBeY/cQzttoprf+8/28m453Gu+2QalsTprSjDwuePxq0mDRLTLIvOPasHB1rKtgX8TiztXqo578GtV3yLOmvdG7j/b9u2jdm3sN/vxeXdSt5St06O71mfklFKnnblyq5jVn9Z1NVorNi8pnG8r9A7KL3Hhhz3q9Uah31jyPi+2jHzXiuNnGMmlsm47L2LsNFZV2r7263pmfeNzhgHYY6WjE+698nqzI502mu0p3Tr0k5VwSfVTeY2ykFK81ZKZQs2hZn0ia9tUV5bNq2ffNWnKu2UuxwVqUfT5QnQTdJ0nUedzukYyoA2guo646IvnpqAi+l4adWKN2vQlIrkFVe/guqcN5vE/ZvSZ5n1SH+9Kc3QHMkdkq+rsvcufSgwGOshqPAYgnfdfRzQ45kIqgEAAAAAsERQDQAAAACAJYJqAAAAAAAsEVQDAAAAAGCJoBoAAAAAAEsE1QAAAAAAWCKoLuTGfmEz7j3dn193UYzq6K7cZk1g0y+924QJGSY9n5mm9/7MMRYH+jtf+Xp2N2oul23kYG5q3Rs1NNxfPEgrU8prceVrtfyVqyu/zO7N2KC82xznubd4mDHG3Y3/tN1LabvUTN2uP+5plk93HU0+vHqpe2rLp65nfX/bHid0DwjWB44qyDoupLSdwz7v9KfrYaSbXFhAH+aqW2L5kvurd6vsc4IwzH8MVUlqDRHTOTlQ1q6/u5/PXPPC5ALGlqlu8zkbQXWtNW9AokoYX/rtUs6bSn5UvXx1l/nOQUHlQEkhRv0avtQi17C9alBXsw8CAOggqK7Nbdd9pdv1d+Arv2JVqhpBCQUvqQGMss3ctiLjskpjqSpc90epbVyRcQZvgsx+zfu6q33SkgvKbbPE7F2VSzcd5qiP1smeI8UorRg9GfspRFXaOFbpZQukKQiqAQAAAACwRFANAAAAAIAlgmoAAAAAACwRVAMAAAAAYImgGgAAAAAASwTVAAAAAABYGrHdEQ7E3Tg99XFmgimPNf7WvWm7VkmS8svaMW8bWBXXKs/eOsbspwri+1aQcZVN6zvnYy4h29wV19g/qy6GAyF2a9tqaI9jnXtep9XLXf9pS10bMsZjVtKm+evulViGlDXPdi3Ks29ug2tO0v1o1fP2PZPv+KCVj1a62XM++368Wf0VlnLP6kCn3D0P+8ucbz10qXukJYxG7ZSy9zNsB61jos6x3sOcMBmXffPZpAipcyS2ibMTz94kZq62usZJOJiQbp3iVrawpvfpLruYdWmnquCT6ibzscijBk1a2YJNXWZnOH62RVZj+muhpvWTr/pUpZ3ylqMq9Wi6rDeVXaXpOo9andMxlpuIJcoPgupaa84N06t1z3ra1UurVrxZ9YtX8YrkFpTWeXlzSSxm1Qefrsx6NKSeU0bgqSuzdy59pDRlTtZUoN3+ydvRg/Wl2/3d4ySgxzMRVAMAAAAAYImgGgAAAAAASwTVAAAAcfhJKQBAA0E1AAAoAL/CBAA0E0E1AAAAAACWCKoBAAAAALBEUF3EDeCc3hAuLPHHXmHiY6MqOmyPXPmG7vrSqEZhkX2Y3GfZu+bYVyc5u1QqMDd17o2akm5snh7GQVpdU9thsCxB2PJWrqB7HXGbdHHy3Fs8eqzZNzkrGKa0cNpr/qTl6Xb9cU57LbHdTrwyO2Z1/53VL5opJ7WD1/OngmXVxXAdti5GbNHypx9W6P7aXlJN6Z/sKrlfv1Sf6Y2QnHn31K37+JyRbth3LEstbVjvuZ2AoLrOvz+zHpBB/N8NuW9kpaoR1DnTsMR2r0gnxhVD6wCapuIHkqx1pVITLK+EtdCrsN7jo3H34/WwXqbmadO/TZpzpqbSfMhX18AyJ/17VvtVkWKgaEFzOp6gGgAAAAAASwTVAAAAAABYIqgGAACorKn0FWgAqCeCagAAAAAALBFUAwAAAABgiaAaAAAAAABLBNUAAAAAAFgasd0RLiTfWD729czk0vbX+Ltnf71bzGsVxeh+2lltYpi3ldBuq7j29359mbgMkvrU4rFJSVKytUit8PmT+/bTNmWJbSiTernrP22J64RmfVKTdtHvsQlrpNX/d562zbmWW9Mvd2hSLJMxmIvhIqIxz7LHVEyb5a2f9lhJ2y503CflXews89ig215a62pfZpn7ZDzWTsPHnDDp47DvGVfrrl1dMveKy7PruU5temuseW6WnjTyTDmk4pPqJnMb5SCleSulsgWbwkz6xNe2KK8tm9ZPvupTlXbKXY6K1KPpfERPud6ka+A5XVXmJJzSfYMCZgiq6ywIZKrz0wS0q5dWrXizahev4vXw0lEFdV6QM5/E3as++HRl1qMh9Zwykvsr35DN3rn0kdKUOVlT+se7lDHqqjAoXKDZe93dr7vPVEZQDQAAAACAJYJqAACmAr7xBwCAFwTVAAAAAABYIqgGAAAAAMASQTUAAAAAAJYIqr3weI/SMm+TFabcU7ACd5jQ2DrjcfY+YdhyWw7v/ZljLDq8h/XA7ka3/PXZRjb3oI17zqCdC7uJptk9TlPLkjDuXZSrt3t17imc8mppvxnOcxu0vvvgpo2lvHPQ+kVPTO6PW7lb+2iWT3cd7Xved3VTW177Htgx93C2ugFuWKN+N2G4nnk61nWS6kneRbra+fu4h3daHsY7dz9I+Ltvl6ytHJ8/dfLROl6a5t2/9nTVqHfMhPbHsjBu3zrP7XgE1bXWvAGJKmF86beL0bsEUm1VL1/d5XvjAFWlHWJI7ZQa2NawvWpQ11q/VwFUFEF1pQUFpNt9E7pm3IOuUtUISih4SQ1glG3mthUZl1UaS1XhuD/KbeKKjDOUeO9zH/3uOs2g3DZLvgG8qxwdpTO1Bd7mSDGqUQw/hahKG8cqvWyBNAVBNQAAAAAAlgiqAQAAAACwRFANAAAQhx+fAo0TMK/hAUE1AAAAAACWCKoBAMAUuCAOAAB+EFQDAABUFvc/AoCqI6gGAAAAAMDSiO2OcGDgQglZjzMTTHms8XeY9LdhMQZ2CR22iUUS5ilobpVRVlUQ3x8wxFU2qR9jt8/f3mlFsaeRWFZdDAsUu7VtnbTHcdzzJvVy13/a0sZXXP4G/RD6WiMSy5Cy/tmuRXn2zS0m74S6t5cn3XKl1MfpxDdNN7uuYWY6Wf1lUz/bds0hdV0o94JrvVnrrHnaKWc8F2aPEa1jouGx3lVbm4zLMLQuQuocyTrHMNitb4vUcnT+TD3cGOXdd1Zaky9/+Cqn7tpfk2aqDD6pbjKb1QgG7VvVxqpswaYuszMcP9siqzH9tVDT+snbmV5F2ilvOcquR9n5F8Uy4DNO03UetTqnmyJjaYqZKktE0Qiqa42Lvvi57g3t6qVVK96s+sWreEVyC0rrvLy5JBaz6oNPV2Y9GlLPKSPw05Ma4730kdKUOVlT+s3vaYyiFv3fvVlAj2ciqAYAAAAAwBJBNQAAAAAAlgiqAQAAAACwRFANAAAAAIAlgmoAAKaA7NtLAQAAGwTVPmjeJ9Qy8YS/i5B8z0T9+526bQ+jpArrF5NyeL+RdcbjtF3d3mvXTXM7vl2KVaF0buNieN9PH+Mgra6p7TBYlsDlXElpq7y5lBYz5rkNWvRYs29yVjD1drRSNWXd69vzWqJzz/QSjgzpG6eNQct+SmoHr8fpgmXVxXAdzlGQ8f8fvA90/lSzBdKqZ3+m9E/vPbU1junOGlynD/OtnT3TvSeVjHTDvmNZarwS1mss+AyqL7nkElm2bJnMnDlTTjjhBLn11lu19rv88sslCAJ561vfapPtFJRxzXvrAdl7kfzJP5txg4RKVSOoc6Zhie1ekU4MfATFFT+QZK0rlZpgeSWshV6F9R4fNaPOOTK2cJRTV7+l5mnTv02ac6am0nzIV1eTUdIdIGXPkWJUpBgoWhBM3aD6iiuukHPOOUcuuOACueOOO+Soo46Sk08+WVavXp263+OPPy5/+Zd/KS9/+cvzlBcAAAAAgPoG1RdddJGceeaZcsYZZ8hhhx0ml156qcyePVsuu+yyxH3Gxsbk7W9/u3zyk5+U/fffPzOP7du3y4YNG3r+AQCAGmvg1/0A1B3rEkoIqnfs2CG33367nHTSSZMJDA1Fj2+66abE/f7qr/5K9thjD3nnO9+plc+FF14oCxYsmPi3dOlSk2ICAAAAAFC9oHrt2rXRp86LFy/ueV49XrlyZew+N9xwg/zLv/yLfOUrX9HO57zzzpP169dP/FuxYoVJMQEAAAAg43e8zflNL8o14jPxjRs3yjve8Y4ooF60aJH2fjNmzIj+AQAAAADQmKBaBcbDw8OyatWqnufV4yVLlgxs/8gjj0QXKDvllFMmnmu12pfWHxkZkQceeECe//zn25ceAAAAAIC6fP17+vTpcuyxx8p1113XEySrxyeeeOLA9occcojcfffdctddd038e8tb3iKvfvWro7/5rTQAAAAAYEp9/VvdTuv000+X4447To4//ni5+OKLZfPmzdHVwJXTTjtN9t577+hiY+o+1ocffnjP/gsXLoz+2/88AAAAAACND6pPPfVUWbNmjZx//vnRxcmOPvpoueaaayYuXrZ8+fLoiuCwuIz/wO1GDC/zn7q/xt89+yf9rVuU7nSN9uxPyCJv413Sy6C7VVz7e79TQ1wGSX1q8dikJCnZWqRW+PyJ3dq2Hrpl0clUe14XdMui0DR/gzJpbWpR58Rt0tY827aN2bewW7YM5h0m5K2e16+SwRjMxXAR0ZhnPceixDxT0rGZU0ZjxTKNtNfzzkOd/E2S6so7vmihw3W1r+8y98l4HKWRksfEYx9zwmTe9c50k+5LnyO2Y8li/IYZY0cj1/59krJLWherxlc5racc3F+o7Kyzzor+xbn++utT9/3a175mkyXKj3Iw0LwVbdOqlmsqMzvD8bMtymvLpvWTr/pUpZ1yl6PsepSdf0FiA7Ocdc/1Jl0Dz+mqMifhFN3qBx8pN+aWAFOTnyagXb20asWbNWhKRfKKq19RVc6ZT2LXNKXPMuvRkHpOGYFmV5sGNtnjoPSR0pQ5WVOB7ghI6Sd6sL50p1/3dtpjZgojqAYAAAAAwBJBNQAAQCy+/go0Dt9/hgcE1QAAwD++8gsAaCiCagAAAAAALBFUe+HxdiplXtE75fZLZkVxeKuOXEnZ3PIh4fY0tvWv8hXaB+9B4S45k7SctpGDuZn3irM+rlgbn1HKY8NbCDktX8qtqjLvfpS+QXlTKE//9932J+0WQDkrGFat7Wp9pfuUcZz2vOZ21uulk7Ggu3bE3LLK6l49KZX13RCF0rh9V9zfeXMN45balPQ189a+xVUBfejuXFDzOJmV98C8aNkXryt3q3oa3p4v6dZsA2PG5FgWxu1b9/k8iKC61po3IIHqa/q8a3r9ABip3BsayIsuBdwjqK60oIB0u6+X34zL5VeqGkEJBS+pAYyyzdy2IuOySmOpKhz3R7nztSLjDN4EpdyGzHGaBY/NgTZLvledqxwdbzc1Bd7mSEGC5haiMm0cp/SyBdIUBNUAAEwBfDoFAIAfBNUAAAAAAFgiqAYAAAAAwBJBNQAAAAAAlgiqAQAAAACwRFANAAAAAIAlgmoAAAAAACwRVAMAAAAAYImgulI3De19HPY91kjQYrswvjxJf1uVJHTWJlZJmKdgmU84+DB3WYwLkd53me1rX+CebHNXXGP/rLoYDoTYrW2roZ23znYm9fI94LLWhjBXP2iNG5s1IrEMKWue7VoUu29RYvJOKotRMVM29FVXrXSz6xpmpqMaIm85MsplsV2QmUZa3TOOC1pFc9evvceG2C10UzLNOf64nFQ43TQGNumbTK7aziSZsHf1NDkGp86RrHMMg90ytcKB/Xub1fbczOWZTrFKXV6dnMtNLQTVTeZjkcdkk1a2LapbsinLZP752hZZjemvhZrWT2Wf6fmWtxxl16Ps/ItiGfAZp+k6j1qd002RsTTFECz7QVDtVeB4O1f75RVUJo/AqiiBxetBw/ql+PrY9ZVVTlbb6Beve0uflXLVR6avxdUvKGSeBTnrnDjGcg0+X/tarEOZ9fA9ycpY2+zms7+8bPcJjJ7TH7JZ4yQoqCcNU3Q6ln2MEZdp5q1rnnUkYa884ytXzn5T8qOs40deaX2neY7dtZ3Z8bmufZ0PQTUAAAAAAJYIqgEAAAAAsERQDQAAUFVT5TfSAFBjBNUAAAAAAFgiqPZB95Ymdokn/F2E5JsShBW4VYfxxlk7x77eit/UoBi9G3u/51bG47Rd3d6EohIftgyMAatEstM1vgWRh8ZJG++pc2GwLEHYKqRcea9IWt6drHLMq+ixZt/krGBa+5ZzNdjUe1kZbFsC7eOJ3Xa+x7L1MdvVbRkTb/Xm8/ypYFl1KaiunVR7VvnUqad56yrTAhikbcrL+pVy+7Xsarhfv9QtxTIPBw7OL7pvXdbdroNtnHEsk7TzijJvPekPQXWlZVwlz3pAJlwZtLjLM3tVqWoEdc40LLHdK9KJgY+DVsUPJGGdJlheRV3J3aSBXY2PJvWTvaCwK6Z39Vtqnhb926g5Z6ri62WF6hpY5pQ9R4pRkWKgaEFzOp6gugoDpW4Dqojy+szDJm2TfcrqT19lbOL4dFWnqozTtG1tXzMtQ5Fpu9i/iHzKansX+xeVZt3ns+vjvGkZfI8jV+UoO2/X7WqSZt4+yrOOOFORY10ZfB4HfapiuwYVLJNDBNUAAAAAAFgiqAYAAAAAwBJBNQAAU0ADrwtTABoNaJqAxRAeEFQDAAAAAGCJoBoAABSgjhepqWOZAQBFI6gGAAAAAMASQTUAAAAAAJYIqgEAAAAAsDRiuyM8XFW0/2qEplcnHNg+NPu7Z/+kvy2KYlSPnG3g5Aq3oWVzx7S/9wvHxmWQ1KcWj01KkpKtRWrm26SOf8scbeuhW5bYhjKpl7v+05aWh059LJNOTE9np8Rt0tY827aN2bewK0gP5h0m5N3eUrNcJmMwF8NFRGOehZnpZPWXRf2Mxkraa4Fd3XPOQ7vt9VKKL5qLcRjznNo+c5+Mx9pp+JgTJuOydzabHArS54jdWMrcIibP7nJ0amPTqjpDrC7X9PdVTt21n4ukm+GT6iZzG+Wgv3mruizT19VjdobjZ1uU15ZN6ydf9alKO+UuR9n1KDt/B4LArp/y9l2uN+kaeE5XlTkJp+hWPwiqK3HV0MDfQceLoDJ52DVBYPG6SUZ16Jfi61PccA2stgmsKuKzUq76yPC1IOaBVeeZzzOzbAz2zzX4fO1rsQ5l1sP3JCtjbbObz/7yst0nMHpOf8hmpRsU1JOGKTodyz7GiMs089Y1zzqSc6+U410wZa6wX9bxI6/kvHXXl+7tAid1CaTJCKoBAAAAALBEUA0AAAAAgCWCagAAAAAALBFUe+Hxyq9lXnws7UrRYUlXFc2Vr85VYfueaYVuy+G9P3OMRYdXBh/Y3SQpp23kYG5qXRzH8ArZhfd92pWD45Jq+StX9xVfsy8ZW9Fr6uS5uFzf1YWNr+rsRiltZ3LV4cpdL0lzfdRdR/uetz68akpteZM7idheVln3biPWB44qsLjSeNzfeUsRxl1dO3UPvXS18/ffh7maS/vON4NXJ0/Me2DX/PUO+/ONa0ub84v+tSfhpYH8TI5lYdy+dZvP2Qiqa615AxJVwvjSbxejdwmk2qpevrozfzPPTrMvCFM92iGG1E6plwquYXvVoK5c/Rlwj6DaJ5vL69nsn0vgrrwu5cgj+6KiFmmb7NN7uUQ/eaTtr5OObX0cJZndLhbj0mR77bHuKB0brvrI9rWk112tExPjVS8563KkJ5KdXp58XLe9q7yrlKaLPFO2CUyuMu3s2OB63hQ7jgbaLPmy+rnyiU3HanfHxzzXaebtI811xH4p9dB+ZgXwnoW+HHM3NrkSK1Wlc3rb9a1mCKoBAAAqayp9WgsA9URQDQAAAACAJYJqAAAAAAAsEVQDAAAAAGCJoBoAAAAAAEsE1QAAAAAAWCKoBgBgCgi5OS0A9KrGvbzQAATVAAAAAABYIqgGAAAAAMDSiO2OcGDgq3h9j42/qpeWXpiQbsLzYZ5ypOSdt00Sd5vcLv83HHXzzNhPbZC7LMaF6OvHrDFl195ZRclf7bDw+RO7tW1FtMdx3PMm9fI9wMRsfMWVx6AftDa1WSMSE05a/9TctZwbefbNLSbvhLrHFjMt3aTHTr9Sbppudl2zv/Ke0V+5j3+W2+mUO3H7fPPQavvUtLqT1VnzktLRmVf97ZAxRozTjHncP5lctV1q2QbLYHtkSJ0jWecYNmm2t0hNt/OnVbPGJd33ZF1+CePrJzt1qX/d8El1k/lY5FED9HXlmMw/X9siqzH9tVDT+slXfarSTnnLUXY9ys6/qN+5WgZ8xmm6zqNW53QNGEsYQK/6QVDtle7FD2wvklDWxRWCyuRhd32JwOL1oGH9Unx9irsWSGC1jX7xurf0WSlXfWT6Wkz9rDrPfJ6ZZWOwf67B52tfi3Uosx6+J1kZa5vdfPaXl+0+gdFz+kM2a5wEBfWkYYpOx7KPMeIyzbx1zbOOJOxlM776dnI3hqp+obCyjh95BY5XumAK9HU+BNUAAACx+EwHaB7mNdwjqAYAAAAAwBJBNQAA8I/7wQIAGoqg2gfNq69aJp7wdxGSr0TZf2XF9GTcldsoKdN+MbhKqX39ffdhjqsQO76CsZtud3wRGldX9jVpqzxXv81V17TXsq4c3Op61V8f1Pb6UHkuLhc9TrkAkcOLE6XtXU7TmZSoYl/X1F5L7LbzPZZDb1f8t72Sd8LzZd/twOcYKaiunTU77RCQWq7EdHW1vA9sL8lqHqvij4mh818S611kPv/5RW8eaef5GccySRvPRrefqA2C6jq/q+9kQCZfhKKuKlWNoM6ZhiW2e0U6MfARFFf8QJK1rlRqguVV1EXnTPrf1fhoUj/ZCwq7uFtXv6XmadO/U7kvK75eVqiugWVe2XOkGBUpBooWNKfjCaqrMFDqNqCKKK/PPGzSNtmnrP70VcYmjk9XdarKOE3b1vY10zIUmbaL/YvIp6y2d7F/UWnWfT67Ps6blsH3OHJVjrK5bleTNPP2UZ51xJmKHOvK4PM46FMV2zWoYJkcIqgGAAAAAMASQTUAAAAAAJYIqgEAAAAAsERQDQAAUFlT6WJdAFBPBNUAAAAAAFgiqAYAAAAAwBJBNQAAAAAAlgiqAQAAAACwRFANAAAAAIClEdsd4eGKnmHv4zAMJTBKrv8KoaHZ3z37J/1tUZSBcqXumZKQXn5G2emUITHPrLKGBVy0NS6DlMYwfWxSkp5s81ZcZ//+stukkbG1bTVS52LadjHbas9rJ4M/W+I6oVmftKSt+l1jn8Rt0tY827aN2bewqzenl7tnjmq29sCOE/nE/Z2X4UKuMc+y16KM/rKZU0ZjJV6Q1a5pdc85D+22T0upawzGbhA6XFf72iFzn4zHWmn0P+eq7UzmXe98Nhm26XPEbixlbhGTZ3c5wvhaZeY7uE9idrXgq9j5VyjE4ZPqJnMbaaK/eavaIvR19Zid4fjZFuW1ZdP6yVd9qtJOhbwp6FPZ+ZfYT3n7LtebdA08p6vKnIRbdKsXBNV1Fhh9jt1IfpqAdvXSqhVv1qApFckrrn4F1TnIOfcSi9mUPsusR0PqOWUk91e+IZu9c+kjJauCTZmzlaXZvin9QA/VWFD88XkqIKj2SncA1m2gBjXPI/C8T1n96auMTRyfQcPGaeDhNdMyFJm2i/2LyKestveljDJVfT67Ps6blqEq4ygoLz2tANx1u5qkmbeP8qwjLvnKq4prXVHHQZ+q2K6BNBlBNQAAAAAAlgiqvfB4kZoyfyedclErs6I4vABKrnx1LmCjl591OWyvLGKTV+zjtF3dXgQr7fpW2js6/62jo4sQ6V6YTHv/4i9yk1aWwGn5etPqv3hW+q5hRX/+l+d38H0XQjK+AJVB1inlzH9xQQsmF0iq3G87Ncunu44OXKhUvEpteZOLntoeJ3QvjGp94KgCi4uixf2dtxRhXJKmFyez3ap/PPnpw1ypal+kd/BCagO7JzwZhq08JRzPU+OybTbnF/1l7a5n2vHZ5FgWxuVZt/mcjaAaQILmLXhuxB5Bc+5fJVUvX92Zv5lnp9lfs6se7RBDaqfUNzRq2F41qGvl3qMCGoCg2ifdC20kX13HZWmy88hdXody5JF9LR+bKzRY/r7L6GexOdu1s79OOrb1cZRkdrtYjEuT7bXHuqN0bLjqI9vXEl93tE64Gu/5EslOL08+ztveUd5VStNFnmkXUzK5uJuzY0OOi/25Xu8s6jTQZjrnKLnGhuO5HPtymceRnGXTXEdsWzF7jhQz96txbbocczc2uUC/jV2r0jm9i3OKGiCoBgAAAADAEkE1AAAAAACWCKoBAAAAALBEUA0AAAAAgCWCagAAgFhcJhloHuY13COoBgAABWjOVV4BAOhGUA0AAAAAgCWCagAAAAAALBFUAwAAAABgiaAaAAAAAABLBNUAAAAAAFgasd0RPq7oH+a85H/a/l1/hxrPJ/1tVRKD/Qfy0tu3p0YF3SlhMJ9wcAPfZYmrbFrfZbavfYF7srVOxSCFrLq4GAi2SWiP47jnTerlrv/0pa0NGePRSfY566y7/tnmEzvvC7x9S1+5w4T2j61icqLJj532b850Y/ZJqn9PnqHr+hU8DzPXBYt6OOzX7NMJg7mVuV9/O2QcF7SOiRprstsDoEbZ+svQ/6p+IVLnSNY5hsFufVukPjVRJoupGFtk4/JVg7dy6rYltx4zwifVTZYzMK6DoMQ7tFR3salmucrsK7csKmIy/3xtq62+HVXZMeaqn6pSQV/Hk6ocp/KWw0E9fHd16SMpq4I6DWAZ8Bmn6TqPCpzTuRhfpY8hFCqgxzMRVHsVNHRpCmqeR+B5n7L601cZmzg+g4aN08DDa6ZlKDJtF/sXkU9Zbe8rFihjLaj6fHZ9nDctQ/HjqJh8XB+jXLerSZp5+yjPOuKQr3d6qvJmYSnHQZ+q2K6BNBlBtQ+ZXy/KlbjDtPLmHdqVytPXyow3zto59vWW43L4/jZBjq/K5v2abVpyLtordyEcfrXTpK1i8/TQ92l1TW0Hz1/hTmmrCnxA6D/j2LbX7JucFUzbu5ymMylRRT7FNl5L7LZzuexplKovb90xqPHV6ORMNNIvoCHKHCMF1XUiWd2lRHOdMfiCuc1ORrJ/5qGdUnei/ZnEvhSfc/++rfwl6/+Vgfa5hOG5btLU1PppWpjwesXXc0cIquusKl+VQ0MxvvwExRVvV9YV3w2c83VUk26/1bF/q/RmfpMVV1eWecA9gupKK/hr1pX/Co6eSlXD6BtsdfhKckquTr+tV5FxWaWxVBlNapQm1WUq1U1fkLl+eGgn12tWUHabBX4LVqmDdn0F3uZIMRpdioq0cSXLFlS4bQwRVFdhoNRtQBVRXp952KRtsk9Z/emrjE0cn67qVJVxmrat7WumZSgybRf7F5FPWW3vYv+i0qz7fHZ9nDctg+9x5KocZefvul1N0sxbtjzriDO+8qnB+YXP42CT52RdyuQQQTUAAAAAAJYIqgEAAAAAsERQDQAAAACAJYJqAAAAAAAsEVQDAAAAAFBkUH3JJZfIsmXLZObMmXLCCSfIrbfemrjtV77yFXn5y18uu+yyS/TvpJNOSt0eAAAAAIDGBtVXXHGFnHPOOXLBBRfIHXfcIUcddZScfPLJsnr16tjtr7/+ennb294mP/nJT+Smm26SpUuXyutf/3p58sknXZQfAAAAAID6BNUXXXSRnHnmmXLGGWfIYYcdJpdeeqnMnj1bLrvsstjt//3f/13+7M/+TI4++mg55JBD5Ktf/aq0Wi257rrrEvPYvn27bNiwoecfAACos7DsAgBAH9YllBBU79ixQ26//fboK9wTCQwNRY/Vp9A6tmzZIjt37pRdd901cZsLL7xQFixYMPFPfboNAAAAAECtg+q1a9fK2NiYLF68uOd59XjlypVaaXz4wx+Wvfbaqycw73feeefJ+vXrJ/6tWLHCpJgAgKYIgrJLAABolO7jCscYuDEiBfrMZz4jl19+efQ7a3WRsyQzZsyI/gEAAAAA0JigetGiRTI8PCyrVq3qeV49XrJkSeq+X/jCF6Kg+kc/+pEceeSRdqVt+u84wjDf7zxS99f4u2f/pL8tijJQrtQ9UxJKyy+0yy6HweaOaf9SfqqT1KcWj01yTcnWIrXi549tMWL30yxLbEOZ1Mtd/+mrUv4WeSauc/159OejnUHMxkUuBP15tVK20iyXyRjMxXAR0Zhn3ceG5Dwd1097TIaabaGTR1bbmdbDXb/2tmZo315a62pfO2Tuk/FYOw0fc8JkXPa1rEER0ueI3VjK3CImz57zuJh08syq7HWgqvyUO3YeFpZ7cxl9/Xv69Oly7LHH9lxkrHPRsRNPPDFxv8997nPyqU99Sq655ho57rjj8pUY+l+LdBvlVFKZ3wytbItWtK8b8y1em4qY9ImvbfPUryadl6uYPueNq7Sr0g++2qoqa1fuY2f+evju6dJHUtZY1hnrcX2TdwxZvZlTEIfndC6WktLHUC4VWWtqJKh5j1fy69/qdlqnn356FBwff/zxcvHFF8vmzZujq4Erp512muy9997RxcaUz372s3L++efL17/+9eje1p3fXs+dOzf612y6A7BuAzWoeR6B533K6k9fZWzi+AwaNk4DD6+ZlqHItF3sX0Q+ZbW9L2WUqerz2fVx3rQMVRlHQXnpaUWIrtvVJM28fZRnHXHJV15VXOuKOg76VMV2DaTJjIPqU089VdasWRMFyipAVrfKUp9Ady5etnz58uiK4B1f/vKXo6uG/8Ef/EFPOuo+15/4xCekmTx+9a/MT59Tvips9tUah18rC332i/5XCXW/SjOQrvf+zDEWHX41fGB3o+Zy2UYO5qbWpyNhsZ+uxGeU8tisfEEY/xViO73ph1HaQ06+VFjeB515vl3Q9/VS46/15sg6IZvCTqhMClSVT7FNy6e7jvY977u2qS1v8lMy2+OE7s/NrA8cVWDxVfO4v3OXIhw4T0lP3u1Xg8OW/z7MuTJq/N37uLctNY7pDo6hYX++rs4vUtaeniGp89O0UPP8tnLreYkXKjvrrLOif3HURci6Pf7443Ylg4ZmDkpUBeNLv13KeVPJj6qXr+7M38xz94kAfeuPdoghtVPqCXAN26sGdTX7IABwPwJlqv+mGp5+tJK4XcFfs85dXody5JG5q03aJvt0b2v0Dd6c7drZXycd2/o4SjK7XSzGpcn22mPdUTo2XPWR7WuJrztaJ1yN93yJZKeXJx/nbe8o7yql6SLPlG2C7AOCWV5aeee4LkHsNQ1M87fIt2eXwPwcJdfYcDyXY18u8ziSs2ya64htK2bPEY9zv7v8lfhmcI65G5tcUN7vkat0Tu/inKIGCKoBANXV0K+JAQCA5iCoBgAAAADAEkE1AAAAAACWCKoBAAAAALBEUA0AAAAAgCWCagAAAAAALBFUAwAAAABgiaAaAAAAAABLBNUAAAAAAFgiqAYAAAAAwBJBNQAAQJwgoF0AAJkIqgEAAAAAsDRiuyMcCMO+h32PpWWaYMrjMGGz7uc1/tYtSc8+Bvtb5NWfg2US5nkO5BMObuC7LHGVTeu7ge2zHlsWJXe9NRLIqouLgWCbRGY7pz1vUi93/acvbW3IGI+Os0/MUzuBlDXPNp9o3zL6pSt/jazVGq3fNSn1cdq/pulmz/n+42psGqHr+hmMlQSBTrkT03IwDx32a08fhC7bK2v9DLPHSOY8j0kj9ljvYU6k1newDLaH4NQ5knWOYZNme4vUdDt/dqej26zZeettUwW+imm/9iMNn1TXWsbX0nws8hVT7jfzqtqm1SxXc75FaVERk/nna9s89atJ5+Urpsd546qfqtIP5Z/p+ZW3HC7q4bmrSx9JWWNZZ6xbBnzGabrOw5bDc7rAwQgofQyhUC7GTNMRVPswsdYFmoufyUB1+nGgobCvvF3vIBolo7O1XpsYHVcmNtbsl57X0/fpfdrgzQ6nn/jE5Zv0TrfJCctgfxf6SbbxjoG7MRCfyGBeJp9MxuYZ5lwXArO6prZDXP0mvzWj32JZ5R/M26w7goLOdS1P7pP2jW17zb7JWcHUD6Tyzi0raXmarD+uymWQjvZaYrud43mWkFvsa2nfcBpYKyyPE0mfXmuvTab9ZjpGHKSZNUZM12HLck5+6tuduukxavCNDt0hGmSd57h4s9DZ2q+3Fmd++UJ73hsWLfNwEDduTM51U760qpVOmFAWD+1RQQTVddbQQYmqYHzlC4pr2q6sK74bOOfruvhUoVhhM+Z/5cpcx/aqfl1Z5lGusJEdQFDtk+67b4nbFXFSFDgsr0M58sjc1SZtk326tzX6sDFnu07sH/irj6Mks4toMS5Nttce647SseGqj2xfS3zd0TrhbLznSiThb0f5OG97R3lXKU0XeaZsE2QfEMzy0slb9znd9PJsb1GnwTbTOEfJNU/sd9XOv9TjSM6yaa4jts2YPUfypK6fbjV+3ZJj7sYmN75vGXWrRoO6WxtrgKAaAAAAAABLBNUAAAAAAFgiqAYAYArgd5QAAPhBUA0AAAAAgCWCagAAAAAALBFUAwAATKFbvwBTWc+9swFHCKoBAAAAALBEUA0AAPxr0P1IAQDoRlANAAAAAIAlgmoAAAAAACwRVAMAAAAAYImgGgAAAAAASwTVAIDq4uJWAACg4kbKLsDUFqY/Dg3vozewfWj2d8/+SX9rFiW1XNp7au/bvZlps2WWQSPPhCcKuMVpXAYpjTHwuH9X+wL39EHuiocOxopZGWK3tq2Gblli29ukXjnXDCum+eeY/zrb6NQ5cYFI+9u2bWP2LeyeqIN5hwnlVk9rl8pkDOZiuJBrzLOk+vfuk5KOTfWMxorNaxl1zz0PbbbXSynXOqu1rvb1XeY+GudhWmn4mBMm8673qJs97nW3dTGWYjNNL0cYt3RrnptpZFfIodIBX8W0nnJIxSfVTeY20kRK81ZKZQs2hZn0ia9tUV5bNq2ffNWnKu2Uuxxl16Ps/Av6hkpcP+XtO6s3cxp8TleVOQmnTN50gT6Cai86g1X3npwG9+4scyJM5B0MlMWsWDobBwX0S1I54l4frLN92RMOjLn7NjB4p9vkhMWk7pqMPrw0baPAagzYjbiktgkdnAgGjvo+bjybzYXA6pO7IKOeFuMqbn+touRZT3T2zVpLujeNafsw43VHZU37BoleNzhel7U+IdMZJ67KZZKOZvl019GBftcVZDwXODjhTvqENOd8Tk0zLr0wx/x20a6m22TN5ZS6aq91+vUy+Oy6K/l8YylKLbMP88/fXN+Oy/z2UvpaHP/FEPfnT6qOvalknUsk5x109Wvadx5S2zXr25lhWMz5ZIUQVNdaMwclqoLxpd8uRu8SSLVVvXx1FxbU/j7emISDL1TWrxFLPQGuYXvVoK5TqVVRRaE0EUG1T3k/qC7kAj2BeX4FF8t418BD2rYfGhrtl7Nhg3K3NSp+4GFcaqft8EskPueCq/bM8yFH7IdgQTXazknba4wzXx9y16J9CkjTRZ4p23R/IpO5s7NjQ+B4zUmroE16Gbv0t1liG+ZsOzc766VRxgfVutvled1BF2TPEY/no13pVuOalDnmbkpypdStEu1ZgzI5RFANAAAAAIAlgmoAAAAAACwRVAMAAFRWM39/CABNQlANAAAAAIAlgmoAAAAAACwRVAMAMAU09NagAACUjqAaAAAAAABLBNUAAAAAAFgiqAYAAAAAwBJBNQAAAAAAlgiqAQAAAACwRFANAAAAAIAlgmoAAAAAACwRVFfopqFh/01EjW8qGqY8DhPSTXg+6W/dkvTsYrD/wKZ6+4Zd2+W/F6t5nrH7qYL4vi9sbGW7+y75pYQnnBSlkD4YyCTf/Ind2rYe2u2c0X9xj5Pmb2o+DqV2dJirH3qTTtjPZnAltlnKmpc1vtLyst03t5i8U9orsY3j0k167PTm1ylrV9b2Cftk1zGrv2zqZzBWrNMwWRcs+iks8tig2146+/W3Q8Z8yJyrMWnEHus9zAmTcRn2npGYlCB1jsS9plG/7E3S0+3UxqZOsUXu27vnURBIVTldXnvS1TzPLerQ1RAE1T7kDo5TE49PN34Vif/bRd59j42SL2uWmvZLRsBqfQzVeVMjj9Q3NPy/wWGXdtq2Dgeyi7mZNdfinsisgmkwobHtQNen5GGylvh8E6horsZW5lqSkk20b1rf2BcrrRgDr7kad0bSguKy3pjo769Qcy1Jei078DfbTkPOY0nqG/yZcybnmtr5O9AYEz6WE539baO7tDEz8NjdOV0n2+5+TX8/x/XJo4fznP4cjJMNzcva035m80D/Dcxk7fdusvpQb1KkLXFppwqp6YZ9x7LUbaWRCKq90n33q7rvkpVX3qDEtIOc5alDf+qUMaxRfboFVtvY1TL2zC+D7rauxpzta6ZlKDJtw/1zfRLhet+seZVn3nXv42PeBrWZz/7yStondLydaf7dT7keBzpvLLgeGyZrq48x4jLNIGdd86zheQX+P9Gt8CfFbWUdP/IKKliqoNFRNUG1T7oLRdJ2hSw0FgtmEeXKkUfmrjZpm+zTva1RXFTRIENzW6PiBx4P5Drba491R+nYcNVHtq8lve5qndBNJ+kdfhdtrxN85MnHddu7yrtKabrIM2WbIPuAYJaXTt6O500oxY6jwTbTmBu+5omrNEo9juQsm+Y6YtuK2XMkT+oG6VYits4xd2OTCwzaeAq8WRE4bt+KIagGAAAAAMASQTUAAAAAAJYIqgEAAAAAsERQDQAAAACAJYJqAAAAAAAIqgEAAAAAKBafVAMAAAAAYImgGgAAoKICSbhXOwCgMgiqAQCYAkJiMwAAvCCoBgAAAADAEkE1AAAAAACWCKoBAAAAALBEUA0AAAAAgCWCagAAAAAALBFUlypMvzSr6aVaB7YPzf7u2T/pb82iJKabvWfvQ719uzfLf4VbzTzTCtHZwvvVduMySGkM08cmJenO1joVkxTclT0xR9skU+di2nam9XLbBloS14nxh4MTQz/puGyCIH+dkxaI1DXPtm3jGqGoy27HlbsVv6XJ8pTapy7rZriQa8yzMDOdrP6yqJ/RWLF5LaPuOutKJnf92tuaoX17aa2rpu2Q8TiaKDr7+JgTJuOyt2VNDgXpc8RuLMX2c2+mg8+1Bl+2ObeLLXFZS3JOme1ona7mdjVpp6ogqPbC4+xNOgmMG/luI830ACxP4FzZfkk/QesNIi3r77qPBtLJMRYdBtyDaZts67KNXMxNnZNCw7liW0ejkyHdcRF6vE9ujhPqpP1zcTW2DE4gY998y3jdkbR1yigXL2tVxtpV5NmdVl6aZdddR/uezxei5WurwSBLr8yJz2XnOPh358000zGRd5xYvZmTuKHZY0/Hic68z3xzI65cDuZd73gqN0iM3zmpfMn9ldkVod6bmya03rqJHTfpm/XPd+1xYjJGwxLX8wIRVHsVON6uKoKa5xFYvG5SnjL6M/Cwfdjg8Tm4jV0tO3v5CAxdjTnb10zLUGTahvsPfNrtKR+tfbPmVZ55172Pj3lb1bXNVbnytHnoeDvT/JOec9A2iSfAocexYbC2as1vH8dIV+d4WXXNs4bn1NO2vvKq+jlGWcePvAI/h8RcgvH/ElTDeOwEObcrOHjNXV6HcuSRuatN2ib7dG9rFBflbFfbMjra1qj4gYdxabK99lh3lI4NV31k+1rS667WiSLHe3Ii2enlycd127vKu0ppusgzZZsg+4BglpdW3q7nTbHjaKDNdM5RSnvjSjONUo8jOcumuY7YtmL2HPE497vLX4nYOsfcjU2us29F186iBYbrW83wSTUAAAAAAJYIqgEAAAAAsERQDQAAAACAJYJqAAAAAAAsEVQDAAAAAGCJoBoAACBOQ++nCgBwi6AaAAAAAABLBNUAAGBq3jcVAAAHCKoBAAAAALBEUA0AAAAAgCWCagAAgMriYmkAUHUE1QAATAXEZgAAeEFQDQAAAACAJYJqAAAAAAAsEVT7EIbpjxOf730cZn1Xr2f/uG0TXg81no/9O7m8A7n3PKHZHrGvpbdBbK3DnP3SSTXu9bDVtVVX/aM/Y9LPLGBSv2iK3Sclzcz2De37omfXwW3ThkRMagnl6H4+NYeE/kveJswzwEzaObY+aXM5LW2D/gstX+tfi1K3VY/t0+4eN4lDJKVtE9fMxDZLqZfJ+O9JMmPfgbbPej1rne9LrG//nvbtez5rzibnm3Pdsko36xiXML4yy5fV10ljaiAjvf17Gl0sttPYPm6H/nGRehjua5PEOazRJ337TP6peRzMXG/S8s+5Vk881liT48qZlVfWXDcZl2Hv6te/JMUlP/m62ZrdeS5tbvXmFZde+lyd3EpjfU/LL+Gp5LT0xmL2ChEmnjua6F+js7pGd06mLS89/ZqaX1z7hAmvZ6/VTUBQ7ZXuPTlt792ZMSizZ5+lIu41GlQs7Zh9Epu05HuxagVdOmU02bZKdMqbp05hTDoaJ11Jrw0kb9DuWtuavhZXPxuB8etmq5SDcanVLw7aIDafwPO88zFv4+rjkFE7+airTf1i1oDY3ZPWiqTtTPPvErpum6Q3FhytFXHtPXFPc8MT88TzHs3y6aypJmu01nZZYyNmXBqXoZf+CG9m8GPG53HQpyB3r7rv/cBbylUwUnYBGm3ioGC7nflJqbnAYXkd0swjsNk1ewPr8gxsa9JUedo12teyjI62zdqs5+XAw7g02T5mm9i9sp70ORdc9ZHxa4P16+07R+uEbh8Y7R+YlaXnecN9ffZL4usGa5ePsVnE2m+TZ8o2gcl6b1O/uH2sDkxp6RmOoyB73/Qk+1/UmBvGbZe1r9HB03I+5dze41qo/XrXa7azM32OBF1tbLKfdu6Tx5ky409X538J+7ppK7u8Y19ym1y+RIJKdLwTfFINAAAAAIAlgmoAAAAAACwRVAMAAAAAYImgGgAAAAAASwTVAAAAAABYIqgGAAAAAMASQTUAAAAAAJYIqgEAAAAAsERQDQAAAACAJYJqAAAAAAAsEVQDAAAAAGCJoBoAAAAAAEsE1QAAAAAAFBlUX3LJJbJs2TKZOXOmnHDCCXLrrbembv+Nb3xDDjnkkGj7I444Qq6++mrb8gIAAAAAUN+g+oorrpBzzjlHLrjgArnjjjvkqKOOkpNPPllWr14du/2NN94ob3vb2+Sd73yn3HnnnfLWt741+nfPPfe4KD8AAAAAAKUJwjAMTXZQn0y/6EUvkn/8x3+MHrdaLVm6dKn8+Z//uZx77rkD25966qmyefNm+d73vjfx3Itf/GI5+uij5dJLL43NY/v27dG/jg0bNkR5rF+/XubPny9VtHXzRnn84tdHfy8aWyO7t9bIuqGFsrC1TrYEs+SJkf2i1zZtH53Y56DhlbIg3DCx3bpgoTw0tsfE6y8celiGpRX9ff+0w0R11K6tZ2Xx2MrouZYEMhQ92359WrhDnj/68MT+64P5Ufppf3dT6T0w7dDo70N3/mbi+eXDz5PNQ3NkTmuz7Dv2xER5lfumHRb9d8uOMWl1DaVZ04ZleCiI/u7sN9FWwUyZFW6LbcftMkNmyPaJPFYNLZZnh3cbaLtuc2eMaL2+sPWc7Dn29ETaO2VEpkn8PqpeQ9KSg3feHz3u7PNwsEyeG5sePTcyNCSjrXb/zJ42LPNlsywdW97TPr9sHTRQjj3GVslurWcm+uKpkX0G2rzTrllGwlE5cPRBGZMh2RzMlfnhhtS+7jzulFG1969bz5t4fbfpY7L/6COx26o87mgdMFCfjp1joWwfHYv+njN9RIJ2909I6p9uLxp6cKANutule+yo8nTmhzIqwzIiYxPlfWp4b1k/tKAn/T3HnmrPtfFtNgTz5YGxJdFrgQQyZ8ZwYpm7y9bRSSepneMe97+m6jm/tV72Hnuy5/W4eaYsaK2XvRK23RrMksfH15q5rY2ydGxFbDr9a5Tab1a4NbF+98sy2diaPtAOD48cKAeMPjTxWI0ntQrMTJjDakgcMt6fndcfDfaVZ8ZmTrwe9o0vVa5lo49Ffz80crAsbD07sL7eO7Y0cVwqe4/+NpobilrjDt5538A23eNpYzBP5oSbovW1k89vh5fKxqF5sfN0r9EnZUG4Pvp7czBbpoc7orUlbnz099k2mRHVW617ca+rcj047ZDote68k3TWtYl5MLSnPDk6b3DNmj4SzdexVrvFZ04blpHxNbvffjsf6enT7vqsGdpD1g4vSi1T0tq2ZOxp2aX13MTjtHbaLtPl0WmT64+inldzuntNf3jaQQNzN+4YYTKfddo5aZ/NwRyZE25OaLvdZe3w7j1t1NnusWBfWTs+L+LWxd3G1soerdVdczj+uNp5Xa0Lap53ZLXP/BlDE8e/7rTVfJudslY8MbJMtgSze17rPj/onBskjWU1f+aEW2R9sCCaUzrHM1Wm4XBMZsiOxO075eucz0zUfXyd7E+ze20cDkdluuxM3GZTMFdmhVsm1o/OWpHVR2ljSG2r6qTy1VlH1Pnb7a0DJ9JWc3l0fG6r85OhoUBUF2zeMTqwFgwHgcyaPnns6z73UeuTmvuqPEEYRn8/MnKg7AimxY6hjq07xmRsvM8XDW+V/cIVPW0zLdwZHTvUSrkzmBb1+f3B/rJxrJ3OnPFziO2jLdk51ho4r+zXff4xFAQyu6s+yuhYKNvGX1d2H94sy8L2cTSJOj+Y332OPrRQnh7eK3ptx2hLdoyXa/a0ERnq+4iyfz4/InvLs605iceoJKqLtuycbOfe887BfOPOW7vnZNx52IyRIZk2PJlQ0jgZkkCOHXpgYrtHR54/cb6obAzmyuyueaAe/3Zk3+jvvUZ/2zNeu8fyt0++SX7vRL1z3rKoOHTBggWZcahRUL1jxw6ZPXu2fPOb34w+be44/fTTZd26dfKd73xnYJ999903+mT7/e9//8Rz6lPuK6+8Un71q1/F5vOJT3xCPvnJTw48X+WgevPGdTLni5PBiXLt2LHyuuHbM/fV3a4qbho7TA4fekzmBYMH1jSrwoWyOGif3Ge5duyF8rrhO8SH68aOkVcP3SVDgd7QfyacJ0+Ei6M3OXT8YuwFcszQwzI7mHxjyLcnw91kfThXDhuafPPCVfteP3aUvHToHpkWTB6Qqmo0HJKft46QVw/Hry0u59yacIE8GS6So4cmDyou3dw6VF4QPK41z9Lqc8PYC+TYoYdkVrDDaD81X1eFu8iRQ+2A1lTaGNsQzpb7wn3lhKH2wd8uff/r5rZwmtzaOkReMXy31Vj8WetIec3wXVbl/9nYEVH7zAgmT+Z1tcJAftI6Wl47fKe45HNdTvKjsWPkpIx6qDX9VUN3ybDmmh5nSzhD7mwdIC8dvtdLO+uM103hTLm7tb+cOJz95olOumvD+bIi3CM6HvnkYj7nGWsPt/aSYRmT/YZWJZRvltwXPs+ofDr95eIcbywM5PqMMZQ2B34+drgcN/Rg7Pru0iOtPaP/Pn/oaafpPtHaQ7bLNDloKD3ALZPtsUatKeqDiJcZrCmuqPPWx8Ml0bG/ym25Lpwj//elP5I/f30zgmr9t0vUAr12rYyNjcnixYt7nleP778/frFauXJl7Pbq+STnnXdeFIj3f1JdZTNmzpY7T/z7icdjw7OktccJctNz98nMbasG3lGbNtx+t23H9IXS2u2Fcuva22Tazva7NrOmj8jW8XeJpm1fJzunzxcJJt9FGtmxUVrD06U1PEOmb1srO6cvkHBo2sTrGxYeJnM3PCxDrR0iYUuGWqPR9v1/j4xultFp8yRojcq0Hetkx8zeTxu2zVoiM7aulqDr08BQfSK6+/Fy547nZN76yXeslF1mT5fd582UB1dt7Pq8aXK/Z3d/kTyyabnM2tpelIdGt0lrpP1O/Iyta2S7yj8IZOvsvSWcf4DctvpmGW5NBqbq7Z+1m7bLorkzondgn9uyQ/aYNyOxTzZtH5O5fZ88toJpMrbHi+XGTctlzuYnokRnbXlKts7eS4KwJdO3PyPbZ01+W6DTnqMjc+SOtbdJIKFs29mK3i1Vfdj9d1TGYFi2LnqR3Lb9WZm34cGozM9s2iG7zp0u3W+wRuMjGJFpo6qtJs3cslK2z9xdwqHecmdZt8uREg6NyPZn2ichIzs2yNjIrGhcqLJvXHCQLHzmrqj8Y0MzJFRtsOFhmbWlfSDbsHVU5s9qLwcjOzdJ0NopO2fsEpVx5x4nyM1bnpa5Gx+NXn9u805ZOHvawCfRnXRmThuS6SPxvyx5dvNOmT9zREaGg6h/5oy/m9zp1+HWDpmxbY1snbN3z37Ttz8rO6bv0h4fs/aUsZE5Mnfjw+3+2/xb2Tpnn+i1zXP3k9E5e8vtq2+WoTD+k/Gd0+ZLa9Fxcsszd8r0Hc9F83HTtlHZZc7kHOqm+m+XOdOjd4BnbXl6omzrdzk86sfOuFDtun63o2Th2juivNWY37jgYJm3/v7o9WgwKIF6FET9PHPb5M9mVJsrqs/Uvpt2f5HcsWO9zF8/uLZO27FeWkPToz7urDU3rntgYm51qPG4bffj5Zfb1sq8Db0H14k1at39MnPrSglaY9F/J+t3RJTHHc/cEZV//dbR6N1/NdbVurNjxq4T69K6XY+SGdvWTownNZ/C+QcOzOGODQsOldHp8+SONartWtFYmD6sxk0QjSGVjxojHTO3PB3VpTM3+9dX1bTq07D+bxp0U2uMWkvVuqnWv5lbV8u22UtkeHRL1J7bZu8ZtXtraNpEmTfNP0C2z9xD7lhziwTh5JtKarvudXFiXA1Nlxnb10aPN89dJmNz9pkYi2pOqvYanTa3aw4+FK0/ihrfIzs3tseOquvuJ8itW1e3x3mXdtvvNtEuqtyKqsfYtPYnIZvnPE/G5u47nvfO6NNo9aGV6rv1W3dG38rozHf1CYX6FEf9L01/n6rjhvrXWcPTDO/cHM2dTQt6P2nutJtaY3dd+8uojdX6o+qvxrZqz9YeL5ZfbHxMZm+e/DSxm1qj1DY3bV4hczZNvqmo6rtuy07ZtWteq3Hy7OYdsuuc6VH/qX5X65yycf6B0THwjjW3RuVQxyc1V9V4mbv+oWiNGRueOdnmar3pa+d2HwfRcXXWphXReFX7q7ne2uVw+eXqW2RkbEs014dHt0VzoJtaL9Q4iMogLdm4bTT6FGn6cCBzNj4mW+Y+r+fYMDY0M6r7jevH536o1qin2uuhmsMLXyBjI7Mn1qh+aq7Nmzn5rSLVPuoTxtnj80iVc9rOje25Pr6eRPMgbEXr9PZZ7XO7DQsOkdHp8yfmc5yZI+1vRnSPs50j8yaOgapd1VxT9ds2cw9p7fKCifZS7TrU2ik7Zu4WHcOf2/246Hg2PNZ+w3HdrkdHs3Lds7+aWB9UWUdGN02UT50n3bHml7HlU9tumvf86Jjd2b9/Td0yZ9/ofG3hc7+OHqvjamv34+XmZ++emPPbZi6O/u5eKwb7KJTp25+THTPbbbp57vNkbM7kGFJrixr76vysne9Sac3br/16a0c0LtUaodaR9jrRu75v2T4mM6cP95xvdFMfOm4fa8msaUNRf6u1oXut7VBzW61HnfnRbmORDc/2vkm4fWcrOt7HnQ/MnDYiO0bb31IYHlV9FUbjsZs6doTBkGx+pv2mwebtY9GY7y6TmsvqUVwe3dS52MyR4YlPWfupT7AP2GOePP7M5qhcMzc/FR1v1bnnvHX3R+tTdC4dtiaObWo+tnY7puccvUOd/6lvBMS1X9yaos4l5swYic6RzAQyf+Y02bBth3Z79J+3dqi1fuP4+U770/3WwHmyosaFer1T1u5vPkTr5rT5EwV4brdjZPam5TJje/sbmJvmHSDTdjw38bgjLt5R5wJv3L/a8Z0Jo0+qn3rqKdl7772j30mfeOKJE89/6EMfkp/+9Kdyyy23DOwzffp0+bd/+7fod9UdX/rSl6JPoletin9X0fYdAgAAAAAAXNCNQ43eLlm0aJEMDw8PBMPq8ZIl7d8l9lPPm2wPAAAAAEBdGAXV6lPnY489Vq677rqJ59SFytTj7k+uu6nnu7dXrr322sTtAQAAAACoC6PfVCvqt87qwmTHHXecHH/88XLxxRdHV/c+44wzotdPO+206CviF154YfT47LPPlle+8pXyxS9+Ud785jfL5ZdfLrfddpv88z//s/vaAAAAAABQ5aBa3SJrzZo1cv7550cXG1O3xrrmmmsmLka2fPlyGeq6xvtLXvIS+frXvy4f+9jH5CMf+YgceOCB0ZW/Dz/8cLc1AQAAAACg6vepLgMXKgMAAAAA1P5CZQAAAAAAYBJBNQAAAAAAlgiqAQAAAACwRFANAAAAAIAlgmoAAAAAACwRVAMAAAAAYImgGgAAAAAASwTVAAAAAABYIqgGAAAAAMASQTUAAAAAAJYIqgEAAAAAsERQDQAAAACAJYJqAAAAAAAsEVQDAAAAAGCJoBoAAAAAAEsE1QAAAAAAWCKoBgAAAADAEkE1AAAAAACWCKoBAAAAALA0IjUQhmH03w0bNpRdFAAAAADAFLBhPP7sxKO1Dqo3btwY/Xfp0qVlFwUAAAAAMIVs3LhRFixYkPh6EGaF3RXQarXkqaeeknnz5kkQBGUXJ/WdDBX4r1ixQubPn192cYDKY84AzBuAYw1QLZyfTVKhsgqo99prLxkaGqr3J9WqAvvss4/UhQqoCaoB5gzAsQaoDs7PAOaMjbRPqDu4UBkAAAAAAJYIqgEAAAAAsERQ7dCMGTPkggsuiP4LgDkD+MCxBmDOAD5xnDFXiwuVAQAAAABQRXxSDQAAAACAJYJqAAAAAAAsEVQDAAAAAGCJoBoAAAAAAEsE1QAAAAAAWCKoduSSSy6RZcuWycyZM+WEE06QW2+91VXSQKX87Gc/k1NOOUX22msvCYJArrzyyp7X1Q0Fzj//fNlzzz1l1qxZctJJJ8lDDz3Us82zzz4rb3/722X+/PmycOFCeec73ymbNm3q2ebXv/61vPzlL4/m1NKlS+Vzn/vcQFm+8Y1vyCGHHBJtc8QRR8jVV1/tqdaAvQsvvFBe9KIXybx582SPPfaQt771rfLAAw/0bLNt2zZ53/veJ7vttpvMnTtXfv/3f19WrVrVs83y5cvlzW9+s8yePTtK54Mf/KCMjo72bHP99dfLC1/4wuh2KAcccIB87WtfGygPxytU3Ze//GU58sgjo2OE+nfiiSfK97///YnXmS9Aus985jPROdr73/9+5k1R1C21kM/ll18eTp8+PbzsssvCe++9NzzzzDPDhQsXhqtWraJp0ThXX311+NGPfjT81re+pW7HF37729/uef0zn/lMuGDBgvDKK68Mf/WrX4Vvectbwv322y/cunXrxDZveMMbwqOOOiq8+eabw5///OfhAQccEL7tbW+beH39+vXh4sWLw7e//e3hPffcE/7Hf/xHOGvWrPCf/umfJrb5xS9+EQ4PD4ef+9znwt/85jfhxz72sXDatGnh3XffXVBLAHpOPvnk8F//9V+jsXzXXXeFb3rTm8J999033LRp08Q273nPe8KlS5eG1113XXjbbbeFL37xi8OXvOQlE6+Pjo6Ghx9+eHjSSSeFd955ZzQPFy1aFJ533nkT2zz66KPh7Nmzw3POOSeaE//wD/8QzZFrrrlmYhuOV6iD7373u+FVV10VPvjgg+EDDzwQfuQjH4nWdzWHFOYLkOzWW28Nly1bFh555JHh2WefPfE888YvgmoHjj/++PB973vfxOOxsbFwr732Ci+88EIXyQOV1R9Ut1qtcMmSJeHnP//5iefWrVsXzpgxIwqMFXWyr/b75S9/ObHN97///TAIgvDJJ5+MHn/pS18Kd9lll3D79u0T23z4wx8ODz744InHf/RHfxS++c1v7inPCSecEP7pn/6pp9oCbqxevTqaAz/96U8n5ogKGL7xjW9MbHPfffdF29x0003RYxVEDw0NhStXrpzY5stf/nI4f/78iXnyoQ99KHzBC17Qk9epp54aBfUdHK9QV+qY8NWvfpX5AqTYuHFjeOCBB4bXXntt+MpXvnIiqOY44x9f/85px44dcvvtt0dfce0YGhqKHt900015kwdq5bHHHpOVK1f2zIcFCxZEP4nozAf1X/WV7+OOO25iG7W9mje33HLLxDaveMUrZPr06RPbnHzyydFXZp977rmJbbrz6WzDvEPVrV+/PvrvrrvuGv1XHUN27tzZM57Vzxr23XffnnmjfuKwePHinvG+YcMGuffee7XmBMcr1NHY2Jhcfvnlsnnz5uhr4MwXIJn6GZH6mVD/sYB5499IAXk02tq1a6MFv/tER1GP77///tLKBZRBBdRK3HzovKb+q34P2m1kZCQKMLq32W+//QbS6Ly2yy67RP9NyweoolarFf3G7aUvfakcfvjh0XNqzKo3kNSbTWnzJm68d15L20YF3lu3bo3ekOJ4hbq4++67oyBa/X5aXWfg29/+thx22GFy1113MV+AGOrNpzvuuEN++ctfDrzGccY/gmoAAAr8FOGee+6RG264gTYHUhx88MFRAK2+2fHNb35TTj/9dPnpT39KmwExVqxYIWeffbZce+210cVbUTy+/p3TokWLZHh4eOAqrerxkiVL8iYP1EpnzKfNB/Xf1atX97yurmCsrgjevU1cGt15JG3DvENVnXXWWfK9731PfvKTn8g+++wz8bwas+qr2evWrUudN7ZzQl09WV2Jn+MV6kR9e0Ndwf7YY4+NrqB/1FFHyd/93d8xX4AY6uvd6txK3f1BfftP/VNvQv393/999Lf61hLHGb8Iqh0s+mrBv+6663q+3qceq68tAVOJ+sq2OrHvng/qq6fqt9Kd+aD+q4IHdQDo+PGPfxzNG/Xb68426tZd6nemHerdV/XJhfrqd2eb7nw62zDvUDXqmn4qoFZfX1Vjvf+nDeoYMm3atJ7xrK4foG6h1T1v1Ndhu9+QUuNdBczqK7E6c4LjFepMHSO2b9/OfAFivPa1r42OEerbHZ1/6to16valnb85znhWwMXQGk/dokRd3fhrX/tadGXjd7/73dEttbqv0go06cqS6pY+6p9aQi666KLo7yeeeGLillpq/H/nO98Jf/3rX4e/+7u/G3tLrWOOOSa85ZZbwhtuuCG6UmX3LbXUVSrVLbXe8Y53RLdQUXNM3Sqo/5ZaIyMj4Re+8IXoSskXXHABt9RCJb33ve+NbjN3/fXXh08//fTEvy1btvTc6kTdZuvHP/5xdEutE088MfrXf0ut17/+9dFtudRtsnbffffYW2p98IMfjObEJZdcEntLLY5XqLpzzz03ujr+Y489Fh1H1GN1h4gf/vCH0evMFyBb99W/mTf+EVQ7ou4Hqk6I1P2q1S1L1P13gSb6yU9+EgXT/f9OP/30idtqffzjH4+CYnXy/trXvja6z2i3Z555Jgqi586dG90S6IwzzoiC9W7qHtcve9nLojT23nvvKFjv95//+Z/hQQcdFM07dSshdV9ToGri5ov6p+5d3aHedPqzP/uz6LZBKjD+vd/7vSjw7vb444+Hb3zjG6N7tqt7VP/FX/xFuHPnzoH5efTRR0dzYv/99+/Jo4PjFaruT/7kT8LnPe950ThWbx6p40gnoFaYL4B5UM288StQ/+f703AAAAAAAJqI31QDAAAAAGCJoBoAAAAAAEsE1QAAAAAAWCKoBgAAAADAEkE1AAAAAACWCKoBAAAAALBEUA0AAAAAgCWCagAAAAAALBFUAwAAAABgiaAaAAAAAABLBNUAAAAAAIid/x+2DhjXN69DCwAAAABJRU5ErkJggg==", + "image/png": "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M+Sggw6Sq6++2rbMAAAAAABUwojpDldccYWcc845cumll0YB9cUXXywnn3yyPPDAA7LHHnsMbL9jxw553eteF732zW9+U/bee2954oknZOHCha7qAAAAAABAPYLqiy66SM4880w544wzoscquL7qqqvksssuk3PPPXdge/X8s88+KzfeeKNMmzYtek59yp1m+/bt0b+ODRs2mBYTAABUCpecBVA1rEso4evf6lPn22+/XU466aTJBIaGosc33XRT7D7f/e535cQTT4y+/r148WI5/PDD5dOf/rSMjY0l5nPhhRfKggULJv4tXbrUpJgAAAAAAFQvqF67dm0UDKvguJt6vHLlyth9Hn300ehr32o/9Tvqj3/84/LFL35R/vqv/zoxn/POO0/Wr18/8W/FihUmxQQANAW33gEAONV9XOEYg5K+/m2q1WpFv6f+53/+ZxkeHpZjjz1WnnzySfn85z8vF1xwQew+6mJm6h8AAAAAAI0JqhctWhQFxqtWrep5Xj1esmRJ7D7qit/qt9Rqv45DDz00+mRbfZ18+vTp0jhhmP7YXUae0tXNb/JxaFJHh+1hlJRNv/Rv04rfJzTpi540w9L6zO++Mak5qWpY/txU+2Smk5JubJ4exkFaGVPLH1OWsOWvXN3riOuki5Jn/Ysep/WNZT5xWae0cDltFxa2/jinvZbYbVf0kSF9Yw/9lJRmYedPBciqS1jMuUFn3vemnj997RTSjj2OhAX3X5iZee+TLj4L7ztSpK3mufOJ7bqsuR4O7J1SppjzqKn29W8VAKtPmq+77rqeT6LVY/W76TgvfelL5eGHH46263jwwQejYLuRAbVTGdPQekAmfO2lIV+zrFQ1qlSWWrV7RRpOuxh53qyomKx1pVITrI5fAQxLGx8NPIfJFGSOV1f93tW4qXladEKj5pypqTRo89U18DZHilGRYqBoQTB171Otbqf1la98Rf7t3/5N7rvvPnnve98rmzdvnrga+GmnnRb9JrpDva6u/n322WdHwbS6Uri6UJm6cBkAAAAAAFPqN9WnnnqqrFmzRs4///zoK9xHH320XHPNNRMXL1u+fHl0RfAOdeXuH/zgB/KBD3xAjjzyyOg+1SrA/vCHP+y2JgAAAAAA1OFCZWeddVb0L871118/8Jz6avjNN99skxUAAAAAAM35+jcAAAAAAGgjqAYAAAAA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uc+Fv/nNb8KPfexj4bRp08K77767oJYA9Jx88snhv/7rv0Zj+a677grf9KY3hfvuu2+4adOmiW3e8573hEuXLg2vu+668Lbbbgtf/OIXhy95yUsmXh8dHQ0PP/zw8KSTTgrvvPPOaB4uWrQoPO+88ya2efTRR8PZs2eH55xzTjQn/uEf/iGaI9dcc83ENhyvUAff/e53w6uuuip88MEHwwceeCD8yEc+Eq3vag4pzBcg2a233houW7YsPPLII8Ozzz574nnmjV8E1Q4cf/zx4fve976Jx2NjY+Fee+0VXnjhhaWWC/CtP6hutVrhkiVLws9//vMTz61bty6cMWNGFBgrahFW+/3yl7+c2Ob73/9+GARB+OSTT0aPv/SlL4W77LJLuH379oltPvzhD4cHH3zwxOM/+qM/Ct/85jf3lOeEE04I//RP/9RTbQE3Vq9eHc2Bn/70pxNzRAUM3/jGNya2ue+++6JtbrrppuixOrkZGhoKV65cObHNl7/85XD+/PkT8+RDH/pQ+IIXvKAnr1NPPTUK6js4XqGu1DHhq1/9KvMFSLFx48bwwAMPDK+99trwla985URQzbzxj69/57Rjxw65/fbbo6+4dgwNDUWPb7rpplLLBhTtsccek5UrV/bMhwULFkRf/enMB/Vf9ZXv4447bmIbtb2aN7fccsvENq94xStk+vTpE9ucfPLJ0Vdmn3vuuYltuvPpbMO8Q9WtX78++u+uu+4a/VcdQ3bu3NkzntXPGvbdd9+eeaN+4rB48eKe8b5hwwa59957teYExyvU0djYmFx++eWyefPm6GvgzBcgmfp6t/r6dv/YZt74N1JAHo22du3aaMHvHoCKenz//feXVi6gDCqgVuLmQ+c19V/1O51uIyMjUYDRvc1+++03kEbntV122SX6b1o+QBW1Wq3oN24vfelL5fDDD4+eU2NWvYGk3mxKmzdx473zWto26oRo69at0RtSHK9QF3fffXcURKvfgarff37729+Www47TO666y7mCxBDvfl0xx13yC9/+cuB1zjO+EdQDQBAgZ8i3HPPPXLDDTeUXRSg0g4++OAogFbf7PjmN78pp59+uvz0pz8tu1hAJa1YsULOPvtsufbaa6OLg6F4fP07p0WLFsnw8PDA1fPU4yVLlpRWLqAMnTGfNh/Uf1evXt3zurqypLoiePc2cWl055G0DfMOVXXWWWfJ9773PfnJT34i++yzz8Tzasyqr8ytW7cudd7Yzgl19WR1JX6OV6gT9amaurLwscceG11B/6ijjpK/+7u/Y74AMdRXrtW5lboqt/r2n/qn3oT6+7//++hv9Ukx88YvgmoHi75a8K+77rqer/epx+prS8BUor6yrRbN7vmgvhKkfivdmQ/qv2pRVweAjh//+MfRvFG/ve5so27dpX7/06HefVWfXKivfne26c6nsw3zDlWjrumnAmr19VU11vt/2qCOIdOmTesZz+r6AerWJt3zRn0dtvsNKTXe1YmM+kqszpzgeIU6U2N1+/btzBcgxmtf+9pozKtvd3T+qWvXqNuXdv5m3nhWwMXQGk9dOl5d3fhrX/tadGXjd7/73dGl47uvngc06cqS6lYL6p9aQi666KLo7yeeeGLillpq/H/nO98Jf/3rX4e/+7u/G3tLrWOOOSa85ZZbwhtuuCG6UmX3LbXUVSrVLbXe8Y53RLdQUXNM3cKh/5ZaIyMj4Re+8IXoCpYXXHABt9RCJb33ve+NbjN3/fXXh08//fTEvy1btvTc6kTdZuvHP/5xdKuTE088MfrXf6uT17/+9dFtudTtS3bffffYW5188IMfjObEJZdcEnurE45XqLpzzz03ujr+Y489Fh1H1GN1h4gf/vCH0evMFyBb99W/FeaNXwTVjqj7tKmBqu7Lpi4lr+6/CzTRT37ykyiY7v93+umnT9xW6+Mf/3gUFKtF9bWvfW10n9FuzzzzTBREz507N7pVwxlnnBEF693UPa5f9rKXRWnsvffeUbDe7z//8z/Dgw46KJp36hYP6r6mQNXEzRf1T927ukO96fRnf/Zn0W2D1AnL7/3e70WBd7fHH388fOMb3xjds13dO/Qv/uIvwp07dw7Mz6OPPjqaE/vvv39PHh0cr1B1f/InfxI+73nPi8aoOqlXx5FOQK0wXwDzoJp541eg/s/3p+EAAAAAADQRv6kGAAAAAMASQTUAAAAAAJYIqgEAAAAAsERQDQAAAACAJYJqAAAAAAAsEVQDAAAAAGCJoBoAAAAAAEsE1QAAAAAAWCKoBgAAAADAEkE1AAAAAACWCKoBAAAAABA7/z+2DhjX1opUpwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -604,13 +626,13 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 334, "id": "9764ab7f", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAK9CAYAAABYVS0qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAoYlJREFUeJzs3QeYE9XawPF3ti8d6SAIiApIUUEQ0M+GYsOLXpXL9Qoicq8FGzZQBFEv2DtYUESvBSwIKooCio2mAgpIld57Zwu78z3nZJNNstndZDfJnCT/3/MENslk5rSZyZs5c45l27YtAAAAAADAcUlOJwAAAAAAALgQpAMAAAAAYAiCdAAAAAAADEGQDgAAAACAIQjSAQAAAAAwBEE6AAAAAACGIEgHAAAAAMAQBOkAAAAAABiCIB0AAAAAAEMQpAMAAAAAYAiCdABA3Bk3bpxYluV5pKSkSIMGDeT666+XTZs2OZ28mLR27VqfMk1KSpJjjjlGLr74Ypk9e7bTyQMAIG6kOJ0AAAAi5ZFHHpEmTZpIVlaWzJkzRwfvP/30kyxevFgyMjIo+DLo1auXXHLJJZKXlycrVqyQ0aNHy7nnniu//PKLtG7dmjIFAKCcCNIBAHFLXeVt3769/vvGG2+UmjVryhNPPCGfffaZXHPNNU4nLyaddtpp8q9//cvz/KyzztLl/Morr+iAPZoOHTokFStWlFihfixKS0vTvRAAACgOZwkAQMJQAaXy119/+by+bNkyueqqq3T3bXWFXQX2KpD3lpubK8OHD5cTTjhBL1OjRg0588wzZdq0aZ5lVHf6SpUqyerVq6Vbt246gKxfv76+om/bdpEA8+6775aGDRtKenq6nHTSSfL0008XWU51LR8wYIBMmjRJWrVqpZc9+eSTZerUqT7LHThwQO68805p3LixXqZ27dpywQUXyPz5832Wmzt3rlx00UVStWpVqVChgpx99tny888/h71M9+7dq9Pjzl+zZs30DyT5+fk+y+3atUuuu+46qVKlilSrVk369Okjv//+u8636vngX7ZqO+pKfuXKleXaa6/V76l1Pv/887pcVN3UqVNH/vOf/8iePXt8tvXrr7/qelE/1mRmZupeFjfccIPPMuPHj5d27drp9as0qd4BL7zwgs8yqn6vvvpq3V5UGZ5xxhkyZcoUn2Vmzpyp86DWN2TIEH27hVp2//79QbUlAEDi4ko6ACCh7qtWqlev7nltyZIl0qVLFx1EDRo0SAfWH374ofTo0UM++eQTueKKK/RyDz/8sIwcOVJfke/QoYMOtlTQp4JgFQy7qW7gKghWgduTTz6pg+lhw4bJ0aNHdbCuqED88ssvl++++0769esnp5xyinz99ddy77336nvmn3vuOZ90qy76EydOlFtuuUUHjy+++KL8/e9/l/Xr1+sAT7npppvk448/1gF9y5YtdfCrPrd06VJ99Vv59ttv9VVvFYSqNKkrum+99Zacd9558uOPP+p8haNMDx8+rIN/lRcVLDdq1EhmzZolgwcPli1btuiA2h1cd+/eXebNmyc333yzNG/eXCZPnqwD9UBUGaogWwW06gcNFfQqahsqoO/bt6/cfvvtsmbNGnn55ZdlwYIF+geI1NRU2b59u1x44YVSq1YtXc/qBwGVdlWubipIVt35zz//fP2DgqLKT63jjjvu0M+3bdsmnTt31nlU21Ll//bbb+v6VOXvbi9ujz76qL56fs8990h2drb+O9i2BABIUDYAAHHmrbfeUpej7enTp9s7duywN2zYYH/88cd2rVq17PT0dP3c7fzzz7dbt25tZ2VleV7Lz8+3O3fubJ9wwgme19q2bWtfeumlJW63T58+eru33Xabz7rU59LS0nRalEmTJunlHnvsMZ/PX3XVVbZlWfaqVas8r6nl1Ge9X/v999/16y+99JLntapVq9q33nprsWlT6VD56datm/7b7fDhw3aTJk3sCy64oMS8rVmzRm9z+PDhOh9bt261f/zxR/v000/Xr3/00UeeZR999FG7YsWK9ooVK3zWMWjQIDs5Odlev369fv7JJ5/ozz7//POeZfLy8uzzzjtPv67q0b9s1Tq8qTSo19977z2f16dOnerz+qeffqqf//LLL8Xm8Y477rCrVKliHz16tNhl7rzzTr0etV23AwcO6DJs3LixTr/y3Xff6eWaNm2qy9hbMG0JAJC46O4OAIhbXbt21VdOVZdr1Z1dXSVX3diPPfZY/f7u3bv11WV1f7rqLr5z5079UFeh1RXblStXekaDV1de1VV39Vpp1NVs/+7qOTk5Mn36dP3al19+KcnJyfpKrDfV/V3F5V999VWRfBx//PGe523atNFdsVW3azeVPtWVffPmzQHTtHDhQp32f/7znzp/7ryqbvfqyvEPP/xQpCt6IOoKvCrTunXr6q7u6krzM888o8vX7aOPPtLvqavr7u2oh8qH6mmgtqWoXgbqKnf//v09n1VX92+99dZit6+uuHtT21Jd99UVaO9tqd4Cqnu86q3gLh/liy++0N3NA1HLqPIoqdu5qjt19VtdzXdT2/n3v/+tr8z/+eefPsurXgGqa73/doJtSwCAxEOQDgCIW6NGjdIBl+qGrO5jVsGbuj/abdWqVToofuihh3Tg6f1Qwaiiukkrqqu6us/6xBNP1Pcpq67pf/zxR5FtqiCzadOmPq+pz3h3DV+3bp2+V111XffWokULz/veVHdxfyoA9r7nWnWtV6PWqx8kVBCpulR7B/HugFAFjf55feONN3RX7H379pVapioYVWX6+eefy1133SVHjhzRgbc3tS0VgPtvRwXp3mWq8lmvXj1Pt3U3df96IGoqPfcPLN7bUulW9+D7b+/gwYOebanu9+oWAXUvuLon/W9/+5vu6q/y7aZuJ1B1pW4JUNtR96v73/uv0qzGD/BXXN2p+979BduWAACJiXvSAQBxSwWr7tHd1T3m6uqnupK8fPlyffXTfeVY3S+srpwH4g4Y/+///k8PWqbumf7mm290YKvuHX/11Vf1vcWRpK66B+I9yJzqDaCuXn/66ac6fU899ZS+r1rdc62CTnde1evqHvhAVJmURg125g62L7vsMp02dY+3mobNXdZqW+rK9n333RdwHe4fLUKlfmDxHxldbUsF6O+9917Az6hg3d2jQf1Yo6biUz8wqDEAVBCuegGo11Te1XpUjwP1nurNoB4qkO/du7e+77ws/K+iO92WAAAxwOn+9gAAROqedP/7j933CY8cOVI/37Ztm34+ePDgkLeh7kM+9dRT7QYNGhS5b3r58uU+y3711Vf69Q8++EA///e//63vzd6/f7/PcnPmzClyr7l6Huhe8+OOO05vrzgqbyptXbp00c/nzZun1/Xaa6/ZZeG+J/2pp57yeX3Pnj36fnh1r7tby5Yt7U6dOpW6zv79+9upqan2oUOHfF5336vuf0+6us/d3y233KLL0v++72Co+9XVdsaMGRPwfXV/+X/+8x+9zMqVK/VrJ554ot2hQ4ciyz7++ON6uUWLFvm0Ne979UNpSwCAxEV3dwBAwjjnnHP01XU1urias1pdOVWvvfbaa3rUcX87duzw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97wuk2MbHSdtTm0vD//3cf1DhjJu3Dip1uL/fD47aep3YiX7Th82efJkOa3bPyWj6RnStEUbGT58uE/+Vq5cKf93ZT/9fstz/i7Tfgiud3V6WprUrVtX6h/bSK7p3U/+75zz5LPPPtPv9bv6Mhk5dJDP8v169ZMHBzzoeT569Gg54YQT9HRsqrfAVVdd5bO8qntd5scco7fz8MMPSywo0zzp//jHP+T++++Xjz76SB+AVOZ//vln3XB69+4d/lQCAAAAiBoVNB7J9ZpGKidPJDe/4O+jgX80cb/v+cxRkeTCp1k5rvePJOfJYfeyVr5rOffn8/IlM8Uq848cixcvllmzZslx9Wp6Xhv50lh597Nv5dVXX5UTjmsgP3z1ifzr9iFSq0Z1ObtTO3noqdHy54rV8tW7L0vlZmfI978ukqysIz7rvffR5+X54ffICZ0uluEjnpTbb+gll579l9SpXUs2bdokl1xyie56/84778iyZcukf//+OnD0Dgo/m/CZ3HP3PTL383dk9m9/yPV3DZMuF10lF1xwgXwyeYo8N+Z9GT96pJx8UlPZun2X/L5+n+ezw+8bLpv+2iTjx4+X+vXry6dvvywX/WuALJr+oZzQtFGRcvh65mzZuXuv3Hdz72IvugZr3qx5cmPvG+XF4XfLWR1Plb9258m/B9yl31PjkalY8Morr5Q61SrovO07cEDuHPaMlEVGZqYc2LcnqGV//fVXuf322+V///ufdO7cWXbv3i0//vijzzJvv/22DBw4UI+lNnv2bF1HXbp00WUed0H6iBEj5NZbb5WGDRvqOeBatmyp///nP/+pR3wHAAAAELtUgN5y6NfFvLs1yLUUt9x6v2VW+rz75811pUJq8EH69998L6cfd7rk5+VLdna2JCUlycuP3K3fy87OkREvjZXpM76VTp06ieQckqY9L5efflkor737iQ7S12/aKqe2Oknat20pWbUayxmZNQrWvMazjQF9e8rfLz1fcuu0kAdHPCM/z5wub40dK4MG3a+v5qq46OWXX9Y/LjRv3lw2b96sL2oOHTrUs44TW57oGmR78wIdWL88boLMmDFDB4zrN26SurVqSNezOkhqaqo0alBPOlxwoizZv1a2bNwiE9+fKOvXr9cBunLPTb1l6nez5K0Jk2XE4NuKlMnKNa4ybt6siZTXC4+/oHsG9LnmIv28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", + "image/png": "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", "text/plain": [ "
" ] @@ -634,23 +656,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 335, "id": "a382bdc3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 10, + "execution_count": 335, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9UAAAKTCAYAAAAXPCvaAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYXNJREFUeJzt/QncJWV9IPo/p7vphha6QZFGoBF3RDYFQVziOCES9WLMJP/wd7zCJYbEROaqTBLFBTTGYEwkJjMoEw1h7ueOkWiUOIIYg+KKoiCCCriwCnaz09BAN3TX/VQ179un3rfOqarnVJ31+/XTct5zqp6tnqV+Z6nqJEmSBAAAAKC2JfV3AQAAAATVAAAAMACfVAMAAEAkQTUAAABEElQDAABAJEE1AAAARBJUAwAAQKRlYQJs3bo13HbbbWGXXXYJnU5n1MUBAABgyiVJEu6///6w1157hSVLlkx2UJ0G1GvXrh11MQAAAJgxt9xyS9hnn30mO6hOP6Geq8yqVatGXRwAAACm3IYNG7IPd+fi0YkOque+8p0G1IJqAAAAhqXsJ8guVAYAAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1QAAABBJUA0AAACCagAAABgun1QDAABAJEE1AAAARBJUAwAAQCRBNQAAAEQSVAMAAEAkQTUAAABEElQDAADAsILqr33ta+HYY48Ne+21V+h0OuH8888v3eeSSy4Jz3ve88KKFSvC05/+9HDuuefGlhcAAAAmN6jeuHFjOOSQQ8JZZ51VafsbbrghvOpVrwove9nLwpVXXhne8pa3hN/7vd8LX/ziF2PKCwAAAGNjWd0dXvGKV2T/qjr77LPDU57ylPChD30o+/vZz352+MY3vhH+5m/+JhxzzDF1swcAAIDJDarruvTSS8PRRx+dey4NptNPrHvZtGlT9m/Ohg0bwrh7aPOW8Pp/+E5YsqQTTnzhfuEVBz0pe/7b198V/u7in4bn7btb+ONjnpU9l/596c/vCv/lV58eVu+0Q/jAF64NT37CyvC+3zgw+0r9uLn9/ofDuz77w7DD0iXhjN86KKzacYf5195/wY/DtevuD6e+4tnhgL1WRefxuR/cFv7fb98UXnPo3uE/H7lv9txNd20M7/3fPw67rtwhHP3sNeF/fuvG8IoD9wz/14uekr1+z8bN4R2fvTqkTfa2X98//OVF14YtW5Pw/t88KOy+84r5tB9+ZEt4+79cFR7Y9Gh4728cGPbedafS8nzmil+ET373lvDbh+0Tli9dEj5x2c3hPz1377ByxbKsnL/1vL3Dcc/fVs7Uf7v4p+FbP78r/NHLnhY+d+Vt4Y4HNoV3veqA8PQ9dg5tSftQ2pde8NQnhDcf/YzS7f/xmzeEL/xwXfjdFz0l3HL3g+Er190e/u9ffUa2/0IXXv3LcO63bgy/cehe2d//euVt4f964X7hlY/16zk/uu2+rP8+7Yk7h9OPPWBR//3O9XeFv734p+Hw/R4fXvi0J4S//fefhiOf+vjwpNU7hn+54tbwf77gyeHVh2zLI1aSJOHPPv/j8LPbH8j6wYF7ry7c7ks/Xh8+9vXrw8sPWBOWLemEC7O22C/8+oH5Ov3w1vuyvvSU3R8X3vvq5+TqlOaV9smf3/FA+JNjnhUO3mfX0KS0/576mavC7fdvCu/+Pw7I2rWXuf6fJCH8xX86KDz+ccsLy7mwTR7c/Gh4279cnY2LP3/NgWHNqh1z6Z7//Vuz/p728Q0PPRr+/Zr14Y0vfVp42f57lJb/hjs3hj/73z/Kxt8Z/+mgsGxp/stQ373x7vA3X/pJOGTtruGwfXfLjkc6tnffZXn4p8tuCb/9vH3C7zx/bd88zvy368J3b7wn67vfueGu8J3r784eH/W0xf04Vr+2LfPIlq3h7f9ydbhrY/ExvOS628PZX/15eNmz9gh/8NKnLdr/unX3h/dfeE1Yu9tO2fGpuybMzUXp+vLz2x8I//uqX4bXv+DJ4SvX3h7ufeiRrE+vffzKrB2/d9M94S1HPzMc8ZTHV5oPjzt8bfitw/YJw1pT3/YvV4UHN2/rp3uuzvfTufHyjs9cHdbf//B8W9/5wKbwzs9eHZYu6YQzfvPgsHrlDmHDw4+EU//l6vDo1q2L1ofU1396RzjrKz8LL3za7llfquKn6+8Pf37BNWGvXXcK73/NgdnaX+S+hx7Jypj2iz//zQPDHrssrkf3cd9r9Y7h/zh4r6w8L3r6E8LJ//EZfef0i364Lpz0kqeGow9YUzgWd1u5PHzgtw4Oy5dtH4vpPum+rzr4SeH4o/bLnvtf37mp5zzfT7qupuvr5keL65fWOz2O9z74SHjPsc8J+z5hZWma/8+lN4bPX/XLcMJR+2Vl7Kd7fX/Pq58T9tltcfrpGnX1rfeG//ryZ2XnYmVuvDM99/hR2HXl8vCXC9puzvV3PBDe9/kfZ30pbd+0vxXpPk+Z64/d0nGZzge/dsCa8Hsveeqi/efOIZ+/3+PDW3/tmYte/+BF14Yf/OLecMqvPTN8/ad3ZvPhyf/x6eH+hx8J53zzxvDKrnOm2zc8HN51/rZzuT/7jeeE919wTbjnwc3h9GOfE/bb/XF92yRdPz/+9evDrx+4ZzjxsfQ+9b1bwqe+94tszk7Plbr94p4Hw3s+96PwuBXLsjbccYelhelecfM94cx/+0nYf89dsj6c1jXtf+m5QSo9Vzn9cz8Kq3ZclrVzr3RS//y9W8KnL/9Fz3kqXRff9/lrwk/W35+t3+k6VMXcOEuPT3qcUvc+2LVG/OZBYbeCNWLr1iS88/yrw633PhxOOOrJ4Z8uuznsnLbHbx8cVizrXY+F5ua0JZ1ONn/91RevC7fe+1B4xyv3D/vv2fu8u6jfp+d9/+OrPw//cf89wp6rd8rOZ9Nz2///EdvPZ7vX6sOevFs46VeeOj9/pnV9woL5s46bHjuvz2Kf3zqoVjtMgtaD6nXr1oU1a/KTffp3Gig/9NBDYaedFgc4Z5xxRnjve98bJsnWJMlOUFKbHt06H1Sf+80bsxOc9N8fvPSp2eR85pd+kr22YoclYb8nPC6bCL/+0xDe8OKnZify4+bia24P//bj9dnjYw950nwQkk7QH/v6DdnjZ+zxi3DaXgdE5/Hu83+YnXxcdsPd80F1uqh++drbs8efueLW7L/fueHu+QXikp/cngWJqUe3JPNlTE/S/3+Hbz8xv+Kme8L5V96WPT7qaevCG168bf9+0pPizVu2ZuV53PKlYePmLdnjXVYsC/dvejR7PBdUpycTH3rsmF67bkO458FHsscH731rOOXl295IaUMakFx6/V3Zv7Rv9VtsUulEllq/4eFw010PZo/TSbooqE4XwzSwS+vZfZK28GQrXVC39d87s3ZNT9a7/cM3bpjv/5ffdPd8eedc88sNAwfVt933cPjHb96YPX7K7rf0DKrTQDkNvLvrdNu9Dy0Kqs/77i3zdfq9Fz81dxL4i3seyt5sSO37+JWNB9Vpe/zz936RPT5kn9sKT6LmfO2nd8z3/5c/Z034T8/bp7CcT3viL3Jtkp50/e8fbBsPL33mE+dPXuakJwppINPdThs3P1opqE7fUPrKdXdkj19/1JMXtU+6gM/1hzWrVoT1GzZlY3rFsiXZvJnm2S+o3rjp0fB3X/5Z9njZ0k52jFIrly9tNKj+6k96t22Zq2+9L/zLFb2P4d/8+0/DD265N3z7+rsLg+p036/9ZFsb/u6Ln9L3jZWFuueiHZYtmU+n+1imAXQaZM+146odbygNqv/4Uz8IW5MQLr/pnqEF1ZfdeHf2ZmvqV565+3zwt3C8nPe9W7LHB+9zWxZYfPma28MXf7RtLUjnqzRA/dbP7gwXXP3LwvUh9ZGv/Dw7HtuOyVMrneh95vu3Zv0kdeKL9gvPXLNL4Xbf7Mo7PZFdePI6n17Xcf/3a27PTqS3ze1Py4KgfnN6uu3CoDod43NjMV1T0zc25/z5BT/O5oh07M216zs/+8P5gLJOUP3tn9+VrdWpdI547YL6XfWLe+fX78P32y380X94emmap/3rj+ZPwMuC6jQom1vf07VsYWB698bNWdCaetLqmysF1Z+/anvbpfUpGh9p35zbJm3Dg/YpXne6z1NeceCTwrEL1rsPfvG6rB+nx6IoqO5eQ9M3N3davr1v3vfgI+Ejl2yr2+qdbggXXr1ufuynb6ilgddlXedMab+aO09K30xN+3DqsCff1vfNm9QZX7gmXH/Hxqycc0H1n3z6quy/l998z6Kg+gtXr8vyS6WvveQZTyxM9xPfuTl842d3Zv+++ON14Za7H8rqOrcupWNn7jwwXRvSN756+dPHynPlzfcWzlO/vO/hcM43t52zrn38TpWD6rlxln5YMhdUf+2nd863d/pGw28cuvei/X5y+/3Zm8Vzb9ylAXgqnQOKzrt6Sd94mZvT0vUgDc5T6RsR73jlqp5v5hT1+zRQvuoX92VzXfpGxYaHt53PLpyX0vOHuX6XnuvMzWG/dsCei451HZ/vOq8/7vlra7XDJBjLq3+feuqp4b777pv/d8st2zrlOEtPCl97xLaFesvWrfPPp+/szEkfzg2quROg7te79xsnj6ZnUyWPBy17GlAXfQrRt1xbtr+enpD32i+mnGlAPScNqOekAXXRGypF23bn24a0/8zp7ldlHnj40VywVCT9VGHxc5sXPZfvv0nfdkw/eVro/q6yxNrS1Q/6tXl3vfvln+/jW/v0peaPb530H+1T7y0D1CENqBc9t2nxc0Xyc9/itLuf6x7z3eO3b/pdHb17n+5+1oRe81wVW8rat2AO6XVc6/ax7rlo86PFxyxNs7sdF/aP4nTjyjOIXF/qapP8Novn9qL+XdbnN3W1VdW5NDfGepSvTl/qfi1986hOedJPaevkmwZjvRTN/f2U1S/Xn/u0U9XzgrrjrWyNKtJvDShKq98YKhvP3ce6bJ3vHt8L8+3e7pFHt2bfzlhc5q2Ffb7KHNdvrS5u92r9vnvfO+/fXPv4Fum1HlQds1XaoMr81P1896GrO492b587bhXnne79u/tbGlD3kvahovYc9Fx/S8vnUFMfVO+5555h/fpt77DMSf9etWpV4afUqfQq4enr3f/GXfo1x2Oes+eoiwEAAMA0BdVHHXVUuPjii3PPfelLX8qeBwAAgJkKqh944IHs1ljpv7lbZqWPb7755vmvbh9//PHz27/xjW8M119/ffjTP/3TcO2114aPfOQj4Z//+Z/DW9/61ibrAQAAAOMfVH/ve98Lz33uc7N/qVNOOSV7fNppp2V///KXv5wPsFPp7bQuuOCC7NPp9P7W6a21Pv7xj7udFgAAALN39e//8B/+Q3ZZ+l7OPffcwn2+//3v1y8dAAAAjLGxvPo3AAAATAJBNQAAAEQSVAMAAEAkQTUAAABEElQDAABAJEE1AAAARBJUAwAAQCRBNQAAAEQSVAMAAEAkQTUAAABEElS3IEl6PE7/t+C1XtuOla6C9SpjG0Vvqj2G2qy54912Vl3HZbi13J7vEOtbqR0aKUR3u45O2THNvbpg0+4/F7ZJ0uJE0y/fhRvEFCO3z5jOl4M2b1NjuedcPbYLTf25pay/zT3XRpW727HqMUtamtvL6len/vX7X415aorWoFHkWyufsj4xYFnKs08a2Sc3zpLxPGa1R8wAmS+MKXqXqbvdYo5FjzwnY/kYGUE10UY9tnqdX/crlwlhdvtLE5pc4MvSH4ZJCbCKtPlGUq5dktGVsa3DM8GHvdk3o8ZojDV+TEZxkEvyHEm3SwY8FgO/Sdb9OBnum5gVt2+9qyTTtwYNs9ijfi+50TcgkuLH00JQ3aBOp1PwXL/tm8x9tk3qxDyITtCBmF36f0n7mB5mRpPH2riaEsY/us/QCaoBAAAgkqAaAAAAIgmqAQAAIJKgGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqAQAAIJKgGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqAQAAIJKgugVJ0vtxEpIFf3e9HsZTlTJ217O5fJtJNGmjcLn0ux4vOL6t5jvEvHqXoevxiAqRzzZpbfwOW1ne3e29cKzkX1uwXzPF61Gm/jnl+mxUBsVpjZNBx8Egu1fpu6Ps0/F1KS50v36+7bltz7ZR5ah5ouKGddMunStqtEDdcVU+T4UhrkHt5jXq9bff3LLoldIyDe+8aJB98udX43nM6s75g6xdleeGAdstv5QPuG7PEEE10UYVRG0vQI+n+xTLhDA6o+4uzb/B1HyFht1Ek3xI2uxPTR3nQcvY2hsHk3zgWw7yRvcGZbMZj6IaZXmOom1jPrho9MOOFt+krfLGU+/tux43W6zF+fbJYVKnoibe7IrJaxRvJjeZY5J7Y31Sj35vguoGdYqeK3qywmvMXsBWV6ewx8FsMH9qH5ofC9aVKeH0AN1n6ATVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1S1Iuh93/ZEs/DtZ/Pc4ypexuJBJrtbN5ztQOs0k0yf9pMfxToaXb6s59SnDgv49kjJ0P26gEPk0RjcokwHq3fe1ZPhjofC5pPn0x8Eoi1Wlfca02aLKWTb2557rtW4NImlxn7ppl1avRoJ1163yrFteB7sq33Ze+Xxzfw0nzzqvlRRpHOfPpHSMD1bots7PGh+vDew76HlRzzhmDPvNOBFUAzBxrO00pdPpzFZjTkh1O5NS0BngSMxuG7TxpuS0ElQTbdTjLP9JbbV3q0dd5lk2DU3f9ju2w+6fxkOvhmmmjZIxPT7D/ERv2GI+OW3z087Knyw1fEj6ptdWv0qa/hQ8Gc2c3d0fBixCm9+uqZt2z35eYedBit4v+Ulag+p+0aqpuWSa5utkyj/1FlQ3qOjN7n5vgM/am+NtmsbBWca7+Mwy02dJ+2igmdHksbauTAnjH91n6ATVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1S1IkqTrcf75rj8fe61r29yr41mf3tu0kO/YJdQj+e5jPMx8u/tOGwegYim2l2G8xlt0emNQp0p59+p3i/Zd9OqAJetTpD5lWvx60nj646BOnykat4OM5fx6U77NOKsyrsv6U5t1rdLW/fbpv2G9fcq2qdMMdcdlnXmqDYvPqYZjFPn2y2fRS2V9ovXzoogMknbn/NbOz2qmlTQ2L/ZOadB2S3o+npAFZEQE1QBMnNG9kcS06XQ6YaZMSHU7k1LQGeBIzG4bWGqrE1QzsXp9UtD/3Vwn4iMzFTNz9zdL2k1/GKbhiLQh922FQdJJxnPITMVQjKxc0ctNf9sll/aIRlnffFvrV/Xbvu/2DRQ0Ziw3+clcq9+uWfBNyBqb93xcZd9WP2EfY8mIvsE5Cd/Qqirp8XhaCKpbfle13xvgs/bmeJtmMVj2Lj6zbOY+XaxJ88yOJo+1dWVKmB7RfYZOUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUtS5Kux9nf259IH+Ze73o8TrqL1auMrRS9oQZJ2ildV/pdj7uPb6u55utVJ6+ktUM0mg6ca/8GyrBwzI5KWV1yx3/Rpr1fa3OeKZsr+pe5bvrjOWHW6YPFbTRI3v3T3rbNeLZb3LjuP1jnnmqjq+Tn32oZVO2zddMuS7ZO/ev2j/J5qmUj6s4jWScaXOjbnj7j5vek/3MDlrmt87PaY2aAxq/a7/JrbTLg/FucP4sJqgGYONZ2mtLpdGarMSekup1JKegMcCRmtw3G9Q3scSSoBgAAgEiCaqKN+s2rJOYrMd5wG5lpaPq2f64x7P7pHejy4zDIMRn0q9ZtfVV7GsZibN2KXm/zZztV+0/TY7Fvcsn4tH3/7Rv+OU/Vr983OM+3+ZOVul/LzZ8n1fspTlM/S1lcpsmZjXp9JbrK9s3lOzntVSj3E9gJr0sBQXWD6n6DbNa+cdam6Rua5Xw1jllm+ixpHw00M5o81taVKWH8o/sMnaAaAAAAIgmqAQAAIJKgGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqAQAAIJKgGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqW5AkXY8XPL/o7+5tu18c2/oUF7KNsjeVZNvtmnRlkD++7WbcfSzqZNVkucah/zZdhoVjdGSS+HHZr03arFI+36Ty3DjoWBsrdcZi0XMDVCzXPj3SGdd1JmZcl/WnufbotW4Ne95JWkq7bJs69a/bVqV5t73+5tbB4XXu2PW3qTxLXysrU+vHJWKfJO78M6ZMbZ0H1S3HIHn1y3fgtbbm82wjqAZg4kxKcMj463Q6YaZMSHU7k1LQGeBIzG4bWGurE1QDAABAJEE10dr4Sl2t/HPf5en1AuNiGg5Lvsu18JXSxlNkpMc5Gc8xM8yvyQ5badUKf5bQ3leIm/5qeOV8h5nZAG3fd/MGCtrrNKFqvoOWYNCv4Tb6M4Gej5OWv7Lc72vrkyNX1ko/y2iodpPws6cWx+PUB9VnnXVW2G+//cKOO+4YjjzyyHDZZZf13f7DH/5weNaznhV22mmnsHbt2vDWt741PPzww2HWvxoya984m+YAfxR8NY5ZZv7UPjQ/FqwrU8L5JYx/UH3eeeeFU045JZx++unhiiuuCIccckg45phjwu233164/Sc+8Ynw9re/Pdv+mmuuCf/wD/+QpfGOd7yjifIDAADA5ATVZ555ZjjppJPCiSeeGA444IBw9tlnh5UrV4ZzzjmncPtvfetb4UUvelH4z//5P2efbr/85S8Pr33ta/t+ur1p06awYcOG3D8AAACY6KB68+bN4fLLLw9HH3309gSWLMn+vvTSSwv3eeELX5jtMxdEX3/99eHCCy8Mr3zlK3vmc8YZZ4TVq1fP/0u/Mg4AAADjZlmdje+8886wZcuWsGbNmtzz6d/XXntt4T7pJ9Tpfi9+8YuzH+0/+uij4Y1vfGPfr3+feuqp2VfM56SfVAusAQAAmLmrf19yySXhL/7iL8JHPvKR7DfYn/nMZ8IFF1wQ3ve+9/XcZ8WKFWHVqlW5fwAAADDRn1TvvvvuYenSpWH9+vW559O/99xzz8J93v3ud4fXv/714fd+7/eyvw866KCwcePG8Pu///vhne98Z/b1cQAAAJhEtSLa5cuXh8MOOyxcfPHF889t3bo1+/uoo44q3OfBBx9cFDingfm03ysTAACA6Vfrk+pU+lvnE044IRx++OHhiCOOyO5BnX7ynF4NPHX88ceHvffeO7vYWOrYY4/Nrhj+3Oc+N7un9c9+9rPs0+v0+bngGgAAAGYiqD7uuOPCHXfcEU477bSwbt26cOihh4aLLrpo/uJlN998c+6T6Xe9612h0+lk/7311lvDE5/4xCygfv/7399sTQAAAGDcg+rUySefnP3rdWGyXAbLloXTTz89+wcAAADTxFXCAAAAIJKgGgAAACIJqluQhO1XNe++wnn6fPcFz9PHuW27Ho+T7lL1vmB782Vv6uLwbV9kvlf7tJ9vd2Z19munDKPrvc2WIXcMx6JW5a8v7Gu51xak1Ga/LOsP+TInLc1Fo1WnWEVtMEifq9I+Y9psUeO6rD8lI1gD+m5XccP8+B083Tr1r9v/yuepdht/mGtuPuPufIeTcb9sFr1W2ieGd1wq71Py3KBFzq/tzamdVtL++UnulaTBfMZ14R0TgmoAJo6lnaakF1OdKRNS3c6kFHQGOBKz2wbi6OoE1QAAABBJUA0AAACRBNVM7FdC8r9d736+zz6jLvQMG9drBtSR6z4tVGfY3dNwKG+XQdpoXHv8uJarCWVzfOHvNnPXPmm4PFW3azjjvuklo78ORLX0kmb7Q9XftDf4e+nYa5/UTbtKW/Xq51WqOEjRkymZjPpdq6Rs+6bynagGG8E51KgJqkf4g4tZ+xlXm6ZwbJbyezOg5/xgfZkZTR5r68qUMP5h6ATVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVLUiSrse5F/JPpNvlts1tPD6SroL1KmMbZU/yrTdAOu3q2SZt59uVQ522avJYjUP/bboMuXZNxmPcFb/e9bjfa0k746q4UL3zXVSumOS7dxrTCbNOsYo2HaRalcbCghfGtBkr1aV0m6TF9Sm3LlbLIGkp7bJN6lS/7vxQZ55qw6BzSnS+PR4PlGZZW/bdt8bGwzguEa1SWP8K5591StVcWiE6rUHW4KrnO7k5JG61LXg03DE2iQTVAEwciztN6XQ6s9WYE1LdzqQUdAY4ErPbBuP6xus4ElQDAABAJEE1AAAARBJUE23U3wjJ/7ak2m9lfI1ldKah7fO/Y28h/SE3Uqu/r55gTR3nQY9nW91hGsZiL2VVK/7ZZnvXUaj+e+tmM+6bXmv9qtnfVzfRJvnfXNf/7Xsygvzj0q65b4/HVbavq+852QStQXUv6dHUXDIO164Z9bWAJoWgeoS//5m1n3G1afqGZjm/NwN6zg/Wl5nR5LG2rkwJ4x+GTlANAAAAkQTVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAIJqAAAAGC6fVAMAAEAkQXULku7HXX+kD5OuV9PXuredBL3K213PxvJqKM2kjcLlMuiVb9vZ5vtS5f0aLFiur4+oNzdehu4xO8IBWpZ3rq4LNs71jZrptnss4vpsUZqjPDb91OmDRXVIWu67SZP5jXhcd89lxb0taa2O+fJV3Kdip62bdulcUWOwND2PJyM632pbru81dq5SPc/FL5b8XSetBsTN7/2fG7TEC8/Hm1J3zAzS9P3W9l55RB2LZLLW3XEhqAZg4ozqTRymT6fTCTNlQqrbmZSCzgBHYnbbQCBdnaAaAAAAIgmqAQAAIJKgGgAAACIJqhnfC4CV5d/zogy9y+VXmKMzDb/LqdrPotNvPMXpPyatt8sAjTRo+7b1u/Fp/j16zMWecs813DTVL2LWbL79r2IURqL2BZ2avmhaEjP+B8wzIv+otCsUtFc3r1KuwYre55xsgqai+t0iGduL4o1KMiYXgm2LoLpBda91MmvXRmnTFI7NUi7iAvScH6wvM6PJY21dmRLGPwydoBoAAAAiCaoBAAAgkqAaAAAAIgmqAQAAIJKgGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqAQAAIJKgugVJkmx/nHt+279+f4+jfBmLC5nkatpQvmOWTu/0h9cmvdKvk9PCPlmWdr9ty/pv7vXQjly+fTIprlPBcyX7DEtZzv3att9xialR1X1y7VnSH6JM2HxZ+HrEOIuaE3qN7YX9YUwbssraWDaXzT3XRh3bXLvrpl2nz5WmVXOGKM275f6VP98aXl/OT3VJa+t4xeVtcXlKF5DQqqh1pvQcY7BC5+eL5hqgblKDzfH104k5D+u13biuF+NCUA2zxpzIFLC2A0Dba62TxqoE1TBrOl0PO702WfxCr20jsh2J4jqNulSTQStpy2k2c/PAhFS3aM6eNm3UsZ00mYY2mIY6jDNBNQAAAEQSVAMAAEAkQTUAAABEElQTbeSXLuhxidSqV8hkuKah6du+mvmw++c0HJM2VL3ibp10ovZv7ZL5YWrFXPS41StIV71Cb7O59k+vpeNffiXwmuk1UNCYq7Tnr8g9YBkqnpvEJV0v7V71qlLHgebBfnflmKC5qO6Vt5uqW8wVv8dVMkV1KSKoHuEFAGbt2ihtmsKxWWoWLuICxLG+zI4mj7V1ZUo4PYChE1QDAABAJEE1AAAARBJUAwAAQCRBNQAAAEQSVAMAAEAkQTUAAABEElQDAABAJEE1AAAARBJUAwAAQCRBNQAAAEQSVLcg6X6cbP8ryf7X/dq257pfH0f5MvbYpoWiN5VmG2Wrkn7r+XYflzqZJW2VoX9WtcoYW4Ym0usesyMckmV5L5xLeu27cF5p6zgszrfg9UHTbzCtttQpV/GhSJpp/17z0sL+EMZTlfWwXz/f9lz+v01asJpX2yemIEkD6dZaHuoVsmz7tvtXv3lwWPk2VcmiubnqerTwXLOsTK23VUMZNLm+l61P0em2vH3MvFM2N5bm06Pfjet6MS4E1QBMnDbfHGC2dDqdMFMmpLqdSSnoDHAkZrcNrLTVCaoBAAAgkqAaAAAAIgmqAQAAIJKgGgAAACIJqok26usE9brqZ98rZM7oJRdc1Gk4VztvMv1ZGMNjq6ErwA/avm0dnmSG57rCuxS0eMX/qmO68Xz7L4StaPpK4E3Mh1F3WKl4PlEzqRaOcXE+lbavefH6wa5Y3e+1yZmNkrp3J2gq30m47UVFyZRfSVxQPcIriM7aBUfbNEkTc1NcGRXoOT9YX2ZGk8faujIljH8YOkE1AAAARBJUAwAAQCRBNQAAAEQSVAMAAEAkQTUAAABEElQDAABAJEE1AAAARBJUAwAAQCRBNQAAAEQSVLch6fF0kv7b/mL2sGvbrpfGSq5cverWRr6Npdpuw47qsHW3T50y5A5nz+O5+IXCbZOyfRb09xZ0p9ud36LtSsq3fbvxUNr/c22b9N63gQolDfWtfsenUvp95tZxUVbHsqIOUpdKYzsZ37arO65zc2Bhf5vfsOXyVdwnoiC99qkzt9bJt24ZS+vecv/KHYd2s2ol3zrreL9js6g/NtgnYjR29tbgOXLT6+L2tOqOmaTVOX7bdsXzw6Br+biuF+NCUA0zZtDABsaBbgwALa+1Y/NRw/gTVMOM6XQ6XY97bBMWv9Br20lRXKcJr9SQaCVtOc1mbh7oTO6cPW0mpY6TUcp2TUMbTEMdxpmgGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqCaAYz2ioC9LvPfr1SzesXgcaj3NFxBsvXbtwy5iabhmLQhaez2J4PeQiyZ2vlgVJKy21M1nV/lBJPh5TuE2xvGvL5o+wYKGnfrs/r7VMq/xfk2GeQ2SbX3be62a5M0F9XtF03Vran1aBwkuVt9TXZdigiqmQpTODYBAIAJIKhuUN27cszaXTwAGA7ry+xo8lhPyi2eKOEwwtAJqgEAACCSoBoAAACGGVSfddZZYb/99gs77rhjOPLII8Nll13Wd/t77703vOlNbwpPetKTwooVK8Izn/nMcOGFF8aWGQAAAMbCsro7nHfeeeGUU04JZ599dhZQf/jDHw7HHHNMuO6668Iee+yxaPvNmzeHX/u1X8te+/SnPx323nvvcNNNN4Vdd921qToAAADAZATVZ555ZjjppJPCiSeemP2dBtcXXHBBOOecc8Lb3/72Rdunz999993hW9/6Vthhhx2y59JPufvZtGlT9m/Ohg0b6hYTAAAAxuvr3+mnzpdffnk4+uijtyewZEn296WXXlq4z+c+97lw1FFHZV//XrNmTTjwwAPDX/zFX4QtW7b0zOeMM84Iq1evnv+3du3aOsUEAACA8Quq77zzziwYToPjbunf69atK9zn+uuvz772ne6X/o763e9+d/jQhz4U/vzP/7xnPqeeemq477775v/dcsstdYoJAAAA4/n177q2bt2a/Z767//+78PSpUvDYYcdFm699dbwV3/1V+H0008v3Ce9mFn6DwAAAKYmqN59992zwHj9+vW559O/99xzz8J90it+p7+lTveb8+xnPzv7ZDv9Ovny5cvDtEm6H3f9kRS8lvs7jKd8GYtL2V3PVjIeJJmWGzbpkUGv55vLt/hx+X5J6329ON/Gsu2ZbjLCdm1aaXv2eLxw336vNS2f7+KMBs26O81ej0etTkmKjsUgx6d7bPdKZ1F/COOp0txSOkaS1vpHzNodc2x7Hsca81St9aFmW5XPU233sNFM2Ln5p8Vzldxz/fLpHvtl2w5h3DfWJn3+anp9Kt6nfLu6pUqGcM416HlRr/llXNeLifz6dxoAp580X3zxxblPotO/099NF3nRi14Ufvazn2XbzfnJT36SBdvTGFAD0L5RvuHBdOl0OmGmTEh1O5NS0BngSMxuG1hqW7xPdXo7rY997GPhf/7P/xmuueaa8Id/+Idh48aN81cDP/7447PfRM9JX0+v/v3mN785C6bTK4WnFypLL1wGAAAAM/Wb6uOOOy7ccccd4bTTTsu+wn3ooYeGiy66aP7iZTfffHN2RfA56ZW7v/jFL4a3vvWt4eCDD87uU50G2G9729uarQkAAABMwoXKTj755OxfkUsuuWTRc+lXw7/97W/HZAUAAADT8/VvAAAAYBtBNQAAAEQSVDOxV9/N3T6mx/OL9gmzaRzqPQ5laFIbt0xLZmwMj6umbiEyaPu2dXjG6RZkTSu/vVRSciuyZtumzdttRefb1u0Nm75dVwMFjbv1WfG5RVu3uYtPu+tx3e2T+NtG1a1Hv+M4STNR3b7U1FzSZh8auqTw4dQQVDMV2r4nNAAAQBFBdYNm9R52AIyXWbv18ixr8li7N/SUMP5h6ATVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQ3YIkSbY/Dl2PkyR0vZS9ltu2+8UxkitzjyJ217OxfMcsnbrpt57vgr5Ueb8eaeS3WfxC0bZlfTbfd9ppkfwYq7ZdvzLl2qf1o9juuNz2Wv7FmDolDR2LQbtAvs83l26jSspS1r8G6XOVxvaC58d33eleR3ts02P77c/l/zuK8ZfbJyafCs+X5V+n/nX7X9nWbXevXnNCGNP1t++cWTIfJFXbOX1cWqR2W6uptTNmnDWZVpXt6pZrkHpUPT/pNT9UX8uLExjX9WJcCKphxpgTmQYWdwBoea3VwJUJqmHGdDrFj3PbhMUv9Np2UhTXacIrNSRaSVtOs5mbBzqTO2dPm0mp42SUsl3T0AbTUIdxJqgGAACASIJqAAAAiCSoBgAAgEiCagAAAIgkqAYAAIBIgmom9jL7UfnP6P2kxuH2Q6MvwfjfE3UMDhML75E8wmPSVt7T3M+i7sNe4Z7Y0eVp8H64jeU7qn5V936+DRQ0Zizn72c8WBkW3j66SWX3uO67fc17Ng9Sj37pT9Jc1OvezZW2b6oMk9RgNe6fPS0E1UyFaRycAADA+BNUN2jWbnUJAEzPucek3DeZEg4jDJ2gGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqAQAAIJKgGgAAACIJqluQdD9O8o+Trle3/V283zjJlbn3Rs3n2914A6XTSDK102893+5Gr5FXk+Xq1dcHLWOtMjScRXe/a/sYVi1H2etJjTZps05lx2LQrHvNl6M8Tn37fNm2RWMmaXcs1CnfuKgyx/brb+3UuHueqJZDzLHtlXadeapOtnX7R/k8FVo1DvNAU/mWzQf98smPhfzJZdExSialTaqcf8akVTGxpJVz1aT1/p4vUzKx50GTRlANwOSx0EOczmQ0XGdSCjoDHInZbYNJfCN2VATVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVRBvdPSGT4vsyzr/eZ98wm8ah3uNQhkG1fd/tYd+6oql7wU+bwe7w2WT7tn2H5elTes/monsB19i/dnkqtnbTY79vei11gLI61L+b7+AFzadQ9VjU3aNPWi12rqr3sC7evt79n/PVqHkv8wFeHSd1+0Ur9y+fnOZq5f7Z405QzVQQGwAAAKMgqG7UrN4aHgAYhU6Dpx4d5zHTwekoDJ2gGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqAQAAIJKguuV7Ji+6f3L3a2XbjokqZWyj6E21R9LyDeZ7pd96vgv6UuX9urbufTwXv1C0bb4M/fdJhtDB++VRXL6C53o8HrayvJM+9eh3jGMOQ0w7FLbtgH2ge//8cRqfybOsimX9a5Ca5NqhV0IN9IdhKJtbFj5fWI/HnmyjjjHzb0w/rXIYS/tcjQaoW8Y689So+kk7+RbPRbXTKdm7av0W9YeS87bWj0sLCQ06jmP6SpWxU7dYg9QjN+f13a44v7i1vPgxiwmqYcaYFJkGw3iTBgBmmZW2OkE1zJhOp/hxbpuw+IVe206K4jpNeKWGRCtpS6ZIZ3Ln7GkzKXWcjFK2axraYBrqMM4E1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQDQAAAJEE1TRyE/phmrs9be7m9hXLNau3th2Heo9BERptxzb6/7CP0zj0i7E/zgM0UjKmx2ea7/FdVrOicdvmuK7a1E0fkr7ptdavyl6vl3ETxyI/ltvbp2daPR43IRmkbWvWcZB69CvbJE1F+fausn0zletOZ5Laq+2xNY4E1UyFaT5JBAAAxpegukEdd1UHACb03KMTnMhMBYcRhk5QDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVANAAAAkQTVAAAAEElQ3YLcjdoX3LQ9dzflhX83dKP4NvW6mX0b94luKsXWb2GdjCbfJDKvJstVVobu59pqj1wejSTYnfboxmRZ1v1e79cmbdaou73ayKdXvcbpNvX1xuLijQeqS1Jhrl709xg1XpeFa2fhNiX1TVqsY8zcFnNsK9W9bK6ok1/dtiqdp5KR95N28u163FDGhWtoRP2yzUrWxdZPi5IW2rnBUtdqy4bSqpNmlbxizwEGyWdc14txIagGYOKMUyANE2VC7mHsntnjY0K6TKtmtQ0E0tUJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqAQAAIJKgGgAAACIJqgEAACCSoJqJu0/sXLZJVwGSiuWa1fvtjUO9x6EMg6raz5pIfxgm/4iMd7sM2kfaOj7TfI/vsroVvZ57quG2qZrcUA9JV2bd62jr2VbIKr+uN1G24vOE/nvkZvrBcu+uT9N9q2ba+e3rtXNba98kTUX5NqjS4A3l2z1eJ6rFFmtuZI0nQTXTYRpHJwAAMPYE1Q3qNJkYAEDZuUeDJx8dZzLTwQkpDJ2gGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqW5C7p9yC+8st/ru9exg2pUoZ2yh6U+3RdrP2Sr/1wxl578Iq95ssSq/w/q497hVelE5b/TtX1pr3KC+612SuzGF0yo5pv+PY736aMfeljbrXbmF/qZ11n7zG4zgtlAx4n85B7kNaaWwv6g9hLOXXyh7b9Nh+4XPt3FO+6fspl+fTM/+Ie3PXzS92+9bX32rT/9jmW9aPquaT7w/JyO5FXlSegdJp8Bw55pi1cTvqQepR/Z7Vve5JPth51biuF+NCUA2zxqTIFLC4l7TPkI4DANPLWlKdoBpm+P6Vve5vWnSv0ibvhToKxXWa8EoNiVbSlkyRCRnQs3DP7Emp42SUsl3T0AbTUIdxJqgGAACASIJqAAAAiCSoBgAAgEiCagAAAIgkqAYAAABBNQAAAAyXT6oBAAAgkqCaaMmI7gifFGTc/UwyhmUetXGo9ziUocm+10Z9ivp2m6bhmIzzcU76zkZVyjHQ7jOprM0LX+0+3o0XKBnJse47lyTt5Fs2f1XJqjuJQcfPovQijsUw26d2erm0q+Rf/rhSXjWPS9+uOEGTXNXzzDrbtJHvOEtaGlvjQlDNVJikiRkAAJgeguoGdTqdJpMDACg592iugTrBecxUcBhh6ATVAAAAEElQDQAAAJEE1QAAABBJUA0AAACRBNUAAAAQSVDdgvx9FvPPd9/fb9vfxdtOQn16bdNYvg21SNu32+qVfNt3+VrYl2rs2GAZSu4fPoRO3e59TQdOrpFyFL/efW/dpM9rC/Zrpng9ytSdT9LqfZuTMZ0868w3hZsm7d6Td+HT43o3wvzx7VWX/veXnnu9jSrG9L+otajC+lKebI0+2eA9iKu8Pux7NTeXb4UTo7ppJvXX2MLtFjxRPM0M8cAMkkyDzRxzzlSlneqO60Havuq8M2i79VpLxnS5mOyg+qyzzgr77bdf2HHHHcORRx4ZLrvsskr7ffKTn8xuO/Wa17wmJlsAoAInP0z67Zbc3mt8TEiXadWstsG4vvE6FUH1eeedF0455ZRw+umnhyuuuCIccsgh4Zhjjgm333573/1uvPHG8Md//MfhJS95ySDlBQAAgMkNqs8888xw0kknhRNPPDEccMAB4eyzzw4rV64M55xzTs99tmzZEl73uteF9773veGpT31qaR6bNm0KGzZsyP0DAACAiQ6qN2/eHC6//PJw9NFHb09gyZLs70svvbTnfn/2Z38W9thjj/CGN7yhUj5nnHFGWL169fy/tWvX1ikmAAAAjF9Qfeedd2afOq9Zsyb3fPr3unXrCvf5xje+Ef7hH/4hfOxjH6ucz6mnnhruu++++X+33HJLnWICAADAUCxrM/H7778/vP71r88C6t13373yfitWrMj+AQAAwNQE1WlgvHTp0rB+/frc8+nfe+6556Ltf/7zn2cXKDv22GPnn9u6deu2jJctC9ddd1142tOeFl96AAAAmJSvfy9fvjwcdthh4eKLL84FyenfRx111KLt999//3D11VeHK6+8cv7fq1/96vCyl70se+y30gAAAMzU17/T22mdcMIJ4fDDDw9HHHFE+PCHPxw2btyYXQ08dfzxx4e99947u9hYeh/rAw88MLf/rrvumv134fMAAAAw9UH1cccdF+64445w2mmnZRcnO/TQQ8NFF100f/Gym2++ObsiONMvCaO5I3xScEP6pOKN6t3DfnSSfgdmQuT6WQu9KZmRMTxJBmmjQbt8W2NmCoZidN2KXq+6fkSVp/J2zWbcN7Uea+co2n7RNrnHg5cun95g+0fl31JbL0q7QuMO0s8H27f3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o4EAGHSttZZUJqiGGdbrt3hFv6ub9GsGFNdpwis1JFoJpsiEDOhZ+H33pNRxMkrZrmlog2mowzgTVAMAAEAkQTUAAABEElQDAABAJEE1AAAARBJUAwAAQCRBNQAAAAwzqD7rrLPCfvvtF3bcccdw5JFHhssuu6znth/72MfCS17ykrDbbrtl/44++ui+2wMAAMDUBtXnnXdeOOWUU8Lpp58errjiinDIIYeEY445Jtx+++2F219yySXhta99bfjKV74SLr300rB27drw8pe/PNx6661NlB8AAAAmJ6g+88wzw0knnRROPPHEcMABB4Szzz47rFy5MpxzzjmF2/+v//W/wh/90R+FQw89NOy///7h4x//eNi6dWu4+OKLe+axadOmsGHDhtw/AAAAmOigevPmzeHyyy/PvsI9n8CSJdnf6afQVTz44IPhkUceCY9//ON7bnPGGWeE1atXz/9LP90GAACAiQ6q77zzzrBly5awZs2a3PPp3+vWrauUxtve9raw11575QLzhU499dRw3333zf+75ZZb6hQTAAAAhmJZGKIPfOAD4ZOf/GT2O+v0Ime9rFixIvsHAAAAUxNU77777mHp0qVh/fr1uefTv/fcc8+++/71X/91FlT/+7//ezj44IPjSstYSUaW77ack64C5B7323dUhR6xcaj2NLR90lWJpOX0hzmWaKddBk2nre4wDWMxts2TIY+7qmk3X4I+KbZV3ZK61m3mJsZh/txg+MciJv+4tCtsX+FxpX3rH8g+LxW/OI5TVL4Nau4wzHzHWNJVm2k8/6j19e/ly5eHww47LHeRsbmLjh111FE99/vgBz8Y3ve+94WLLrooHH744WFadUJn1EWYYdM3OAGgTKfBUw/nMVPC6SiM/9e/09tpnXDCCVlwfMQRR4QPf/jDYePGjdnVwFPHH3982HvvvbOLjaX+8i//Mpx22mnhE5/4RHZv67nfXu+8887ZPwAAAJiZoPq4444Ld9xxRxYopwFyequs9BPouYuX3XzzzdkVwed89KMfza4a/tu//du5dNL7XL/nPe8J06jXVzWSRV99qP8VnFGoUsYmv5KSNJxm21+p7ZV861/T6f4qctJw2QuOdNG2ZV8JG+grYxXlU+2dR3Gd+tdzlF+1Kss7N5cs2Ljf19Rj6lR1l3zaRf1h0AYt7vPJJH39uGTcJi1/1TRp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ghckL3zhC+dff/TRR5MDDzwwOfroo5Pvf//72Vjcfffdk1NPPXV+m+uvvz5ZuXJlcsopp2Tj4r/9t/+WjZOLLrpofhvrFpPkc5/7XHLBBRckP/nJT5Lrrrsuecc73pHN9elYShk30N9ll12W7LfffsnBBx+cvPnNb55/3thpjqC6AUcccUTypje9af7vLVu2JHvttVdyxhlnNJE8jLWFQfXWrVuTPffcM/mrv/qr+efuvffeZMWKFVlgnEpP9NP9vvvd785v84UvfCHpdDrJrbfemv39kY98JNltt92STZs2zW/ztre9LXnWs541//fv/M7vJK961aty5TnyyCOTP/iDP2ipttCc22+/PRsHX/3qV+fHSRoofOpTn5rf5pprrsm2ufTSS7O/0yB6yZIlybp16+a3+ehHP5qsWrVqfqz86Z/+afKc5zwnl9dxxx2XBfVzrFtMunR9+PjHP27cQIn7778/ecYznpF86UtfSl760pfOB9XWnGb5+veANm/eHC6//PLs661zlixZkv196aWXDpo8TJwbbrghrFu3LjcmVq9enf0sYm5MpP9Nv/J9+OGHz2+Tbp+One985zvz2/zKr/xKWL58+fw2xxxzTPZ12XvuuWd+m+585rYx9pgE9913X/bfxz/+8dl/07XkkUceyfXp9KcN++67b27spD9zWLNmTa7Pb9iwIfzoRz+qNC6sW0yyLVu2hE9+8pNh48aN2dfAjRvoL/1JUfqToYXrgrHTrGUNpzdz7rzzzmyC7z7BSaV/X3vttSMrF4xKGlCnisbE3Gvpf9PfgnZbtmxZFlx0b/OUpzxlURpzr+22227Zf/vlA+Nq69at2e/aXvSiF4UDDzwwey7tt+mbSOkbTv3GTlGfn3ut3zZp4P3QQw9lb0pZt5g0V199dRZEp7+fTq838NnPfjYccMAB4corrzRuoIf0DagrrrgifPe73130mjWnWYJqABjBJwc//OEPwze+8Q1tDxU861nPygLo9Bsen/70p8MJJ5wQvvrVr2o76OGWW24Jb37zm8OXvvSl7GKutMvXvwe0++67h6VLly66Omv695577jlo8jBx5vp9vzGR/vf222/PvZ5evTi9Inj3NkVpdOfRaxtjj3F28sknh89//vPhK1/5Sthnn33mn0/7bfrV7Hvvvbfv2IkdF+lVk9Or8Vu3mETptzjSK9kfdthh2ZX0DznkkPC3f/u3xg30kH69Oz3XSu8EkX4bMP2XvhH1d3/3d9nj9BtM1pzmCKobmOTTCf7iiy/Ofa0v/Tv9mhLMmvQr2+lJffeYSL92mv5Wem5MpP9NA4d0wp/z5S9/ORs76W+v57ZJb92V/sZ0Tvpua/ppRfrV77ltuvOZ28bYYxyl1/VLA+r0a6tpf1/484Z0Ldlhhx1yfTq9hkB6C63usZN+Dbb7Tam0z6cBc/pV2CrjwrrFNEjXi02bNhk30MOv/uqvZutF+g2PuX/ptWzS25nOPbbmNKjhC5/NpPTWJOmVjc8999zsqsa///u/n91Sq/vqrDBtV5JMb+eT/kunkTPPPDN7fNNNN83fUisdA//6r/+aXHXVVclv/MZvFN5S67nPfW7yne98J/nGN76RXZmy+5Za6VUp01tqvf71r89um5KOs/Q2QQtvqbVs2bLkr//6r7OrJJ9++uluqcXY+sM//MPsVnOXXHJJ8stf/nL+34MPPpi7vUl6m60vf/nL2S21jjrqqOzfwltqvfzlL89uy5XeJuuJT3xi4S21/uRP/iQbF2eddVbhLbWsW0yKt7/97dlV8m+44YZsTUn/Tu8W8W//9m/Z68YNVNN99W9jp1mC6oak9wFNT4TS+1WntypJ770L0+orX/lKFkwv/HfCCSfM31br3e9+dxYUpyfuv/qrv5rdW7TbXXfdlQXRO++8c3Y7oBNPPDEL1rul97h+8YtfnKWx9957Z8H6Qv/8z/+cPPOZz8zGXnobofRepjCOisZM+i+9d/Wc9I2nP/qjP8puF5QGxr/5m7+ZBd7dbrzxxuQVr3hFdt/29B7V//W//tfkkUceWTRGDz300GxcPPWpT83lMce6xaT43d/93eTJT35y1p/TN5HSNWUuoE4ZNxAXVBs7zemk/9fkJ98AAAAwK/ymGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAIgmqAQAAIJKgGgAAACIJqgEAACCSoBoAAAAiCaoBAAAgkqAaAAAAQpz/DxSwp3EX8nMOAAAAAElFTkSuQmCC", + "image/png": "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AAAAiCSoBgAAgEiCagAAAIgkqAYAAIBIgmoAAACIJKhuQf4+i/nnu+/vt+3v4m0noT69tmks34ZapO3bbfVKvu27fC0cSzV2bLAMJfcPH8Kgbve+pgMn10g5il/vvrdu0ue1Bfs1U7weZerOJ2n1vs3JmC6eddabwk2Tdu/Ju/Dpcb0bYb5/e9Wl//2l515vo4ox4y/qWFTh+FKebI0x2eA9iKu8Pux7NTeXb4UTo7ppJvWPsYXbLXiieJkZYscMkkyDzRxzzlSlnerO60Havuq6M2i79TqWjOnhYrKD6rPOOivst99+YccddwxHHnlkuOyyyyrt98lPfjK77dRrXvOamGwBgAqc/DDpt1tye6/xoSdmtw3G9Y3XqQiqzzvvvHDKKaeE008/PVxxxRXhkEMOCcccc0y4/fbb++534403hj/+4z8OL3nJSwYpLwAAAExuUH3mmWeGk046KZx44onhgAMOCGeffXZYuXJlOOecc3rus2XLlvC6170uvPe97w1PfepTS/PYtGlT2LBhQ+4fAAAATHRQvXnz5nD55ZeHo48+ensCS5Zkf1966aU99/uzP/uzsMcee4Q3vOENlfI544wzwurVq+f/rV27tk4xAQAAYPyC6jvvvDP71HnNmjW559O/161bV7jPN77xjfAP//AP4WMf+1jlfE499dRw3333zf+75ZZb6hQTAAAAhmJZm4nff//94fWvf30WUO++++6V91uxYkX2DwAAAKYmqE4D46VLl4b169fnnk//3nPPPRdt//Of/zy7QNmxxx47/9zWrVu3ZbxsWbjuuuvC0572tPjSAwAAwKR8/Xv58uXhsMMOCxdffHEuSE7/PuqooxZtv//++4err746XHnllfP/Xv3qV4eXvexl2WO/lQYAAGCmvv6d3k7rhBNOCIcffng44ogjwoc//OGwcePG7GrgqeOPPz7svffe2cXG0vtYH3jggbn9d9111+y/C58HAACAqQ+qjzvuuHDHHXeE0047Lbs42aGHHhouuuii+YuX3XzzzdkVwZl+SRjNHeGTghvSJxVvVO8e9qOT9OuYCZEbZy2MpmRG5vAkGaSNBh3ybc2ZKZiK0XUrer3q8SOqPJW3azbjvqn1OHaOou0XbZN7PHjp8ukNtn9U/i219aK0KzTuION8sH177zBJS1HdNmhqLcmnM0kt1n8sTOP5R9SF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", "text/plain": [ "
" ] @@ -675,7 +697,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 336, "id": "f23a83cc", "metadata": {}, "outputs": [], @@ -695,7 +717,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 337, "id": "23676744", "metadata": {}, "outputs": [ @@ -711,7 +733,7 @@ " [0, 0, 0, 0, 0, 0]], shape=(41168, 6))" ] }, - "execution_count": 12, + "execution_count": 337, "metadata": {}, "output_type": "execute_result" } @@ -722,13 +744,13 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 338, "id": "6c69afc5", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAK9CAYAAABYVS0qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAA2KVJREFUeJzs3QeYE8XfB/Dv5no/yhV67x0UBAsqKmLH7l8FexexotJExYJiBwsKFuwIvCh2FATpvUnvcHAHx/WStu8zk7uQXE1yKbvJ9/MYySVbZmdmN/vbnZ1RVFVVQUREREREREQBZwh0AoiIiIiIiIjIhkE6ERERERERkUYwSCciIiIiIiLSCAbpRERERERERBrBIJ2IiIiIiIhIIxikExEREREREWkEg3QiIiIiIiIijWCQTkRERERERKQRDNKJiIiIiIiINIJBOhEREREREZFGMEgnIqKQtXfvXjz00ENo3749YmNj5atz58548MEHsXHjRoSali1bQlEU+ysuLg59+/bF559/HuikERERhQxFVVU10IkgIiLyt59++gk33HADwsPDcfPNN6NHjx4wGAzYtm0bZs+ejf3798sgvkWLFiEVpNerVw+PP/64/DsjIwMff/wxduzYgY8++gh33313oJNIREQU9BikExFRyNm9e7cMyps3b44FCxagUaNGTt+bzWZMnToVQ4cORbNmzRBKQXrXrl3lBYxyWVlZaN26tcyHrVu3+jU9hYWF8m6+XlitVhiNRkRHRwc6KUREpGNs7k5ERCFn0qRJMgCcMWNGpQBdEHfXR4wYUSlA/+uvv3D22WfLwDE5ORlXXnkl/vvvP6dpnnvuOdlUfNeuXbjtttvkdElJSbj99ttRVFRU6WLACy+8gDZt2iAqKkoGyc8++yxKS0srBX9iuY0bN5ZN8s877zwZMIvpxToc7dmzB9dddx3q168vpz3jjDMwf/58j/MqJSUFHTt2lBc2KqbprbfeQpcuXWRQmpaWhnvvvRcnT570KO2ffvqpzLdFixbhgQceQGpqKpo2bWr//pdffrHnfUJCAi699FJs2bLFaV1Hjx6V+SzmE/kpylaU0b59++zTrF69GoMHD0bDhg0RExODVq1a4Y477nBajqgbojWBKH+xnA4dOuD1119HxcaHIr3icYkvv/xS5oOY9tdff5XfffPNN+jTp49Ma2JiIrp164a3337b43IgIqLQER7oBBAREfmbuFPctm1b9OvXz+V5/vzzTwwZMkTeVRZBZ3FxMd59912ceeaZWLt2rQw6HV1//fUyAHz55Zfl96LZuAg8X331Vfs0d911Fz777DNce+21MihcsWKFnF4E/nPmzLFP98wzz8gLC5dffrkMMDds2CD/LSkpcVrnsWPHMGDAAHkxQFxkaNCggVz+FVdcgVmzZsmWAe4SFxIOHTokm8E7EgG5CKxFUCzWJR4NeO+997Bu3Tr8+++/iIiIcCvt5USALi4MjBs3TgbLwhdffIHhw4fL+UT+ie17//33cdZZZ8n1lef9NddcIwP3hx9+WH6WmZmJP/74AwcOHLD/fdFFF8nlP/300/ICigjgxeMN5UQgLvLr77//xp133omePXvit99+w5NPPonDhw/jzTffrHTh5rvvvpPBugj8xXrEOm+66SYMGjTIXt6iTEW+PPLII26XARERhRjxTDoREVGoyM3NFbdD1auuuqrSdydPnlSzsrLsr6KiIvt3PXv2VFNTU9UTJ07YP9uwYYNqMBjUYcOG2T8bP368XP4dd9zhtOyhQ4eqDRo0sP+9fv16Od1dd93lNN0TTzwhP//rr7/k30ePHlXDw8Mrpfe5556T0w0fPtz+2ciRI+Vnixcvtn+Wn5+vtmrVSm3ZsqVqsVhqzJsWLVqoF110kX37N23apN56661ymQ8++KB9OrF88dmXX37pNP+vv/7q9Lk7aZ8xY4b87KyzzlLNZrNT+pOTk9W7777baRli2UlJSfbPRdmJ+V977bVqt2/OnDlymlWrVlU7zdy5c+U0L774otPn1157raooirpr1y77Z2I6Uf5btmxxmvaRRx5RExMTnbaDiIjIVWzuTkREISUvL0/+Gx8fX+m7c889V95lLX9NmTLF3oHa+vXrZfNs0Yy8XPfu3XHhhRfi559/rrSs++67z+lv0VT7xIkT9vWXz/PYY485TVfeaVt5E3XxzLy4my3uMDsSd4srEssUvbGLO8zlxHbec8898o6xK8+U//777/btF020xV1scbf8tddes0/z/fffyyb8YtuPHz9uf4nm3WJ94i60u2kvJzqnCwsLs/8t7krn5OTIO9OO6xLTiJYQ5esSTdcjIyOxcOHCSk3uy4k75+UtKUwmU5XTiDwUyxatAyqWi4jLRbN7RwMHDpQjAlRc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F3IP7kVCqW1fFq0GC07Yziml1dNlgC4sy1gm91ERoAtf/feVDNCFk998i50lZ5flpe3Ye+jQ8VNxSBDRVZDuiWeeeUZerSh/HSw70SIiIiIiIiLSmoA+k+6u9PR0HBN3dByIv0VzgZgYh7sxDkQv8OJFREREREREpHW6upPev39/LFhge3ai3B9//CE/JyIiIiIiItK7gAbpBQUFcig18SofYk28P3DggL2p+rBhw+zT33fffdizZw+eeuopbNu2DVOnTsV3332HRx8t63yFiIiIiIiISMcCGqSvXr0avXr1ki/hsccek+/HjRsn/87IyLAH7IIYfm3+/Pny7rkYX10Mxfbxxx8H9/BrREREREREFDIC+kz6ueeei5pGgPv000+rnGfdurKei4mIiIiIiIiCiK6eSSciIiIiIiIKZgzSiYiIiIiIiDSCQToRERERERGRRjBIJyIiIiIiItIIBulEREREREREGsEgnYiIiIiIiEgjGKQTERERERERaQSDdCIiIiIiIiKNYJBOREREREREpBEM0omIiIiIiIg0gkF6sFOhr0QqVb6t42Z4NxNUx4RVovhgHYEoRNUva1dqWHpN3/ktX/ya9apOlq/WeT7F62uv+lPF+7tmAMvA9Xlr31Tvl0Bdlqpq+XdK8Xir6rTamuZWPcgw599TL+wMftqf1ECsutb8rfqcRWs8K2cX6pZXtll1ax2K4+QuV3/Vg/MKd3iv8F073/VO2h3z0vX8UH2SL1o+9GsBg3SiAHI8QHr3xyO0MO/oVF1wxH3K+/saEYXe+Yn+6DHNRI4YpBMRERERERFpBIN0IiIiIiIiIo1gkE5ERERERESkEQzSiYiIiIiIiDSCQToRERERERGRRjBIJyIiIiIiItIIBulEREREREREGsEgnVyiqhXGG674d02fW099pvpi3GLHdXpp8dVtnv8WECB6TberHDfP1Trta8Ge58GeN6pO88CVY7ge8r+MT1OqWl1foxbyzOE3N1A8SoELeafWOc/rkDcela2fyqK2tPmgXrq8SFeOKcF+zqX19HmQblc3SQ21PPMiBumhSFGq/8q1BXgxMaQfLHct5LTzhS7Fi2Xmefkq/joRpUo5ry2BTU/19VAr+aT47LebmF91qFg6rT56TTeRaxikExEREREREWkEg3QiIiIiIiIijWCQTkRERERERKQRDNKJ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l/XVV1+t58+fr7dv35520oDIPfDAA/ov//Iv9X/8x3+YN03o++67z/P9LbfcooeGhvT999+vX3jhBf17v/d7+thjj9UjIyO1ad7//vfrNWvW6J/85Cf6Rz/6kT7uuOP05ZdfXvt+3759esmSJfojH/mI3rRpk/7Xf/1XPWvWLP21r32tNs2TTz6pi8WivvXWW/XPfvYzfeONN+re3l790ksvUeuwxtq1a/W3vvUtpx0///zz+gMf+IBeuXKlPnjwYG2aP/uzP9MrVqzQjzzyiH722Wf12Wefrc8999za95OTk/rEE0/UF154of7pT3/q9MHFixfrG264oTbNr3/9az04OKivv/56pz/84z/+o9M/Hnroodo0bKuQFf/5n/+p/+u//ktv2bJFb968WX/+8593xnfTjwz6DNDchg0b9KpVq/TJJ5+sr7322trn9Jt4EaRb6Mwzz9TXXHNN7e9SqaSXLVumb7755lTTBcRtZpBeLpf10qVL9d/93d/VPhseHtb9/f1OoG2YAMLM98wzz9SmefDBB7VSSr/55pvO3//0T/+kFyxYoMfGxmrTfPazn9UnnHBC7e8Pf/jD+pJLLvGk56yzztIf//jHY8ot0LkdO3Y47f8HP/hBrX+Y4OPee++tTfPzn//cmeapp55y/jZBeaFQ0Nu2batNc8cdd+h58+bV+shf/MVf6He9612edV122WXOQYIqtlXIMrNN+OY3v0mfAXwcOHBAH3/88frhhx/W559/fi1IZ1sTPy53t8z4+Lg899xzziW9VYVCwfn7qaeeSjVtQNJeffVV2bZtm6c/DA0NObeAVPuD+d9c4n766afXpjHTm37z9NNP16b57d/+benr66tNs3btWucy4b1799amca+nOg39Djbbt2+f8//ChQud/832Y2JiwtOWzS0cK1eu9PQZczvHkiVLPG19//798vLLLwfqD2yrkFWlUknuvvtuOXTokHPZO30GaM7cOmVujZq5PaDfxK8ngXUghF27djkbEPfOk2H+fuWVVyhLdBUToBuN+kP1O/O/uafWraenxwla3NMce+yxdcuofrdgwQLnf7/1ALYpl8vO/YHvec975MQTT3Q+M+3VHIwyB678+kyjtl79zm8aE8iPjIw4B7fYViFLXnrpJScoN/efm2c13HffffLOd75Tnn/+efoM0IA5mLVx40Z55pln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", + "image/png": "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TtHxmXj2WyxPbNMPP/wgt8kTYnldu3aVFxAefPBBmVZxZ1g0JRfNusWwZmLINdEqQHQqJ5rGi2Hl3El7dUSALoL8W2+9Fb1798aNN94om9OLYdVE53ribr4IqHfs2CEvCogLCOJihLg4IIaxExdhxDyCyAtxZ1sMRScCeHG3XFx4EOsov2gi7n6LvB89erR87EGUk7gQ83//93+yOX35nf2aiKH1srOz5XP0og6J59hFXREXBMqfbSciIqqWy/3AExERBRkxnNb999+vtm3bVo2OjlZjYmLUjh07qvfdd58cIq2iP//8Uz3zzDPldGKIrcsvv1zdunWr0zTlQ7CJIcwclQ8xtnfvXvtnJpNJnTBhghwiLSIiQm3WrJn6zDPPqCUlJU7ziqG8xo4dq6anp8t1n3/++ep///0nh3QTaXW0e/duOVyYGLZMbFPfvn3Vn376yaX8EEOwXXrppVV+9+mnn8r0i+0o99FHH6l9+vSRaUpISFC7deumPvXUU+qRI0fcTnt5/lQ3PNrff/+tDh48WA67JrarTZs26m233aauXr1afn/8+HE5TJwov7i4ODldv3791O+++86+jLVr16o33XST2rx5czUqKkoOqXfZZZfZl+E47Nujjz6qNm7cWJZLu3bt5NBuVqvVabqKQ9OVmzVrlhzKTiw/MjJSru/ee+9VMzIyXCgFIiIKdYr4X/UhPBEREWmRuPsuekh/8cUX5V1fPdFz2omIiHyNz6QTERFpnGhaX1H5s+wVO07TGj2nnYiIKBD4TDoREZHGffvtt/j000/lc9NimLAlS5bIZ8/Fs+DimWwt03PaiYiIAoFBOhERkcaJnsFFR2iTJk1CXl6evUM20Vxc6/ScdiIiokDgM+lEREREREREGsFn0omIiIiIiIg0gkE6ERERERERkUaE3DPpVqsVR44cQUJCAhRFCXRyiIiIiIiIKMipqor8/Hw0btwYBkPN98pDLkgXAXqzZs0CnQwiIiIiIiIKMQcPHkTTpk1rnCbkgnRxB708cxITEwOdHCIiIiIiIgpyeXl58mZxeTxak5AL0subuIsAnUE6ERERERER+Ysrj1yz4zgiIiIiIiIijWCQTkRERERERKQRDNKJiIiIiIiINIJBOhEREREREZFGMEgnIiIiIiIi0ggG6UREREREREQawSCdiIiIiIiISCMYpBMRERER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yD24Fwmltn1ZtBosOGE7p5RWT5cBurAsY5ncR0WALnz131cyQBdOfvMtdpacXZaXtmPvoUPHT8UhQURXQbonnnnmGXm1ovx1sOxEi4iIiIiIiEhrAvpMurvS09NxTNzRcSD+Fs0FYmIc7sY4EL3AixcRERERERGR1unqTnr//v2xYIHt2Ylyf/zxh/yciIiIiIiISO8CGqQXFBTIodTEq3yINfH+wIED9qbqw4YNs09/3333Yc+ePXjqqaewbds2TJ06Fd999x0efbSs8xUiIiIiIiIiHQtokL569Wr06tVLvoTHHntMvh83bpz8OyMjwx6wC2L4tfnz58u752J8dTEU28cffxzcw68RERERERFRyAjoM+nnnnsuahoB7tNPP61ynnXrynouJiIiIiIiIgoiunomnYiIiIiIiCiYMUgnIiIiIiIi0ggG6UREREREREQawSCdiIiIiIiISCMYpBMRERERERFpBIN0IiIiIiIiIo1gkE5ERERERESkEQzSiYiIiIiIiDSCQToRERERERGRRjBIJyIiIiIiItIIBunBToW+EqlU+baOm+HdTFAdE1aJ4oN1BKIQVb+sXalh6TV957d88WvWqzpZvlrn+RSvr73qTxXv75oBLAPX5619U71fAnVZqqrl3ynF462q02prmlv1IMOcf0+9sDP4aX9SA7HqWvO36nMWrfGsnF2oW17ZZtWtdSiOk7tc/VUPzivc4b3Cd+181ztpd8xL1/ND9Um+aPnQrwUM0okCyPEA6d0fj9DCvKOqTw9YL7xNwzEJEfns/ER/9JhmIkcM0omIiIiIiIg0gkE6ERERERERkUYwSCciIiIiIiLSCAbpRERERERERBrBIJ2IiIiIiIhIIxikExEREREREWkEg3QiIiIiIiIijWCQTi5R1QrjDVf8u6bPrac+U30xbrHjOr20+Oo2z38LCBC9pttVjpvnap32tWDP82DPG1WneeDKMVwP+V/GpylVra6vUQt55vCbGygepcCFvFPrnOd1yBuPytZPZVFb2nxQL11epCvHlGA/59J6+jxIt6ubpIZannkRg/RQpCjVf+XaAryYGNIPlrsWctr5QpfixTLzvHwVf52Iksb3ycCmp/p6qJV8Unz2201VYH65SK/5pNd0E7mGQToRERERERGRRjBIJyIiIiIiItIIBulEREREREREGsEgnYiIiIiIiEgjGKQTERERERERaQSDdCIiIiIiIiKNYJBOdefFsQzdXVKN467XlC4VUFRvDTHlOA58TZOVf1vNuO6aHcUq8MOcqLWlwQ95p9Y5G9QQGAK0io0q31DVvTGm1eoyyLEcqprECxnrzrHBlTGAq92Wqj73Vb3QSoWrMh2KDrdDGwuteQ7/5VXF38hK+5A7+4Cnv+sVzwmq+s11ZT5vCci+7I8yV/y7Xrm9iqbOSVzj3TzxRQ7X9nMaqPPSir+ZapX7dfBjkK5zzj+Mas07YI31WmsHPSUg46aqfk6hY/l5Ota0L3JKb4dAj/NODZ6cciuudKPW1HzY8Kz2Oc+leHXr3D+VC0wZur3Waq7tKR4sXPXHvqZoLd9Vnx1H6r5m12dSfJQK97e9+pR4NRcV3/3q1f347yHVw8m8kmDHC6Hu5KPvM8uxDqoer943wVzNZ9eucf3s05/n455fGHQMpD0/dvp7Pn1hkK5rQVpJ/XKVTPXCnVGtXuAgv9StELqaq9l9odYy8KyMvHdsIPJtfXe1qiq+3M9UcZ+LO43feHhx1Le0mKYgYdXmuYbCcyCfY5BOREREREREpBEM0nWBV6tIq1g3ibyOuxX55Q4l735qga8es6BA4/5FdcMgnYiIiIiIiEgjGKQTERERERERaQSDdCIiIiIiIiKNYJBOREREREREpBEM0omIiIiIiIg0gkE6ERERERERkUYwSCciIiIiIiLSCAbpRERERERERBrBIJ2IiIiIiIhIIxikExEREREREWkEg3QiIiIiIiIijWCQrgsKQo8a6AToRmBzKhTrJpF2dqva9n+Vh1Kd82UBsnJogVrNDl/pU5W/t/rivH9xb/MmBaGAQbquBWklVVzfLsXTPHBjHV4TiHWS78qA5enTfFJcmc+ggTJwIZ0eH6eCUbDsN0oI5V1t6/VnutxZV6DrmiL+Y2hGdaSF37kqqIHev0IAg3Qd8+ehX620turWrtb4merzLXF9WYrqrbtPahVv9frDrNb5Tpx7h23PC6HuJz811Wn/7l0V16nt2qN64TtXt1D1YLK6515Nx4bK6/Z8fa7N6aPa4JRuV97XtjjVxcmrOMa4vJYaE+D+LF6ezvOlupt2f/6mukCtfDz2LAWqh5ME8ogZgEDFoa6felvbfuW9PKq69rn6W15NjbW6caxx41Pt8Eb6qttyd+ug4sZvXeXzk9rS4+lkXpwxaDBI17sgrsOK134H6x78BPZquBpU66x8wUfL9JRW/2+Lx/tTVde1vETT1/YdT1brktC6Zprb63YsMFcvLWi6JPzMk7zwdv554yKgi8vw9R02nx+WHVegBPnvQvXbpjjs614/B6rqOOLlVTimWfXBdrh1MVezAnteEBRZ6EMM0kNRXX9Ag6SJizuPd9V8whkc+VErvW6mR7+kOtlYbzZDrdN+feoUSEs8TY1uHv1UNLYgrZ5xaeU3yykd1b2vcQEufOLqnKEgSLfa2/XZleWpGsxrjTYDJ/39RGgVg3Qqw13HXcwx/at7MOb/k4TqWiLwdMVTzLnQoATF3X9f/e7oYdu9nQuuHP/5O68RmquerBlBWrCawiCdgucuhTfTpdFNIj1jpdLtsaSu6Xdns3SeBT7H/AmyfcO7BeppJ43s3FHDdPu7oNd0OwhYX5XOK3baP3VbH9zHIJ2IiIiIiIhIIxikExEREREREWkEg3QiIiIiIiIijWCQTkRERERERKQRDNKJiIiIiIiINIJBOhEREREREZFGMEgnIiIiIiIi0ggG6UREREREREQawSCdiIiIiIiISCMYpBMRERERERFpBIN0IiIiIiIiIo1gkE5ERERERESkEQzSqe5UNXCrhupZulRAqSnZFb5THD6oPFtN39WcHsfl1ryO4KR4+F3lafWQY85prDnF7my9lqgu7ofVbL3DtGo1+69a5R/eLf8ajw01qS7N7hwjfVaVVW3ss3VNhlfzpw77mU/KSfXyHBo6Lla3D1T1ec0/pDWvxul71eV8qPFcwtPU+Cr7azyeqAEqfh+uTFV1+ouoof3Ppd83xeeb4Go5VvzNVJ3qtTbz1RcYpFMZrR0CtZYe7aZQK+nQI4+DMTvt/FhoJyXu1Vkl4Dmhp5yrjPu/98pZDxf7fFXep7bde2vwXWil+O3479/9y3ltqvd/sPRLc5uuBMWxOvDHPI+viCMUMEjXuVoO6fo+pqtaP7wFlp6LNhS2hzRQOxzvzEPvVJePh749WrrQwqEOy9EGb9Sbut3R9HruqP5fs3cCAKXGT/R4j1UJ6D7het12bunnwxQpvllHbctzq+74uJo512mNsye2mvqhv11SsxikU8gq/2GoOx6RiLS4LygBPzYQ+Zaimztm5DVKIA5QtYf02sM6rzUsEfcwSCciIiIiIiLSCAbpehasnSf4ZbuCNO/If3UrWPc/PWEZUEhRNbqfcT8k8hmrRvcv/v76HIN0XeCOQFrFuknkddytyC/NiLXYRDn08FGEYMX9i+qGQToRERERERGRRjBIJyIiIiIiItIIBulEREREREREGsEgnVyiVuwgoroOI6r63KHTC588eeW4Tq10ZKGVdIRKuj3hap32dzpIV3lT6djo3szemcab6/b0eOrytHXdHjd+e7ylimVXuzaP0qHquqOpqjfZk8HhXZlHDdxxQsvHo9rS5oO0Ox0qaipvT8vV08RokdbTV63q0+36EV8NsTzzHgbpIUipaYxNRfVtZxjsR0PHWHjay2nFi2XG8tUflplruaGVfKprOrSyHXrB/ArmfFJ0mm4iVzFIJyIiIiIiItIIBulEREREREREGsEgnYhIR+r0DDQRERERaR6DdCIiIiIiIiKNYJBOREREREREpBEM0omIiIiIiIg0gkE6aYrqxyE1XBptruo5K/ztuCBX0n9qeqWa91rifqp8MB5rFZ855rRW8849p7ZB24+d15S4wCdcCeixIfj54gjN7NbmscKtZXs1IawRruZ1zTnlx/MpX6/AaUx28gXVD9WFg+a5h0E6kQt40k7kTb7cobizEmnhNNqfF92DA/OL/Is1TtsYpOtKVSefrl5R1fcPpt9OuxUt5pGqg3W6dctFR3fA65I+LdYl95Pm6xLy7fK1Vr9U/yxFDfZ81Bet5V7N5wLeaynjjeO7GpDDbC23beu6Wap+aop/lq1UcT7racE6nl84rkKp4jNPluorqi5OHapPoKc5pPmNDSgG6UREFJT480+k1QCQtE7/j5TpMc1EpzBI1xWecgbq+Zuap2W5eJoHem7dUbtQPEEIjvL0x7N5REHb+ItCrtBD8deO3Md64h4G6eTB2Sl3MyJtYGdNRPqp21pJR6hgfruG+USkRQzSiYiIiIiIiDSCQTq5RNFg8yo7LaeNyMv1V9P7IulHsNUjXW+PntPuxW3ytAx1XfZeEuA8UGoqb5aPjvOg+nT7fIsUveaZ9zBIJyIiIiIiItIIBulEREREREREGsEgnYiIiIiIiEgjGKQTERERERERaQSDdCIiIiIiIiKNYJBOREREREREpBEM0nUhFIchUAOdAN0IbE6FYt0kb+KeXrfdqvb84z6qb77cQ7j3aYFazT5a6VOV+7K+OO9f3Nu8SUEoYJCuZ8E6hqAb21Xj2JxeWofXBGt56Yk3i4Dl6dN8cmk8eIMGysCFdHp8nApKQZIXgdiMQB1zaluvX9Ol6KeuKeI/hmZUR1r4nasKz4F8jkE6ERERERERkUYwSCcvUL03v5sX5lRP160CSo2zOn/pzrTVT1Z5OsflOq1DUxcofZeYmu4yOH1XZRJUF8tHI7W8QvlXauIYFDdcqtgI+3Y7lJcL81fMr5on925dcGsZTulU636ccmW7PaL6YZ/1NB1ebd/vn0ObT4rJ/YXWXF38d1Cp3DS7wvHOa/XarZ3T5Xk8PpeoqQ75bFeuacEOx1AfJaW6o5zPqOLXUlMnRQE6llezPDezxnly1c+/H66ureL5kpvnBkGCQXoQUYKq2YrW0lPVQcGVA4XvDyZabWgYCjSVH5pKTG1cCdjrvmxdHvrcpPPk+43nFxC0xtcXcRSfP2vthQUH6b5TS/jkj6vR5DPaq2+Br1Ke//6qCAUM0sklla9cqdrZcVy4k+X+Ir3YOkBX9JpuT7hap32djFDKc3cFe94E8EJftfXO0+Opv8pK9f9+5NayPUmHn+64+ZUHaXCr9Uwd16XbfPU077yfdtWr5Rrk51x6/Z2vId2ubpLHm67qNM+8iEG6rvjh8rFLl9UUv2yB95o3Vd38q+Yp/cVXDdL8fckz0GkP9Pqr4nn9dafrxJq/VtzYDwJ1nV+L9xf8sbe7u92qy/ukErC9RQnoHln9dnshr91Wt2b93t5Hneb0QhN5VxpcB77TNF8dW7T9SIr7+aNoLzBypejcONC5fhbo+sq8eRdaT7+C3jyP1kht06yAB+lTpkxBy5YtER0djX79+mHlypU1Tv/WW2+hQ4cOiImJQbNmzfDoo4+ipKTEb+klIiK94CkAEZEnHC+y6CmI1HOaiTQTpH/77bd47LHHMH78eKxduxY9evTA4MGDkZmZWeX0X331FZ5++mk5/X///YdPPvlELuPZZ59FaOAhx5vcG3KUeV8z5k9loRggBkc94HDEpBd671OBgqPQQ/HXjtzHeqKjIP2NN97A3Xffjdtvvx2dO3fGBx98gNjYWEyfPr3K6ZcuXYozzzwT//vf/+Td94suugg33XRTrXffiYiIiIiIiPQgYEG60WjEmjVrcMEFF5xKjMEg/162bFmV8wwYMEDOUx6U79mzBz///DMuueSSatdTWlqKvLw8p1fQqDSkk6vz1b4sX3Hp+q9f0qJq5KEpHVE9HqRGO7xZt3yYHzU+71ndNgRwvw4YL2yfrrNIc4kPbHpcG5hKg8drl8tR9WEaFc/TF+h66OHq/XOmEUTnAFqjtcOfr1o8WLW6oSH+++sH4QiQ48ePw2KxIC0tzelz8fe2bduqnEfcQRfznXXWWfJE1Ww247777quxufvLL7+MCRMmQN+0WIsVF94HgnfWryh1vX4V6HzwVCA6WPKnmuqqb8tM0WATRe3xb5l4n1L36UU9UQOZB54ez/2Uzkr546d1uj6xt1fuwRmtEvgyq5BnXjv+BfSQ4JuV+6ODPV+MM+7VJdZUP1yqO1r8rdBimvy/CZ7s+hXrq+LwdyidSwW84zh3LFy4EC+99BKmTp0qn2GfPXs25s+fjxdeeKHaeZ555hnk5ubaXwcPHvRrmomIiIiIiIg0fye9YcOGCAsLw7Fjx5w+F3+np6dXOc/YsWNx66234q677pJ/d+vWDYWFhbjnnnswevRo2Vy+oqioKPkiIiIiIiIi0rqA3UmPjIxEnz59sGDBAvtnVqtV/t2/f/8q5ykqKqoUiItAv8bnNImIiIiIiIh0ImB30gUx/Nrw4cNx2mmnoW/fvnIMdHFnXPT2LgwbNgxNmjSRz5ULl19+uewRvlevXnJM9V27dsm76+Lz8mCdiIiIiIiISK8CGqTfcMMNyMrKwrhx43D06FH07NkTv/76q70zuQMHDjjdOR8zZozsMED8e/jwYaSkpMgAfeLEiQHcCiIiIiIiIqIgCNKFhx56SL6q6yjOUXh4OMaPHy9fRERERERERMFGV727ExEREREREQUzBulEREREREREGsEgnUKW4taAAA4TKy5N5dqyqlXDSvxMDYry88YK614mii5z2h2qS98oPiwHRY91S1dqyBwP8y1Qg7Pot5hVv+Sde4tWQ7JkApJSh0JXKx7x/JEgJbBnLKqqnfMjLahbkXunwiguHohYcu5hkE5ERP6ln3NwIiIiIr9jkE5E5CeMTYlI27x3r6vSXV6qBfOL9En1QktDqoxBOhEREREREZFGMEjX+X04pZZ7c4qe7+J5K8Ea3nDH8qu+LNUAbJa7S3fcDjemdXq2znO17Qeeq1uqgkJNfTB4YRO9149DLcc/TVzpV/20FG9vq+M+6+Isio4PzAGp477l+jFSrXPfLO6vs8aFVPGRoqm8dVf1WeePrXHjN1f1Zdoqp8Mr9cXp2eial6etuqOt1Lib164+k07uYZBORERBiicORER1vomgw0OpFi7LEtUFg3Rd4SHHm9hBqDd5dmdDG3c3yXuCozx5bCC94CFU23zSykuDha7DGJ4CgPXEPQzSiYiIiIiIiDSCQToRERERERGRRjBIJyIiIiIiItIIBulEREREREREGsEgXccC2wGDe8OF+ZbrQ264vMQ6Dyeh1+4x9Jpub9QV79cj1wR7ntdFKOZNTfXSV+tx5b07y/OlatbjyyGA3Fq2J0Od+W54q0DxrDhUDycJcN3TBFW7a3SlMgT9OZfW0+e7dHtetCpCHYN0IiIiIiIiIo1gkB6KlMAN/8HrYjqmwWFffCfA26p6qUzcKbM6lK9PhhkiP+6TWluOl9eulWOXUzo8SJO3t0Mj2eIzWil3rdNrPuk02USuYpBOREREREREpBEM0omIiIiIiIg0gkE6ERERERERkUYwSCciIiIiIiLSCAbpOqWtbpr0OXSGUuNqVR+kVtVp+fquLxelhrE5au+MTF+5VHFYP0+HJVEDvd01Jlyt4TPVhbJVa93O2j9VfXxscH/dbh1NfFa82thf6jy8pTY2w0dDvqm+3x39dNyveGyv+7Cm5QtyZ1o3JvZBXvnsWO3idjkfmVT99uHmy+EVfUqjQyuqVZdbzaMbqn6tJxXrq+p4bqDb+uA+BulBRAmm3j01tg9WHVSomtgQf5acxmpJwGkqPzSVGP1kg9YOfbo/WGqUEjR5qfp4ud7bIVRfHZTcyIKaLvZqb9d3TpGqaD29wcwXua3F40tg0+Tp76+C0MAgnYiIiIiIiEgjGKQTERERERERaQSDdF2ppVlKlS2yFW23tHFRXZLu9GyLxtrIOCZHY0lzk3efCXaXFvNODZIUaWI7VH88W+6FFfqUF9NUhzb+1TUfVoMhi72aOMdluJ/fasW2znXk+Ix4zVunei1bau9XRKvVxDGvqioHX/WroIWdovb+QvRDdasfHHd5cw91/K3SY07XqEKe1/ocPNkxSCcioiDFUwAiIiLSHwbpuqLF+4X65c6NCp91gBM0gqdNANVFsJR9sGwHBTv9d3xIwVDovBxKrmA9cQ+DdCIiIiIiIiKNYJBOREREREREpBEM0nXMmx1gaIo/tisQeRekxaUr3iyDYN3/dIVlQCEkYMccVdP7IY8CFNw0WsM1mqxgwiCdiIiIiIiISCMYpOuAN4YxIfIFd7qvYT3WPpaRNrAcyB+dhGmv+7FQxf09OHEPo7phkE5ERERERESkEQzSdSAkh/8KwU3W4zV4d9YdkvVYZ1hGeiyHmqdlmeqcD59DD4X7t/qo/1WnUVFDr7y0Q/XBMvRQF/VBRWhgkK5jqgbHyvQKf2xXIPIuWMtLT7xZBCxPF3mWT4pL82mhDBRdpFIrlGDZb0LqN6S29foxXYobaw9wXbMdw0IlnCDf0egxU6PJCiYM0omIiIiIiIg0gkE6ERERERERkUYwSCdN8WfDsIrPe9U4bY0pU918fFB14b2eH4n0/nbUvkTf553q19Zhem1H5mouqTp7lpCCudZqhsvVztXfHFWnz3N7e/8Lsv1Zran8/bGtleuF4sfztSArTb9TfFBuro5Iwt8I9zBIJyIiv/LlDzVPAoiIiFzBSx5axiCdiMhP+HNIRNqmhFjP6lrC/CJ94r7uGwzSdc1/p/xqxXVV18auqs+dPvNBmh2X78PhatyilXS4S6fJ9koZ+bqeVpsO/61Kd/SwH6k+ntdHeaC6cgz3xarruj3u/PZ4S62/a3VMh5fTXm3Z+pFHKXAh3VVO4a/N1UC+epw2H6Td5XrmynS+Oi5ohdbT50G6XS7+at7XZd2hgkF6SFICNj+vtumZPssuWEZ88sOYcnWYlz+mgRHUlduLuaGVfArcb29oYn4FdT4F9487EYN0IiIiIiIiIq1gkK5zSk1N0nV+F9sptV5LuqKp+4F16mVTX8VZexOmOmyP77KiDjVCw+Xj3rHAxxviSktID8tBw0UAtQ6JU2uZubaRK9zPTdWFXnzdW6qnZep/da9Fqq62ybWRTGpaRnn1dLXHZ03v1z7YBMWfK6thHbW1JnYsP1+VpfP6TvF8bY5p9p6qD7la/oXxnarKxql+1NbCQfuDGmkGg3QKWXU5SSaiqnCnIvIn14c+4tlw0NBgM29N1i4+00w6xyCdiIiIiIiISCMYpBMRERERERFpBIN0IiIiIiIiIo1gkE42fHbHA648F6a9Z8fqgrVEA/nhnX67qAwPfaHB1Se3tc9XadTDtns3qdz1iQKL+2DNGKRTaP24h/Q2USApGuzsR3uUEEu/3rc3ALgf6YRzOfH4F1i6zn/dpl2v6Q78JigVjx9QgqMuu4lBOhEREREREZFGMEgnIiIiIiIi0ggG6UREREREREQawSCdiIiIiIiISCMYpBMRERERERFpBIN00sAgCoEZhEFRfZEmpfZlqtWM/6TZsaAC1JOmWnManD7RbN6dolZIo1ppm7S/DbWnU63hM1e279Q0qlv54bgfwc813mmHrnUKV78JVlXtqpX3BTcX4GlaAji3t7iVdz6kVMqPCsc7b5Wb6puJ3TveBG6ZtgW7tlxVVbyf/9Xkqk9roQ5+36vm7XRX9/viee47zanUtEr/lkHFfUd1PDfQbX1wH4N0stHakAYa2werzh33gg5f8WfJaayWBJym8kNTiXH3hD5wy9baoU/3B0uNUoImL1UfL1fR/gUE1TvHA+3t+s4pcoixq/iWfMsXua3B44uqz1xWEBoYpBMRERERERFpBIN0IiIiIiIiIo1gkE5ERERERESkEQzSiYiIiIiIiDSCQbru1dzrQ6h0ruB6j9E6VE1Plr7dFv/nlC7LRldUrx8YvNExlL/qsTbqV11SEcAtUPXb63jg8lq7fcfXvGwXew4PcAeRDivxgdrSrfoo0f7ex2vsztup/BS//B55d/uVKjrhq7U3c3d4NbmOC9P4sbOW8lLdOg5ofFsDjEE6hayKPafWOK0vE0IUNLT1g6ut1BB5n6uBsF8CZvKPgAxJ4Y1LO/6mzVQRuYpBOhEREREREZFGMEgnIiIiIiIi0ggG6UREREREREQawSCdiIiIiIiISCMYpOuYEtA+MVSXP1er6Z28+kX7oQfkWtZRpyRUlw5d9GGii0R6zqlg1bpVgLpXEgp4L8te4PUkBHqbXNxHKs6l6mX73FfVb5iq5e3z+rFJ1fSxUPVbnmugbDXE7XO7mhdW1wUgeGl021w+3dZo+nWAQboOeL1X1oD0DFq+7sCtmrxfb9wpTvYu7KW8civT3dvhWEba4HI5BPJYXiUlhC9c+4gPy1hrtSd0BWPF9QPNHf8q0nr6SOsYpBMRERERERFpBIN0IiIiIiIiIo1gkE5ERERERESkEQzSdYpPMPn3+UXHJ4tq6kLItUWqVT576vg+VMq3pmdvnb6r8tGuqvNOr0+o6WMLauNQh320QcGRT/rtXEupqWD1Vjiae6bV/QyspQvUOqQlkP3B+bDjOy8vWg3Ec8cOBVN5/WpA0uHfXNDafhtg7maHWt0ZrRI8x/YgwSCdyCU8QhF5S42BXp1xXyUiIqoNL3doG4N0IiI/YfhIRKFy2h6Qu8y10WCSdJI4IvIzBulEREREREREGsEgnYhIT3g7noiIiCioMUgnIiIiIiIi0ggG6UREREREREQawSA92IcR893II37eNj91qKKrflu0lFg1yLan7tult/0tcBQf5mZwlkJwbJUaMqkM3FBmnhxdvXcs99nQmE7nNVr83fCUPyqK60O9Op6DuTNkracp8s46ahsWrqbh69zjzZrnNChaMFXpKigOW6uBQ6OmMUinkOXegTDIj5pEXqGt/URbqSHyPtbxEKT4q9QdQ6iawykGW0TexyCdiIiIiIiISCMYpBMRERERERFpBIN0HQiuZ65cFIKb7ClVJ+sOyXqsMywjbeyX7pUDyyyo+fCB9lBooqyPY1rVaaz4jHYolFeQ9UZR4W891EV9UBEaGKQTERERERERaQSDdB0L2h4g/dEpit86XgnwOsl3ZcDydJFS5x5gvb1sf9NHKv1DCZr9RgmJVbq0Yn+WqeLOsSKwdU2ky2c93FMI0egxU6PJCiYM0omIiIiIiIg0gkE6ERERERERkUYwSCciIiIiIiLSCAbpRERERERERBrBIJ00METMqflVb3ZAU0u6Kg5vUvN3Dh9UTKPLm195QsclKRrtkMPd0lX8lIZq885HVJ/vJw77gZYqQCWqm9+pHuWg6mGOK4Es7WrKuNqir+oLjfczVVNHWK7kvVrFNrtbM7RBG4NfaiU3KqWkYsLc2QfcWE3lxTlOoPr8eFNTpfd4mbVxMc9UX6Wlys77fEh1/kXUTp339/CJ3lme4tGxxL+5XvF3QvVwv9Y7BulBpS4VV2NBgcb2QcXTRPqjo3rfryIg6/KHuve8q52Kqp2U6I3ec07v6ffXEUYNiuObr3oLV3yQC7672Kj47aKSf+tEhfBJ0V/99BX/X7iubX1KUByr9VqnFIQGBulEREREREREGsEgXc/8eFGuqiaK1UxY42e+af6ler15UZ3T6fVmTn6i13R7sn0VtzVgzamCPM+Dvj6qvp3VV3lQXX2vaR9xeXk+5K1m026tU/VBOnx4vNHEfqP6ZJ66n0OoOs/X6vg/bU6Hipqmc6Vc61ysWi4bQevp8126VY8XpyLUhQc6AURERERERLUyhKEkrglKwxvB2sgqPyqJi0R0kgGWmFhYYhrKz9SwGMRaYmzzpJtgLTEhJSkGsWbb9+FqBKxKVJWraBwfhfjkFMRGRNiW1agYVuupoLFxfASSo9IRW9+2rIjoKJTEN3NeSHQ9wFC2/lIjwhLjEG00wKDY5jFYrLA2KpHvGybFIla1fR5mNMAaGWdfTGlsQ7ltVnMUIiJt0zhS0i2wFpW6lHVNEsKQbElFbH3b8pNiEhEbVbZeUxisEbFO05fExtjWbYxGRHTZdOYwWMNjERsXBZRtv0kJQ4Rqke8jI2JhNZ66B9w4IdyeT2p4PNREC2It0bb5opvA2siWlpL4MDSKbGTLOjUaJRHJ9r+TI5JhbWRbpiUlBQaRl1Gn8tI2f1n+l9jyNJAiIyNhMNT9PjiD9FBUU+dsLj2kFSpPg5AzlrvmcrrWfdGNMqvDfs1DQqB4K+ODowAVrVdQp3R4kiaNbIduML9copX9wwVR8Ymof9Ud2JsUC6saAUt/2+d7Yy3oZkmCqvYB1C7yM6uiwFB2hz3KbIZFBe6PjkeMpZ38LNxihcVqC/Irei42EXGWu2Gw2vJGNZlhC0FtJsQmwRD2FOJa2sKoMMWKveFG54UoYUBZ4Iojx9Hw4jOQrEZBtd5un8RiMst/b4+KQ7S1m3wfYbHA4nBB4EhcOLr1SoSKWMDavHKemC2wuNiS4LmYeojBA4gw2wLIboZwRFjNVa5X2B+voFs3ka/dAbWd03S94xKBPk1t+eOwt4VZrbBYTuXrczHJSDDbttmqGGA1WBBusU2dpxhhvcyWlr2xZowKt+VngpKAvU3bYJT1Uvm3QTHAMsa2TEtYGOpHRCFRjXbKy70RN5W92YtAEwF6q1atZLBeFwzSiYiIiIhIwxS0Ovt8xKc2QYsGEVDVCJjybEFldLIZJ0zNoKrFUK2F8jNVMUBRbYFdrNGEMKuKiPj6iDcXyM8iLVZElQXJlSSlIMmcA0NZMBlfYnTuYT4pBWERUUgqsN1pDzdYUS+ywh1cJRxQy5bfsAXyo7NhVGNhtRwv2xrbcmVa4uohzmJLd7TZggjzqUsCkckROGlKgQojVEtepaTGGs0yMHaFmpiOeDUakSZbYGwMi0SkxVjleoWoegZkG9OhqqVQrfm2z8wWRJotyE9OAUpybcuFYu+kMdyiIsZkOrWQxHTUM2bbplPCYAkzI9xsy80kQwmsRQZ7GZrLWi40iG6A+qXFMKtFtmUq4WgUaVumEhEBY1ScU14KKdG2aZHaCoFktVpx5MgRZGRkoHnz5lDqcBGMQbru1TLMGIKD6re5/Z1jrjyXGIDnctx8vivwQyjx2SVf5ZHsYdiXj/v6btHOC9fEwVD1y7w1DS/pq3UH7R7oab1xyhBt3TX3fKgl1a3keaMn+qp69fb9rlxbuuu2XdXvn1rYi/yVhqoOzg79F1UR2ETExqJ+i9aoFx+L2AgzLFYDDIayID1cQYQaCdVqloFg+V1bQ1kX+VEGC8KgwhAegQjV9n2kKj6vukmyEh6BcDUMYWVpE9M5tYMJj4QhwoCIMNuyIgy2NDgxKCIRtvfR0SgNFxcWImGFbR7xTfn6w8LDEVH2eaRVRWTZdsl1R4im5JGybyi1bBpHUYbyJdZOpDtMNSDCWpZHYWK9lirXK5MtttEq8tVqz1cxXZRBRUl4BFC2/Y5BegSsiLIYnNYZYSkvkzAo4VZEqGWBuUGBpSwPRP6JPJXLiIpAtGqEwWqw35kuzyslzACEhzvlZfn85XkdaCkpKTJQN5vNiCi78OAJdhxHIavi8CZEVFdKSAxXRaQV2trjKJiapzseP7VQz8KjomEIC0O4CH6JNKy8mbvF4twywV0M0omIiIiISLPKmw3r6BF6ClGKlyopg3QiIiIiIiIijQh4kD5lyhS0bNkS0dHR6NevH1auXFnj9Dk5OXjwwQfRqFEjREVFoX379vj555/9ll4iIiIiIiKioAzSv/32Wzz22GMYP3481q5dix49emDw4MHIzMyscnqj0YgLL7wQ+/btw6xZs7B9+3ZMmzYNTZo08XvaiYiIiIiIvGX/4cOI7dYNG7ZtC3RSKMAC2rv7G2+8gbvvvhu3324b5+6DDz7A/PnzMX36dDz99NOVphefZ2dnY+nSpfbe8sRdeCIiIiIiIr24Z/Ro5OTn440ZX9o/a5qejj1//42GyckBTRuF8J10cVd8zZo1uOCCC04lxmCQfy9btqzKeebNm4f+/fvL5u5paWno2rUrXnrppRp7zystLUVeXp7TK3gpdRheS0O9ILs5/Ffg1qF4Z4Q13RDDfwSXqob3cX1mkRu+6cGm5kGQqv626pQEW4lV5Kf9WLOCrXx9Odimot3cdPn3SOz9/j/m1Joz/vjNdl5hhb88HF7SS9PUPL+ejy/aGT2j6nUF2/HPJiwsDOkNGyI8XOujZAdn/mtJwIL048ePy+BaBNuOxN9Hjx6tcp49e/bIZu5iPvEc+tixYzF58mS8+OKL1a7n5ZdfRlJSkv3VrFkz6I3mhxFy7MWwqh4N/dkVZ21p8WQ5gZg/UNxMt6LnelxxW31dZjqoE5ovI01y4ZhT3WZUNZSQUqEc/J0Hnh5D/ZXOQNSJKn/X3JjWW+t2dfd0MQ2KP4c49VJ+idGYa/zel/XDZ8v2/XG3tnzzaJneXKTi/orEuOFFZqvtZVJRbLKUvayVXkXiZbaipML39vkrvGqbTqzbHbNm/YABF52PFh3S0Pm0vrh+2HBMeOVVzJw3Dz/9/Tfat2yMRm3bY+nyFZWauy9cugJpLZPw96K/cOHlV6JVl2649pZhOH7iBBYsWoQ+l1+OtDPOwG1PPYWi4mKX0lNQUIAHHnscnTp3RI/+Z+LD6TNw6bDhePLVV+3TnMzNxfCHn0H77s3RqnNL/O+OO7Fn3z4EnoJQofXLNE6sVitSU1Px0UcfyStNffr0weHDh/Haa6/J59qr8swzz8jn3suJO+l6DNSJiIiIiAgoNqvo881Bh08yXJjLcXrPp/vuvnRERLm2pIxjWbjp5lsw4ZkxuOiiq5Gftx8rVq3G9UOvQubBQ8grKMBzb05BvKUQyUlJyDlS9Xa8/vZrmPjcOMREx+DeEY/gnocfkeNxT580CcUFBbhx5Ei8/9VXePzOO2tN0/iXXsaqNWvx8bSP0bh+Eia99TY2bt2Knh062Ke5Z8wY7Dl8AJ9//A3i46Lwwivjccudd2PFj/MQpQS83/GQ4FGQvnv3bsyYMUP++/bbb8vA+ZdffkHz5s3RpUsXl5bRsGFDGWgfO3bM6XPxd3p6epXziB7dxbPoYr5ynTp1knfeRfP58sHjHYke4MUr6ITOhSSfUdy5EFrjVVPV4+vhSogXaU13bmu/q6v6N+8U7y6ixq3T2A1t1znvC9XePKvLBiq11YW6Z15w7oveqlQ+qJx+re9a3rlU/zZTr3XZisvLcOv31N8cf78r3eLXIRfPR3y2+kC0vNJy/apFRuZxmM1mXH7xJUhr0gJWczQ6degg966YqCiUGo1ISU1FgrmgxuU8/fgz6Nunu3x/03XX4qXXJ2P5X3+iS1ojhFmtuOrCC7Fo1apag/SCgkJ8P2cupr4xGWeeeRaiLKV469VX0GvAWfZpdu3fj/kLF2LJvJlo130AVGsJprzxOvqcPRDzFyzADRdc6KXcIa8G6YsWLcKQIUNw5pln4p9//sHEiRNlkL5hwwZ88sknsjm6K0RALe6EL1iwAFdddZX9Trn4+6GHHqpyHrHOr776Sk4nnl8XduzYIYP3qgJ0IiIiIiIKLjHhCtbcaGsZG1PPjCxTK6jWIqhWW7BrVQwwqFb5Pq7UiDBVxaGEhkg05cvPoswWRJnNVS57T3Ia6plOIsxiu6iTUFLqdPH2ULjrd5J7dG6PQYPOx5mDz8e55wzCOQNOw2VDLka9pCS3trdTx8729ykNGyImJgYtmjcHSk3ys9QGDbB68+Zal3PgwEGYTCb07GEL+IXEhAS0deiIe9uePfKZ+H69uyO7LIvq16uHtq1aYcfuPcCp7sTIh9xuryB6XRfPgP/xxx9OgfH555+P5cuXu7Us0QxdDKH22Wef4b///sP999+PwsJCe2/vw4YNk83Vy4nvRe/ujzzyiAzORU/wouM40ZEcEZHW6fhmABGFBO/dadZkp2mavuWvwfzSMNH/QGy4wfaKMCAmIqzsZaj0Et+L6aIrfG+fv8Krtunc6ftAtP7947df8f2nM9G+bUdM/2ImzrpwMPYfdLXpvU35qFbl2x5RoWM58Zm4iUkhHKRv2rQJQ4cOrfS5uJsuOoNzxw033IDXX38d48aNQ8+ePbF+/Xr8+uuv9s7kDhw4gIyMU89miGfJf/vtN6xatQrdu3fHiBEjZMBe1XBtRERERESBornOOCkgRAB9xul98dRjz+KPeXMRGRGBX37/QwbeFj8H1s2bN5PrXb9xk/2zvPx87N5/qlO4jq1byyb6K9ZutH+WffIkdu3diw5t2/g1vaHM7ebuycnJMnBu1aqV0+fr1q1DkyZN3E6AaNpeXfP2hQsXVvpMDMHm7h17IiIiIiIif1qxdhMWbJiPAT1OQ2L9ZlizZgFOZGejnQh2C4vw59Kl2LN7F5omRMpm574WHx+H64ZehRdefRVx9RuicXIiXnv7HRgUg70tR9sWLXDZeefhnifG45WJDREXG4kXXx2PRmlpuOT8832eRvLwTvqNN96IUaNGyc7ayptW/Pvvv3jiiSdk83QiIiIiIqJQl5gQh3/+WYzrbrsFA87rg1fffAvjn3kagwYOxO3XXIP2LVvimiuGoGvfM2SP6/4w4dln0KdXL9x55x24fvhtOL1Pb7Rv0xrRDh1tf/jCC+jTvQtuueMGXHbNpbK/wpmfTHNqdk8au5Ne/gy4aHouxivv3Lmz/Pd///sfxowZ45tUEhERERER6Uindq3x6y/zkXsoC6VqHKzmU6NapdSvjx8/+giHEhrYe3ePMZlRtOlUU/RzB/TDsX25UNVSqJYc+dkN11wtX47GPPCAfLkiPj5e9u5eGhYle3cvKirCG+++hzuvudY+jejY7rN3X0ZWaVPZu7tqzbV9Yaq6sz3SQJAuOosTnb2NHTsWmzdvRkFBAXr16oV27dr5IHlERERERETkDZu2bMWuPXvQpddpKMk5gTfee09+Lpq4k87HSRfEmOjiRfqhyZ5W/ay2IVL938WL4xr13MGMGuLr1xev5ZbfDinBV75qADO+LkNFK15bh5bLVPXqMjxZmk9zp8bCUev8a+XVcbQDftrizwT4Y5/wtF5qeX8lRwczMtD7yiur/E4MS/fHgnny/fsff4Lde8fITuy6d+2CX2Z+gYb16vk+gaxKvgvS77jjjhq/nz59uruLJAqIupyoElFVtLZT8WyAgpvW9jjyAzeG/6rTaqp5T9rWKCUFy2fNqvK7fQnpSEuLRHxKM/z+f3Pszd3Lm9nDbPFzasmrQfrJkyed/jaZTLLZe05OjhwrnYiIiIiIiPwrPDwcbapp6WxNbopw9Shg9HuyyB9B+pw5cyp9Jnp4v//++9GmDcfOIyIiIiIiIvLbEGxVLsRgwGOPPYY333zTG4sjIiIiIiIiCkleCdKF3bt3w2xmt/zBSnX12U4xkKIrn3mT4/K9tC6Xt7faBej0WVi9ptsb2+qDeuRROkhneaP6dlZf5UF1y/V0P/BbWakB6Gitqt81N6atfQUezKPx/cajbFA9+232W9XTQL56nDY1cNlhVf2QtxouGx0kT5tUhDq3m7uLO+aOVFVFRkYG5s+fj+HDh3szbRSATkdc6xzE8y5EuMvpGbuO0V5OK14ss7qUL/fswOA+6aiuv2y+V8d0aGUz9MJPHazpn6LjdPO3h4KX20H6unXrKjV1T0lJweTJk2vt+Z2IiIiIiIiIvBik//333+7OQkRERERERDXYf/gwelxwIZZ9/z16dOwY6OSQnoJ0IiIiIiIi8tw9o0cjJz8fb8z40v5Z0/R07Pn7bzRMTg5o2kgnQXqvXr2guPhsz9q1a+uaJnKBpp7C8XJnKu4sTfSJUMOXNc6rqK5/p7icqhr2E/siHDtmqur7Wpbj9/6RfJcWxVvz+mWHULzcUV3F5ana3L8rqSl1rnXq5Pr+VBWlxvqqeOV45E6HaW52xlbb51runMobe0hd+/0SE3vpkKTfnNbLscLTjvZq+l2vZTUednxY47lETfP5YJm1r9TV8nc4VkLHVF+ehWhPWFgY0hs2dHl6XZetJ9TQ2WKXgvSrrrrK9ykhL/DOia82aC09Hua3Elw5pYdScUfdgkVBOz8W2kmJm/Uo4JVKTznnizqsJb6sDLXnU8CrYgDLW/FBLvgutHJnuWodl+LFq0J17ggtmPZ1L9QlEayZi23vTSbAVARYi6BYbZ8pigGKarV9bzbKXuYVUxEUU9k8FgtQzahU5dMplrL1mksrr9sNs374AePHPYc9+/YhJiYaXTt3QtfOnTFz3jz5/U8tG8t/f5j5Bdqmpzs1d1+4dAUGXTsMX3/6DSa+OgG79uxBn1698MHbb2LD5s14fuLLyDh2DEPOOQdTJ0xAbExMrem5+n+3oHPHDgiPjsW3336DiIgI3HHD9Rh/3/32aQ5mZODJJ17Gn4tXwmBQcN7ZZ2Pi+LFolnTqDv+bU6bik88+R0lpKa68ZAjq16uHhf8sxsrvv5ffW61WfPDWJMyZOR0nsrPRtm1bPD3qMVx41kC38i9UuRSkjx8/3vcpISIiIiIiqo25BDFzL7D/merCLO1dXHTXWr5XbtsMRLm2rIxjWbjp5lsw4ZnRuOiia5Cftx8rVq3G9UOvQubBQ8grKMBzb05BvKUQyUlJyDmSUeVyXn/7NUx8bhxiomNw74hHcM/DjyAyMhKfTJqEkoIC3DhyJN7/6is8fuedLqXru9lzcOedd2P+D99j9bp1GPnU0zirew8MGjBABtfXjRiBxMRYzP12PsymIjw97incO2Ikfv7sUzn/D7Nn4Z2p7+PlCc/htD59MO+nn/DBJ9PRomlT+zqmzJyJzz/6AK+9MEFelPh61mzcefcDWPjLfLRu2dK1DAxhfCadiIiIiIjIyzIyj8NsNuPyiy9BWpMWsJqj0alDB9k2ICYqCqVGI1JSU5FgLqhxOU8//gz69uku39903bV46fXJWP7Xn+ic1gjhViuuuvBCLFq1yuUgvVPHDhj5yEhEWUtlwPzZ5zOxcMUKGaT/vXw5tuzciT0rfkN0w15QrSV457VJOHfIJVi7aRP6d+qM6dM/kem48dprZEuHxx5+CAuXLEFxYZF9HW999hluv/8RXHXZZfLv0aNG4d8VyzBtxqcyuCcvB+kWiwVvvvkmvvvuOxw4cABGo9Hp++zsbHcXSURERERE5JrwaBRf9ad8G1PPhExTa6hW0eTdFuxaFQMMZc3d44xGhFlVHExoiCRTvvws0mJBtKnq5u67k9NQ33QSYWXN3RNKSp0a3Kvhokl5nkvJ7NG5PQadfz7OHDwI554zCOcMOA2XDbkY9ZKS3NrcTh0729+nNGyImJgYtGjeHCg1yc9SGzTA6s2bXV5e5w4dnP5OS2mIzLIYbvvevbIDu2ZNGiGrrKV/h3ZtkZSYiB2798ggffeeXRj+v+udltGre3csXbZcvhctBDIyM9HrtDOcpjmtT29s27rdrW0PVQZ3Z5gwYQLeeOMN3HDDDcjNzcVjjz2Gq6++Wo6X/txzvCpCREREREQ+JDq0FsGyeEWIV6x8qRExlV7l06kO39vnreLlOF2V07rYmXZ5R3B//PYrvv90Jtq37YjpX8zEWRcOxv6DB93aXPHc+KlNVxAR7nyfVXwmmqm7KtxheeXzq27MTxoM0r/88ktMmzYNjz/+OMLDw3HTTTfh448/xrhx47B8ue3qCRERERERUagTAfAZp5+Opx57Fn/Mm4vIiAj88vsfMvC2aDAw7tCqFQ4dPYqDh089H7995y7k5uWhQ9s28u82rdtiw8ZNTvOt33Tq78T4eDRKTcW61c6x4eo1a9G+bBnk5ebuR48eRbdu3eT7+Ph4eTdduOyyyzB27Fh3F0dERG5QQ7iHXyIiIj1ZsXYTFqyfjwE9+yCxfnOsWbNA9nTeTgSqhUX4c+lS7Nm9C00TIpGYkAAtOL9/f3Rp1w63PDgK48a+AZPoOG7sU+jfty96de0KmC2444478cSTj6FHt67o07sP5s2fj/+2bUfLZs3sy3n0ttvw/Ptvo0uTBujSqRO++WEOtm7dhqmTJwd0+4I2SG/atCkyMjLQvHlztGnTBr///jt69+6NVatWISrKxa4OKTDDsejs3F5xHEdaD2PjeMBxsxQ3C05mj8/K1JeVxfvb47vqEUzDGnqfn0ckd5vTM4Qelod3B2By2Fo3mkvWsBQ/1Tw1SId8q50actvkhSHAFH8NF+er8lF9vYLa1+uXVShuTOzttFUe6z1Yjy2JCXH4Z/FivPnWW8jPL0DTJo0x/pmnMWjgQJzVtj0Wr1qFa64YgsLCQvsQbFq48//9O+/gyckv48rrL3Eagq3cNVdfi/27t2PCy6/Kzu+uGDIE119zNTZs2GCf5oGbb8ZeswETXnoFx+WFibb4ZNpUh57dg/88ya9B+tChQ7FgwQL069cPDz/8MG655RZ88sknshO5Rx99tE6JIX+PNaplvj9YO14D0DNVJ+sOzXqsL3UvIw/mD87zsjptljvlUNu03O90rpbxmOtSukG661Xg3/qv+jSN5Vc/FA3dRKDadGrXGr/+PB+5h7NQqsbBaj5m/y6lfn38+NFHOJTQwN67e4zJjCKHZuPnDuiHY/tyoaqlUC058rMbrrlavhyNeeAB+XLF7K9myn8dR3//6r33EGm22P9u1qgR5n76HrJKm8re3VWrreU0HDrbe+yhB+Wr3A3Db0Or5i3sf4v+yu5/dBTGPXCH/NuqhMESZgKq7q+PPA3S33vvPRmQv/LKK/bPROdx4o76smXL0K5dO1x++eWuLo6IiIiIiIh0pqi4CJ9/Ml3eYTeEGTD3x5/wz79L8cOM6YFOWugF6aNHj8ZTTz0l76TfeeedOP/88+Xn/fv3ly8ibzaz8cW0FWaE9rtpJE0LRB3SIx9mk8f7v1cT4bWJQgOzQoeZV8t6/bkfKm6sPsDHB9vxKTTaK5B2HMzIQO8rr6zyOzEs3R8L5qFNyqnnxj2lQMFfixbhnfc/QElpKdq0aoWPp7yLgQMGAEbbsHA+oSBkhLvTYdz333+PGTNm4MILL5R30O+44w7cdtttaObQSQARERERERH5V6OUFCyfNavK7/YlpCMtLRLwQofyYpz27z7/rPIXFu31Vq9XBncKY9iwYfj777+xc+dO3HrrrfJZ9FatWuHiiy+WAbzJ5MMrJ0RERERERFQlMTx2G9G5dxWv5q1ay+9JHzxqgNu6dWs8//zz2Lt3L3755Rc0aNBA3lFv0qSJ91NIREREREREFCIMdX3eRlyREf+qqso76URERERERET+DtIPHjwo76SLO+ri+fQjR45g2rRpcvx0Il8POaObdVRap/9XSUFWh6gClgGFElWb6w3wsZCH4gBhvhP5lMsPJhiNRsyePRvTp0/HX3/9hUaNGmH48OGy8zgRrJO/BVH3hg6/sP485iuqZ7ldeTb3Uq1W+1dg8qFWAUqMUuuJYbV/aFbN9SgYONbhij0be2eLq16Kd3MziI6u3s8j1Rer8GeOa3nPU708h6qd43VAOaRNDYK9W61pe/x5HhGoMg+CMtQgrRxLyIMgPT09HUVFRbjsssvw448/YvDgwXKQegr1H79QwTKoCn8qg0swHGu4DRRUfDiMGAcI0wqWAhFV5nKUPWbMGNnMfdasWRgyZAgDdCIiN/FUjIi0zXsXBWytaTTGnSZ0fqfB/CLyktMHnodpM2b4bX0LFy6Ufabl5OQg6O+kP/bYY75NCREREREREVGI4+1wHfNnZymqy/cA1VoS6otE++u5V/8uITD0mm5v1BVf19NQzfMgzxtVpyuo9rjsz+O1F+f35Q+iW8v24LfS22n3826jei0JqsY3WMvHI9XvaRejOrk4pVcmCRaijy8iVzBIJyIiIiIi3RAXCYotJfJVZClFsaW47GX7rKTsX8dXicP3Nb3EdFXNX/5y/QIFcO61d+OhESPw9IRx6NSrFW66/U5s27EDN91xJ1L69kXLgQPxxKMP40R2tn2eOb//jtOHDkX9005DSpd+uPbmK1BYVCi/e+SpUbjtvvsx+Z130eX0fmjSty8efv55GF0cBttqtWLKR9PQ//wL0L5jO/Q5eyDemvq+/O6fVasQ260bcvLy7NNv3rIR6a3TcfDQIftnS9euxZVDL0erLt3Q56xzMOb5F2S/ZeUyT5zANQ89JNN/8YAe+OH/5lVKR6O27fHhzO9w5X33yela978cv8/73f79wiXL0TWlK/JyT6Vlw7ZtiOnQEfsPHpR/Hzx8GMPuvhcde5+GuLYD0OW8a/Hzzz87rWfNmjU47bTTEBsbiwEDBmD79u0IuubuFESUwHVkE0IXS4OPDzsw8imdJtsrZeJOmdWhfNnRmd73Sa0tJ0iPXU7p8CRNGtkO3WB+6Wr/cFOJtRQD198ekHV/ct4viHBj+s8+/wJ33Hwrfpz1O3JO7sW1twzDzddfhzcefwLFpaV48t33cO+IkZg183MczczC8FGjMPHRR3HFoEEojTDi16U7nFrcLFm2HNFRUZj95Uxk7tuPB8eMQf3kZEwYMaLWtEx65Q18+/UsTBj9DHqePgAnjx3Crt17XN6WvQcOyMD6qVHP4s2XXpAXF5597nk8O+F5vPXqK3Kae8aMQUZWFn795BMcrdcEk8c+juMnTlRa1oQ3p+D5R0bi9aefxvd//h+evOdJtOnYBqk9U11Ky7PPTYDRaMKcr79Ei3oqtu7Yg/j4eKdpRo8ejcmTJyMlJQX33XefHJXs33//RdAF6SaTCR07dsRPP/2ETp06+S5VREREREREOteuXVs8/+xYlKpxmPz2THTt3BnPPvE4EotL5fcvT3oD5/Q/Dbv37oU5Nx9msxlXXnABmjdujKgGkWjUZiBUtRSqxdYJWmREBN545WXExsSgd4uWGPPggxg9eTLGP/RQjR17FxbkY8aML/DSuHG4/uqrUWqIQvtm6eh32mmAyezStrz50TTccOmluOfue4HiHLRu2RIvjhuDq/93C155fgL2HzyE35cswT9ff43TunbFruSmmPzyRJwzeEilZV095ELcfs018v0LTz2AeUtW4quPv0L/9/q7lJbDRzJw6eCL0KlDB6THFKB1i6ZA415O00ycOBEDBw6U759++mlceumlKCkpQXR0NIIqSI+IiJAbRkREREREFAjRhigs6mnrLTy6vhlZplZQrUVQrQXyM1UxQFGt8n18qRFhVhUHExsi0ZQvP4syWxBdTWC6u14a6ptOwmCxtTIQwbRje4ODBhHg5bqc1j69e9vfb/1vG5auWIHW3XtCKbs7rpa1Zth34ACG9DsD5/Xrh9OvvhoXDBiAwRedg/MuuhVJibH2ZXTu2FEG6OX69eiBgqIiHDp6VAb21dmzcweMpUacPcC1ILgqm7dvx5bt2/GNQ7Ny0fxfNKM/cPAg9u/ei/DwcPTu3Nn+fbs2bZCUmFhpWWf07uH0d4/TemDb5m0up+XOYbfi6fHPYdGSfzFkYB9cc8kgdK8QpHfv3t3+vlGjRvLfzMxMNG/eHEHX3P3BBx/Eq6++io8//lgWAmlHVZ27aXq0ETfUbTO0mwl1bfxI2s07VWuJ8rBzKu3uPaHWDF/VxAjYwZWn1VED/6sVsGxWNVVX1No+DMhxtm7bVf15mX8Lvao65nQe6TiBL5NWRRm6sjoxvFZMmO1uaEyYCTHWGKiKClWxBd5WxQBDWZAeE2ZAmKIiOiwGMVbbs9tRqgXR1qqDdDFdtLUYYWWJiwlTnM/X3HxEIC4uzv5ePFt+4fnnYeyTT8qLB8LRuGTEmYuQlpqCsLAw/DRtGpavX48/ly7FlOlfYPQrb+PnOb+geeMkt9ZbabtquXtsKNsux2fuTWbnZ90Li4pw53XX4dYHRgAltgse5Zo0biSDdG8wlLUIcE6Lc3ndfMP1OPfss/HnwoVYsWwhXn5vBiZPzsTDDz/sdIO5YrmJCwpB2XHcqlWrMHv2bHkFYvDgwbj66qudXkR6obkgikj3uFMR+RP3uBAUkGfI9XhxTptp7talC7bv3IlmTZugTfPm8tWiZSu0atlCdm5WHkz279ULYx98EGt+n4vIiEj88tupO9dbt21DsUPL5pUbNiA+NhZN09NrXHfzVm1koL546bIqv29Yv7789+jx4/bPNm/d5DRN986dsG33brRq1Vqm2fEVGRmJdq1byeb6a7dutc+za88e5Dp0RlduxbqNTn9vXLMRrdu3lu9TGtjScvzYqbRs3Fb5Lru4MDD8fzdh9seT8fi9t2LatGkIFm4H6cnJybjmmmtkgN64cWMkJSU5vYiIiIiIiMjZ7bfcjJycXNw38jGs3rwZew4exOJFCzFy1NOwWCxYvWEDJk2bhjVbtuBgRgZm//w7TmQfR7u27e3LED25P/7Ms9i+cxd+++cfvDh1Ku676aYan0cXoqKjcd/9d+HFSa/huzlzsH//fqxZtx5fffe9/L5Ns2Yy0J84dSp27d+P+X8uwgfT3nNaxiN33YXlGzbg2dFPY/PWrdizbx9+/eNP2Ymb0K51a1x45pmyx/mVGzdi68b1ePzZ0VXexZ/9yx/4bM4c7Ny3D+Nffx+b1m7C/+78n/yubesWSG+SjqmTpmLf7n345Z9/8M5nnznNP/bFifj7n8Wymf3aTf/h739XBVWfaW63V58xw/b8BxEREREREbkmPS0N8777BhMnvYYr7rkHpSYTGjVpikFnnyWD7IT4eCxZswZTZs5EXkEBWjRtjOdGT8SgcwfZO447q/8ZaNWiBYb+738wlRpx3ZAhGP3AAy6t/+FH7keUEoHX3noHxzLHIDUlBcNuutHeNPyzSZPwyAsvoO811+D0nl3x9BNjcNcDw+3zd+3QAb/NmIEx73+Aq266WTZHb9m8Ga645BL7NB+++CIeGD8eg2+/HfVTUvHMyBGYlPF2pbSMfeR+zPrlF4x88UU0SmuISR9OQpsObexpmfThJLzw1Au48pwrcVrnLhj/8MO4+fHH7fNbLRZ5cSDj6FEkJsTh4nMH4M2pUxEsPH6oPCsryz7WXIcOHWTX9kRERERERAQsnDUNSOuG3MNZ9s9Ej+jTp06x9+5+KKEBEsy2Du86tGmDeR98YJ9W9O5+3Jgue3d39OTIR+QrrtSEcDeesRYXAkY+cL98id7do6xlyy3rRE80s185e7Z8H93QgKzSpji65yhU66nm6qLX9m+//l727l6V9IYNMXvKFPle9O6eUpqF64ZeBasSBgtOPePeKC0FP370kXwfU9+ELZGRTsvp3a835iyag3BDOJofsc1XvH0bSqMTUKoCE8ePO7XOGFv+oUED+c+5555baTz7nj17ujXGve6auxcWFsox5kQPeeecc458iWbvd955p9NA9kRERERERETk4zvpjz32GBYtWoQff/wRZ555pvxsyZIlGDFiBB5//HG8//777i6SiIiIiIiIPCSeYe995ZXVfv/D3yuQ2PhUb+cUZEH6Dz/8gFmzZslmBOUuueQSxMTE4Prrr2eQTkRERERE5GVvT3q12u8apaRg+axZ1X5vTBPjhJ/qLT2QMnbtQH1DMSyFgU5JEAXpokl7Wlpapc9TU1PZ3J2IiIiIiMjPwsPD5ZBu1dkZHq7VkenIG8+k9+/fH+PHj0eJw/h8xcXFmDBhgvyOQoCPO11wZ+l16QBCcWNWV0clrTE59u8cJ6ruvXaomh3T3r955981KP7fF+uwLNWeXtWvGeezQ5Hq7Ym1sBf5gYdZ4fPc8UlFUQOXDofl+DLvAldrVT/um+VTen9rfdZBlbfLX1U9qpr+HK1dCb2jKVUnhCqA23fS3377bTlGetOmTdGjRw/52YYNG+T4d7/99psv0kjVUPx4hFS8dTh2OdHurE8J6aOCP38oyRdCvAS9vPmKhvdVX/B4e/35A+IPet4eTaVd8dpSTl288/W6q5lPRp6BPR4oHuRa9Wr6Tkt1SE9p86fQ+m2iAATpXbt2xc6dO/Hll19i27Zt8rObbroJN998s3wunYiIiIiIiIj8OE56bGws7r77bg9XSUREREREREReeSb9s88+w/z58+1/P/XUU0hOTsaAAQOwf/9+dxdHRERERERERJ4G6S+99JK9WfuyZcvw3nvvYdKkSWjYsCEeffRRdxdHREREREREVK0v5s5F+umn+3WdYsjxkSNHQhfN3Q8ePIi2bdvK93PnzsW1116Le+65B2eeeabT2OlERERERERE5OM76fHx8Thx4oR8//vvv+PCCy+U70Xv7mIoNiIiIiIiInJmNBoDnQQK1iBdBOV33XWXfO3YsQOXXHKJ/HzLli1o2bKlL9JIRERERERkH4feWlJiexWXQC0pLnuVVHqVT6cWn/reWsMLDtNVNa07A8ufe+3deGjECDw9YRw69WqFm26/E9t27MBNd9yJlL590XLgQDzx6MM4kZ1tn2fO77/j9KFDUf+005DSpR+uvfkKFBYVyu8eeWoUbrvvfkx+5110Ob0fmvTti4effx5Gk8ml9Jw1YBA+mvGp02cXXH4FXnnvPfvfsd26YcYPP+Dq20egZcd09D+vP377c4HTPNu3b8Otd9+Ddj16oW2PXrjyxpuwb/8B+d3g22/Hk6++6jS9SPPIJ5+0/11aasSolyajzaBBaNi3L/pdNgwr/13pNM/cr+figp4XoGfTnrjhkUeQnZvr9P3rb78j0/7519+g2WlDENtmAK6//nrkOkxXVXP1q666Crfddpv976lTp6Jdu3byhnNaWppsJe7IarXKPtjq16+P9PR0PPfcc9Bkc/cpU6ZgzJgxstn7Dz/8gAYNGsjP16xZI4diI+2OPskRGmvPMVWTw3mq2l+nGz9YuqqJbm2Xfqhujctc29i9deVKWjxbv6K58juVnrqkrNbNquV798evrj217m+P1sqmuqTV/UfB/fz2zno94+k43ZWnUrRcxjVRg3nFrq/DsfwUP6TD7aNSSSkO3HKrS9PmVPO+puAov6Z5fvoDShRc9tnnX+COm2/Fj7N+R87Jvbj2lmG4+frr8MbjT6C4tBRPvvse7h0xErNmfo6jmVkYPmoUJj76KK4YNAilEUb8unSH04F/ybLliI6KwuwvZyJz3348OGYM6icnY8KIEfCWl95/H5PGP46nn34NH386FQ8+/gRWLfobjeLicfjYMQy99jr073c6vp/5ORLi47FqzVqYLWaXl//shAnYu3snPp80CY1SU/HLst9x3w33Yc6iOUjtlooVq9dj3MhxGDlmJC689EJsmbMIL06ZUmk5e/cfwI8//4wfP30LeQUFuHPUq3jggQfkUOGuWL16NUaMGIEvvvhCdoKenZ2NxYsXV+o0/bHHHsOKFStkf2wiwBePeZe3JtdMkC56chedxVU0YcIEb6WJyC+0GZAT6Rl3KiJ/4h4Xgty6yOotOr3gohHt2rXF88+OQakaj8lvz0TXzp3x7BOPI7G4VH7/8qQ3cE7/07B7716Yc/NhNptx5QUXoHnjxohqEIlGbQZCVUuhWmyXCyIjIvDGKy8jNiYGvVu0xJgHH8ToyZMx/qGHYDC43Ui6SrdceSVuGnopskqb4pknnsHHn36MdRs2otGAAfjwm2+QkJiAD956ExEREXL6Nq1a2Wa0WGtd9qEjR/DtD7Oxa8mvSItPl5890WMYfli0HHO+noPTu52Otz+agTPPPxN3PHwHwg3hGHhzUyxfvx5//Puv07JKS0vxzmuT0LNVvPz73XffxaWXXorJkyfLu961OXDgAOLi4nDZZZchISEBLVq0QK9evZym6d69O8aPHy/fizvuIg5esGCB9oL0X3/9VT6XftZZZ9nvrE+bNg2dO3eW7+vVq+eLdBIREREREUGJjkLzmV/I9zH1TMgyt4ZqLYJqLbC3GCtvTRVXakSYVcXBhIZIMtvukUeaLYg2VX3nd09yGuqZTyLMYrsgklBc6nRBbHd0NADnptc16dO7t/391v+2YemKFWjdvac9feWt2/YdOIAh/c7Aef364fSrr8YFAwZg8EXn4LyLbkVSYqx9GZ07dpQBerl+PXqgoKgIh44elYG9N3Rr397+Pi42Tt4tP55t65Ns47Zt6Nf3DHuA7q5t27fDYrGg66ArHJveoNRoQlK9JPnnfzt248xLznOaT2xnxSC9SeNGaCSDcVu59+/fXzZP3759u0tBugi0RWDeunVrXHzxxfI1dOhQxMbGOgXpjho1aoTMzEz4mttB+pNPPolXy54z2LRpEx5//HHZBODvv/+W/86YMcMX6SQiIiIiIoKiKDDIYBkwxIRBMcUAVhWwlgXeDkG6QTHAYFWhxMRAKXt222C2wBBWTfNsOV0xlLIg3aAqzq1W3GzNIO7UlhPPll94/nkY++STiC+1dSJ3NC4ZceYipKWmICwsDD9NmybvGv+5dCmmTP8Co195Gz/P+QXNG9sC2LoQeSGe53dkquJiRXh4eKX8VkX+iuwpy/dq12GovA7ROqBcYVGR3M5l876BUmpbT3SSCTsjIhEbdyo49oaq0mJyeH5f3D1fu3YtFi5cKDtEHzdunHzmfNWqVbL1uFDxYoTIC3EhwNfcbhOxd+9eeddcEM+ki+YBYux0cRf9l19+8UUaqRr+fNxSdbWpU1WJcvzMJ4n2/vLrvBTNPQsb5Ol2lVrDtvq8nlYnyPM82OtjHZJY8cShmok8X4HLy3Ws+x6uO9Bl5cv1V7Vota7p8OHxJtBl4fFu4Wm6/bS9GshXzzui8H7aXV9iAI9zGtStSxds37kTzZo2QZvmzeWrRctWaNWyhf3urQgC+/fqhbEPPog1v89FZEQkfvntZ/sytm7bhmLRgV2ZlRs2ID42Fk1duHNcv0F9ZGZl2f/Ozy/AgUOH3NqGru3bY8XK5U7BrqOG9erhqMM6xF3zbTt2npq/c2f5WdbxbHsetG3VHM1bN0fDtIZymk7t22Djmo1Oy1250flv4fCRDBw9dsz+9/Lly2Vg3qFDB/l3SkoKMjIynNKyefPmShckLrjgAkyaNAkbN27Evn378NdffyHQ3A7SIyMjUVRUJN//+eefuOiii+R70eNdXl6e91NIRERERESkc7ffcjNycnJx38jHsHrzZuw5eBCLFy3EyFFPywBy9YYNmDRtGtZs2YKDGRmY/fPvOJF9HO3anmp+Lnpyf/yZZ7F95y789s8/eHHqVNx3000uPY8+YEA/zJr7f1i+ahW2bduGEU89Je9qu0OsSwT39418FOs3bcKeffvw/Zy52LVnj/x+YN+++HXxYvzyzz/Yu2sHRo0b7xQjiufXr77iCtzxxGjM/fNP7Dt0CCvXbca0t6Zh0e+L5DQj7r4N//71L2ZMmYF9u/fh/a++wh9LllRKS1RUlOzxfsOWHVi8Yq3sBE708F7e1P3888/H/Pnz5Uts7/3334+cnFNdAf7000945513sH79euzfvx+ff/65vEteHuQHktvN3cWz6KJZu+jVbuXKlfj222/l52I4tqZNm/oijeRl4gpdHRfgp16lSVtYdppT6/7kRpnVYd/UbS/Ousd90qV6qJXfHad0eJAmrWyHXjC/gjqf9JlqID0tDfO++wYTJ72GK+65B6UmExo1aYpBZ58lg2zx7PeSNWswZeZM2Vt5i6aN8dzoiRh07iB7x3Fn9T8DrVq0wND//Q+mUiOuGzIEox94wKX13//gPTiy/zCG3X0vEhISMerRETjo5p30BsnJmPXdD3h+wlhc/b9bEGYwoEvnTujbx/bs/fChQ7Fpxw7c/eyzQEQk7rttGAac0c9pGW+9+jI+nPoOnnn9dRw5dgwNGySj82k9MPCigfL7M07vhefeeA5TJk3BlFen4Px+Z2DUvffilQ8/dFpOqxbNcclFF+GSYQ8jOycPl112uRxSrdwdd9yBDRs2YNiwYfKO+aOPPorzzjv1rLto0j579mzZxL2kpER2DPf111+jS5cu0F2QLnq0E13bz5o1C++//z6aNGkiPxdN3cXD9kRERERERKFu4axpQFo35B4+1dFY65YtMX3qFHvv7ocSGiDBbOv4rEObNpj3wQf2aUXv7seN6bJ3d0dPjnxEvuJKTQh34/nohIR4fPD2W/J9qSEKUdZSXH/11bZO9MwW+XnRpk2V5tu+bo3tTdnz6507d8E3n06vvAKLVT7D/faYMfK1K7kpUkptTd+tShgssDWRF9OMe/QBjL7nIfl3TH0TtkRGOi3q6puvli/Ru3vzI7b5Rt51F5xzAhh+8/8w6q4rbH80du6ZXaxHBO2OgXvFm8/iefTqVPXd3LlzockgvXnz5rJpQEVvvvmmt9JEIUcNyKVRRQNDe1d7X0Wvl4h9pnKG1PGeVEA4plOv955r7p/CYRxwteIG+3KLvTueb1C2DPBS/teUN/rYDx3qqOYSrLHR5t3IIN3sM94u9ICMhubGMdgXqy/faHbdokuaO+yR94J0Yffu3bIXd/Hv22+/jVQxCP0vv8gAXgvNA0JHkB61/LFZbv568aBGHnX6RUTkLYE65tS2Xh4LQ5JuLsyEEPEMe+8rr6z2+x/+XoGkxp4Nm0Y6CNIXLVqEIUOGyGfS//nnH0ycOFEG6aK9/yeffCKbwRMRUWU8pSEibVO8f8dVS9xqQudvIr+0nD7Sgrcn2YbBrkqjlBQsryEOM6Y1AnAcweKJR0bIV7ByO0h/+umn8eKLL8rO48TYcuVE73nieXUiCiU8oQguLE8t0GBoQ8FYG3TaYViwYSmQt4iO0cRwZtXZKcY+58+8brg9BNumTZswdOjQSp+Lu+nHjwfP1RkiIiIiIiIizQfpoqt6x0Hhy61bt87e0zsRERERERER+SFIv/HGGzFq1CgcPXpUjrctBnz/999/8cQTT8gx6IiIiIiIiIjIT0H6Sy+9hI4dO6JZs2YoKChA586dcc4552DAgAEYM2aMh8kgIiIiIiIionB3hxwSd9DfeecdjBs3Tj6fLgL1Xr16oV27dr5LJYUg9myhj5xilzfBJQDlGaS7uuqneWvvQZv7qL75cAcJiaHT/Fv/VZ/Ow31Z31h+5OMgvW3bttiyZYsMysXddCIiIiIiItK2G64fhm4dO+OFMaM9XsaLU6fi/xb9gz/nzal2mntGj0ZOfj5e+ny2x+sJdW41dzcYDDI4P3HihO9SRF4eU1PR3VW88lFhXEmt6Behdmrld4EYekap5U6Gm3c1gu0eiKqzO0Ku1T0t8X4euTQOsuK7VLlTBJ6uR/VKIrxQV5zqeM3L00LN1PfxqYrfDLfL3fHYXpcUuLPOOiy7pm+rWK/Tvl9NuhRfHHMUd+q3p/lV276muvEbobqRKi3sNWoAzx5Vn69QC8fG0OPleq0gZLj9TPorr7yCJ598Eps3b/ZNioj8RPzYE+mNaNGkXdraqXwRJBBpibb2OPILv10g1vnxU6PJNxqNgU4CBWNzd0H04F5UVIQePXogMjISMTExTt9nZ2d7M31EREREREROF6xNJlskHm5UYTZZoFqt8iW/h2K/UCums1pVWIxWmE2278MsVvv8FZVPp1psF0TEdIqHF8vPvfZudO3VF5YSE76bMxsd27fDxPFj8fwrr2LlqtWIi4nBGQPPw0vPPIkG9evLeeb8/jteev997D54ELGxMejSuQc+/ehTxEYBjzw1Crl5eejWuTOmfzETJqMR119yCSY/8wwiIyJcyzurFS+8Oglffve9nGfYTTdizAMP2L8/mJGBx156CQtXroBiCMd555yLieOeQUrDhlXnl8Uit+ebWT8gLMyA24ZerdVrJMEdpL/11lu+SQkREREREVEtzCbgiw+zHD5Z58JcjtN7Pt2AUWlAlIuLAvDZ51/gjptvxY+zfkfOyb249pZhuPn66/DG40+guLQUT777Hu4dMRKzZn6Oo5lZGD5qFCY++iiuGDQIpRFG/Lp0h9MjT0uWLUd0VBRmfzkTmfv248ExY1A/ORkTRoxwKT3fzZ6De++4HXNn/x82rl2BkU89jTN79MTF/frJobWvGzEC8bGxWDj7M2QVN8DTYx+V6Zv91cwql/fBJ9PlMt945SV0btUaH378CeYtWICBffu6nklU9yB9+PDh7s5CREREREQUctq1a4vnnx2LUjUOk9+eia6dO+PZJx5HYnGp/P7lSW/gnP6nYffevTDn5sNsNuPKCy5A88aNEdUgEo3aDISqlkK15Mjpxd3vN155GbExMejdoiXGPPggRk+ejPEPPST7D6tNp44d8PiIh1FqiELHFo0x44uZWLR8uQzS/16+HFt27sR/v/6Ktl0bI6u0Kd6d/C4GDh6I9Rs34oxOnSstb9qnn+Hh++7FpYMHI8Jixbtjx+LPf//1QU6GFreD9Ly8vGo7yIiKipJN4ImIiIiIiHwhPAK49d4U+T6mnglZplZQrcVQrfmVmrvHGU0Is6o4nNAQCSZbHBNlsSDKZKly2XuS01DPlI2wsubuCSVGp+bueyPc69KrT+/e9vdb/9uGpStWoHX3nlDK7o6rZf0M7DtwAEP6nYHz+vXD6VdfjQsGDMDgi87BeRfdiqTEWPsyOnfsKAP0cv169EBBUREOHT0qA/vadO7QwenvtJRUHM+2dQq+fe9eNE1Pl69yHdp1QFJiInbs3l0pSM/Lz8exzEz06tHD/ll4eDh6d+mi8T50gjBIT05OrrFX46ZNm+K2227D+PHjXbqaQ0RERERE5CoRi5Q/gh0RqSBcCYNqNchXxSA9QlUQZgXCIg0IV2zfh5tVRMD2fHpF5dOVB+kRFrEs53W7Iy4uzv6+sKgQF55/HsY++STiS22dyB2NS0acuQhpqSkICwvDT9OmYfn69fhz6VJMmf4FRr/yNn6e8wuaN06CN4RXfHZdgXxmn7TF7Sj6008/RePGjfHss89i7ty58iXeN2nSBO+//z7uuecevPPOO7IXeCIiIiIiIgK6demC7Tt3olnTJmjTvLl8tWjZCq1atkBsbKz9IkD/Xr0w9sEHseb3uYiMiMQvv/1sX8bWbdtQXFJi/3vlhg3yGXLHu9+e6tCqlbwjL17ltu/cLjura9+2baXpExMSkJaainUbNtg/E831123dWue0hDq376R/9tlnmDx5Mq6//nr7Z5dffjm6deuGDz/8EAsWLEDz5s0xceJEGbxTKAwfpgZsaTU3pal5SUoNX4smSM7DN6k15L3jmLo1FIzq+jikAbueqXo4FrYPlDcDq17V+egzdV1Jpe1xpa7oTZUVyLtrUKrI0kDml1O5VpcQNxKo8bIP+LB2at32Ra+lPqDNOF0Yx92Fb11fixeO39Xml+rWmmv63bbNWdX+WPuWeNost6bfR5819XVYbi1nOS5O5yZFJwcrjbr9lpvx5bff4b6Rj+Gp4cNRPykJK7I24fd5szD5pYlYvWEDlixdhkEDBiC1fn2sW7oVJ7KPo13b9vZlGE0mPP7Ms3jkgQeQtW8/Xpw6FffddJMHLZgrl+H5/fujS7t2uH3UKLz98jPIKj6GUWNGon/fvujZrRtgMlea567hw/Dehx/JCw2dWrTCR598gtx822MHnnDej+H8dwhVO7eD9KVLl+KDDz6o9HmvXr2wbNky+f6ss87CgQMHvJNCcoOqg3E3XaVoPjVaSaE/06GVbdbK9gQ8YNHshTs3BDjdWirDUEy/v36HXMsnPeSl6uPleq8MAnWBt2IqquNK6vy7BWJtnt94IK2zlV96WhrmffcNJk56DVfccw9KTSY0atIUg84+SwbZCfHxWLJmDabMnIm8ggK0aNoYz42eiEHnDrJ3HHdW/zPQqkULDP3f/2AqNeK6IUMw2mEItTqd2yoKvn/nHTkE28Chw5yGYKvOfXfegWNZWXjkyVFyG4ZfdZXsmb4ugTp5EKQ3a9YMn3zySaXm7OIz8Z1w4sQJ1KtXz3upJCIiIiIi0pGFs6YBad2QezjT/lnrli0xfeoUe+/uhxIaIMFcIN93aNMG8xxuhore3Y8b02Xv7o6eHPmIfMWVmhBeNja8K7797nNEGcOcPvv0g/cRLe6Qm20d6TVr1Ajfv/suohsaZO/utg75TnUcLsZUf3jMBKA4x95R3AtjRsuX6N091miyT7vL5ZRRnYP0119/Hddddx1++eUXnH766fKz1atXY9u2bZg1a5b8e9WqVbjhhhvcXTQRERERERFRSHM7SL/iiitkQC6eP9+xY4f8bMiQIbIDuZYtW8q/77//fu+nlIiIiIiIiCo5mJGB3ldeWe33P/y9AkmNK/TsTsETpAutWrVi7+2aoGpwVbV1AqMGqOMmdxdZ1+Xo9dkxvabbG9vq43pabTJq6fpJdmIYqrRfH73fNVdN9dJH9a7aY6jqcUc/NU1ZN6rfO3KratuqX5sn6VCDbr/xqDhcmKnKeua3TvwCn6/VcqOjVe+t08XpXBraq45HUg0Xjbe9PenVar9rlJKC5WWtmqtiTGsE4LiPUkaaCNIXL14s76Tv2bMH33//vRx+7YsvvpDBu+g0jrSuhlN+l6IBz0OGEDqOBh/NdS5Ite6LbpUZy1d3NLdPKhpduxI0XVWSO5hfrmE+BQvxbLgY0q06O8PDeSIezOOk//DDDxg8eDBiYmKwdu1alJbaOjLIzc3FSy+95Is0EhEREREREYUEt4P0F198UQ7BNm3aNEREnHqu4cwzz5RBOxERERERERH5KUjfvn07zjnnnEqfJyUlISfH1hU/EREREREREfkhSE9PT8euXZVHvVuyZAlat27tQRKoLpRa+vhx/F53j6GoofDoVV06K9PSxqhemLYu2+Or2u35cnW3v8GDYvFGFVT9lJta2F28VCn8X7dUHzwvr5M9xAv1RtXVRqmufVdjvti+VHy13zqd1/h2x/ZN2SkBrCmqy3nn+K1XyrLqZNjfOp3PemPBOqKFnycKgiD97rvvxiOPPIIVK1ZAURQcOXIEX375JZ544gkOvUa6ovKoSORl2tqpvH5iSaQx2trjKLg6jOTxk7yLNcrHvbs//fTTsFqtGDRoEIqKimTT96ioKBmkP/zww+4ujoiIiIiIiALon1WrcPEdd+DIv/8iOTEx0MkJeW4H6eLu+ejRo/Hkk0/KZu8FBQXo3Lkz4uPjUVxcLHt9JyIiIiIiIiI/NHcvFxkZKYPzvn37yl7e33jjDTlOOhERERERETkzGo2BToIm0kBeDNLFeOjPPPMMTjvtNAwYMABz586Vn8+YMUMG52+++SYeffRRVxdHREREREQUtM699m48NGIEnp4wDp16tcJNt9+JbTt24KY77kRK375oOXAgnnj0YZzIzpbT//r3QjQaMAAWi0X+vX7zf0hrmYQXX33BvszHn3kWDz72hHx/IicHw596Cm0GDUKD00/H6UOH4ruff3ZKw+Dbb8ejEydi0nPPoFeP/jINwl9//40zL7gIrbp0w+XDb8P+w4f9mDPktSB93LhxeP/999GyZUvs27cP1113He655x4ZnIu76OKzUaNGubo4IiIiIiIit6mqCpPRaHuVin9LYDaWVvkqn875s1OfV3yZS6uev/wl1u2Ozz7/ApERkfhx1u8Y/eQTuPaWYejWuTOWfPMN5n7wAY4fz8K9I0bKafuf1gf5hYVYv22b/Puf5SvRoH4DLF2+1L68ZStXYUC/vvabqL06d8bsKVOwevZs3HHttbjz2WexatMmpzR8OW+ebPk8a/ZXePWFCTh8JAP33X8vLjz/PPzx4//h1muvwdi33vJCyZDfn0n//vvv8fnnn+OKK67A5s2b0b17d5jNZmzYsEE+p07kjyFBvMm94T58PxAL9yL3ct/feeeNGqDUuDy99HuqurEv12WIQW+lSQvLCx41HTc93Q9Vvw61oWr4qOt+vQvKmurTQ4Wfy9w744o5cwoQlYDVDX/mZFXrMhtNmPbqOATC+S9/BES5Pn27dm3x/LNjUKrGY/LbM9G1c2c8+8TjSCwuld+/POkNnNP/NOzeuxddmzZD9w4dsHjVKvTp0gULl67EPXc+gMlvv4rCwkLk5edj7/796F8WpDdOS8PI226zr+v+m2/GH0uXYvZvv+H0bt3sn7dp0QKPjn4eSeoxRBkNeOn1yWjeogWee/YZ+X3XZs2xY9t2TJ4+Hb6itSNu0NxJP3ToEPr06SPfd+3aVfboLpq3eyNAnzJlirxDHx0djX79+mHlypUuzffNN9/I9V911VV1TgMREREREZE39end2/5+63/bsHTFCrTu3lM2dxeviwedI7/bd+CA/Pfs006TPa2LO/ZLVqzGpYOvQLs27bBi9Rp5Fz09LRWtW7aU04pm8S9/8IFs5t7kzDPl8v5cuhQHMzKc0iDutjvauXs3evbo6fRZ3x49fJYH5MM76aISiM7i7DOGh8se3evq22+/xWOPPYYPPvhABuhvvfUWBg8ejO3btyM1NbXa+UTzejHs29lnn13nNBAR+UNQ3vUioiDivXtd/mwZFxwqtj6imoRHRuDuUc/L99HJJmRZWgHWIqjWAnv9U8ryM67UhDCrikOJDZFoypOfRZotiDbZnvuuaHdyGuqbsxFmsdXhhGKjU23e6xAPuSIuLs7+vrCoUDYxH/vkk4gvtXXgdiwuGbHmIqSlpsi/zz79dHw+dy42bt8um6i3a9seA844E8tWrEBOXh7697XdRRfenj4dU7/8EpOeegpd2rdHXEwMnnz1VRhNJuc0cPSt4A3SxdWc2267Td5BF0pKSnDfffc5VTxh9uzZbiVAPM9+99134/bbb5d/i2B9/vz5mD59uhyTvboLBjfffDMmTJiAxYsXIycnx611EhERERGRPomWtBFlwXJElIIIczRUqwWq1VQpSI9QFRmkh0dGIVyxxTERBgsiFHOVyw6PikK4IcoepEdYKjxiV4dWxN26dMH8335Ds6ZNUL/sIkF0QgPEm20XF2Ay48zeveVz6e998QXOOeN0+fGAMwbg3alvIjcvD/feaYuZhOXr1uHS887DTZdfLv+2Wq3YtX8/OrZuXWM62rVpg9/++tvps1UbN3q8XRTA5u7Dhw+Xd7aTkpLk65ZbbkHjxo3tf5e/3B0CYM2aNbjgggtOJchgkH8vW7as2vmef/55mZY777T1TlgT0aFCXl6e0yt4uXrQqOJKrZudYPg0hf5Iihe2N+Sud6tqEGyz8xbUZXvEhUtf3Smq+alv1fVHH/20X+uZru/2aa581YBuj1rncg5QXXB5u9Xq01jnqqB4nj7N1UPX+CXV/n4G3mPup1MvW6Y1t99yM3JycnHfyMewevNm7Dl4EIsXLcTIUU/be3Svl5SEru3b45v58zFwgO2u+Rl9+2PT1q3yuXXHO+niWfO/li3D8vXrsW3PHjz0/PPIPHGi1nQM+99NslXy86+8il179uD7n37CF//3fz7ccvLZnXQx1Jq3HT9+XFbItLQ0p8/F39vKejWsaMmSJfjkk0+wfv16l9bx8ssvyzvu5Eu1deEVqO5F6rBeg8GL6dATd9Ott5OzmuqHj8tMFx1saq08tZ9nSp3SW8X0ilLHZQbmGFox1a4tXx/7UVXbVn0qvJ0+xYNgWAl4XqqVll3dutxLQ231zPV66AnfLNsfNdon+aKE1rHeW9LT0jDvu28wcdJruOKee1BqMqFRk6YYdPZZ8kYlrBb7c+kbt23Duf1tAXm95Hpo37YNso6fQFuHu+RP3nsv9h88iCvuvRex0dG4/dprcfn55yM3P7/GdDRt3BgfTHkfL7z4PKZ//gV6d+uGCSNG4L5xgemMz1HlX0EFocjlIF0L8vPzceutt2LatGlo2LChS/OIsd3FM+/lxJ30Zs2a+TCVREREREQU6hbOmgakdUPu4Uz7Z6LTt+lTp9h7dz/s2Ny9zGujRslXVINIHLc9uo4/f5xXafn1k5Px3Tvv1JiG38putO6s8PmgQYMw5Dxb317RJjOizBYMGzrUsw2l4ArSRaAdFhaGY8eOOX0u/k5PT680/e7du2XTjMvLnrsof/aivCM70dlcmzZtnOYRz9CXP0dPREREREREpGV1bdNbJ6K3eDGs24IFC5yCbvF3//79K03fsWNHbNq0STZ1L3+JcdvPO+88+Z53yImIiIiIiEjPAt7cXTRFF53SnXbaaejbt68cgq2wsNDe2/uwYcPQpEkT+Wy5GEddjNHuKDk5Wf5b8XMiIiIiIiIivQl4kH7DDTcgKysL48aNw9GjR9GzZ0/8+uuv9s7kDhw4YOtIgYiIiIiIiCjIBTxIFx566CH5qsrChQtrnPfTTz9FaNNab8zeo3htmCR38kh7PUgGZuCz4K1XoZsLqkfb5es8qGFQqTpTvLUQNbBl4PYcqi8zRg2pfSVQy/BlftbcSbz3hidVvLKsQPwmO6Rb9cVQg25/Efht9/owe1WOGVpjuYthT6udlfyP5VAte12tI96ippClm+FLiXSDOxWRP3GPC0F+GobQSwPaeo25tARWiwVmK6ND0jaj0dYdv+gcXfd30omIiIiIiKpiKipC9v49SEyMQ3JUBKBaYSwP2M0qTGYjVNUEtWyccXE3vrw1R6nVijCrCovZBJPF9r1itcpXVVSzCWaLBVaLYp/fqXWn2QirYrUvS1WtKDFXuHigqKdaIJSUwGg2w6Qa5YUG+XXZcgXHdIVZrVAd0qWaLLZtgwlq2TSOjFYrLNVsR+XtMsKsWmGw2NJlVs1QyvLLIJZRcTkmVMrX8ulMZhNQRXpUiyq3wXGd9nxSAItqFf+zZYuq2kfpUsyqzFO52lITSowWWMW0olNxxWrPK1FmFfNSLqs8/0tKEEhie8Rj3LGxsXLksbpgkK5nqhabXNfchMk3aXZqk6WRpip6vdKr13R7o6441lN/5oNa676nhbsYgaH9+qjqdQ0uNbn1xYMRvtoe1a+/f6pX88EfTYn9TfXJPFWfi/hre7WQr56mzQdpV71Yri7tvyr2LF6AhukNsN8YA1WNgLnY9k1EoRn5FgWqWgqIV4VHqcT43wZVRXZ+MfIstiAu3GpFhKXq4DazsBSFlkIYrIp9DHHH3+GsQiMMYXkoKLHdKQ1TrMgJLxvMvJwSJiJW2/v8SBTnFMCsRkG15tkniTGZ5b8n84oQbbWlO8JiQbhDa4HwojAUmEtkkA5r2QY7iDRbEObi8S+zwIx85CLCbGtIbVbCEF6WRpEXIk8chRcpKDCboKpGQC3LN4sVEVYrigtLAFPl9BisKqIcgufMAhOKy8aAtyoGqIoFYWX5mqMYoRoN9jLMLAtqiyOLkWsqRaZYr1imYoAptyxtYWEwR0TBrEY75WVBRFlwXrgXgSb6UmvevDmUOrZ6YZBORERERESaZizIR9ac19CjzUmUmJvi8B+2YLDlJZn46vh7sBg3wVKyRn5mUsIQURaA9tx/FInFRnw04Aacnb1MftbkRB7aZOVUuZ7nhtyFSzPnI7kwQv59xs5DiHQI6McPfgANGn2MIcvT5d8NowpxedP/nBcS0wAoPmF7f8cfWPzNHzhg7AVjnq0vLYPFirN2HpLvP+t3JU7PXSfftz52Ek1P5tsX03hoY/xw+C5YTfthLv67Ulq7HchEvSLX7h4/d8FTONM8Ha2Oxsq/D0c3QpOSDFseZuagefapoFdocW0kvjnwNCzGHbCULLVNl5WD5ifysOaS4VD2/F3pgkj9/CJ0PXzcvowXznsUN2b8IN8XRMSjKO4EUnOi5N9DorejcH2MfN/q0kw80qSxfH9zp5txw8G1eKTElqfJUckY/65tmeHpachs1wf7S0+z56Vwe5vVtjcPlf0b4CHGvdHpOYP0kFTH+3J1uDLE58B1zE/PwZEbe2htZeJOmdWpfLV8hymIaW6fVLS5dq3kk1M6PEiTVrZDL5hfrtFbNlktiC46AtUYDkOG7U50dMERlORaYS4pgrnYFsyZlHBEqLbv1aNHYSgqRVZuMYqybd+bs3JgyCgLois4UlCKgpwsROZHyr+VjAwZVJ/63gRzyVEUZdvCKGN0PqKTDzovRNzRL8y0vY+KgCWvECWlVpSctK0/zGKFIcMWIJ/ILbSny5J5HIbjufbFRBVFyG2zGEtgKjwV/NpXc+woDAWV72hX5XC+BbmmTBRlx8u/c2NiUa8svyyZJ2CocNEiuijKlq+lxTAXleWbmC4zB0UFpVDK0uwYpMfnFsKQcfRUXuWb7dtWEGlCoTkL8dnR8u/wmMMwZMTZ1lVwBBlG21JKlBJEm04iw2jLH6PBCEPGMVu+hRlgTStAScmpvJTzp5Xlf7Rt2cGAHccRERERERERaQSDdPKCwN1Fq/lZ+ZqfGhR9elRHUcVzwGo1F5oVD4dVUmt5FpF3Ix25N3yPDvKu4jNjOkiy+7z3vKhLzyiqWrixVPs+XP1xSvXjs9V+qHCuPVZax3UE5Y7jMdd+c3yx7Mq/mc4z19DnR62fqx6Xv9O+Zp+2LkMfanD4VIc8cLW3BG+mJCC5GaguY+qkitLxQeJVX/6+eTm5lY4T1a7WeTrnv3VTAeqMQXpQqUPFZbOwmlVxYAnFHAu2ba7r9nhjHGBv4aMk+i9DjwRTufvwd8i1ctZDXfD1RRzvlYEWurysKQWBT13NKap4TNf9sUpHtFB3/UG/dUpFKGCQTkRERERERKQRDNKJiIiIiIiINIJBOhEREREREZFGMEgnIiIiIiIi0ggG6URUB+50rhIaHbHoW/VlpJ8edbVB9de8LJcg58MCDoGdWtXB+qqbp+IINKHSmVnQdKgWAvtX4CgIBQzSiYiIiIiIiDSCQbqOBe2QS25sl+Lh1TQlIEPOBWuB6Yn3yiAwdUiPfLiPaqIIFJ8dp4ISs0J/mVfbvujPY6E76wrwMVru9xVvhxO5S6PnGkEbg2gIg3Qiov9v786D5Cjvg4//npm9tDpWF0hISAgbjF4bEOYGh2AHgox5nZCKY4pyGUL8EsfGLihSjo1DUFypCpgQl52g4Ksw+SMOBCfgvA4QEw7bYIwAmUPYSD4A8WJ0a3XuOfO89fTszHbvzPR0z/TxdM/3U7XS7kwfz9396xMAAACwBEE6AAAAAACWIEjPFB36W/fVKJm+6Cqiy2palYFOMVuhs2jVpUYRlFwH+VE25suq+rFZkIJKb/SKbc2q/XToDhcdPk869AOVWk+V6S1SKO098CutASSC+lURPnyr+eLTo2N7PKfET7fZR8OlTadWo9q3D7bdJhtdcq6jq7nU23Rb45l7u+D6vi4zdU9AREAE6QAAAACiOYlggbgOEgFJIUjPlCwOk/bioRdA1OhUQJLocV3I0geJAa1o2m4oBOkAAAAAAFiCIB0AAAAAAEsQpAMAAAAAYAmC9IzK1+Mw0smN0rY9PdzOWtWZeChMEqnsvBX4vm1Bu5+6a/N9WzqG78KwuWyQpTHG1rEt2id0d4K+ZmUbcm0r/BIQd9qSbB20xAhrVLdTyNGsW7nbLloiSAcCYWABAAAAED+CdABICId6ANgtunOWdl8RZCPKC8A0gnQAAAAAACxBkA4AAAAAgCUI0gEAAAAAsARBepYleIOr9jxN1O9xog2+K+t48xU0bc3miSAJYZdvraymO4q24vlbh+sTUaUp7HqirK+OlqW6tz12kkadYhk06wvtjKfOtBFPF3b+GPtJqCcSB05HO+UcbDoddpvbcoEtlpfQWBh6vqj7js3jUSd11G62Itrf6iwR0cxu93Yizcx13m68b+IJs2ot3Y4gHQAAAAAASxCkZ1jb565U+DmVe5425o+VbenJrUblbP+RTuubR4MEKh1V5kJk3llW26dU2pwPndWaynHHCEmp5qVhS1496Qi6TW0yT+TpsUC76Wk2n235ayKSVHaS17iLKbZ6sLx+bd5vDqx5umPPkcpqmUWHIB0AAAAAAEsQpAMAAAAAYAmCdAAAAAAALEGQnin1932GumNDZ+z+Dp3CghIuIve9x83vQ9Yp3AUc59Kjz0/ge7i7mruxRb5E64VJq/dptFEOCp0sN640haNy0BbCSCtfcT7YuP13m4RLlLsfRZsfFfNuTavE6ny0tkarC/mWkyhWXq3DWEc1lZ1dYuvHUhXd7NbnNWUE6QAAAACifY1WikK9OhGwEEF6plh62C+jbD2KCmRXPjqVzkk+kH9ZDJ7QIZ56jYxi2xoOQToAAAAAAJYgSAcAAAAixnlDAO0iSAcAAAAAwBIE6Zll0fHZCB/OEXZJ2m8On3Tplk8E194nr8+Yt35p1VWqsI9Sbbwcq+q3g1k7mNdTAi2LIwP3ZdYVhkV1HBnt+1vLuV2T6iaNRzf8Q9txn2+T2ZrlpcnElj+RWmd7fnf5dtIFYxlywi/Uf1uhU3ojQoOibdauw7b3FtN79glq0+rO9iX8qBiWGaIMtG/5uJ6CL9kVavy0ScN0x5AX1f7k7ofrJVHKQbet/vv20jUI0nMkj7v8dtNdVyl5e0hRzqonp8ppJ8BuKk91mm5m8ja+hVI7Kh1dHdhwsNk/Bdqy13t6UzvzmH9Xt8+E21LLtsuTh6PRdjFq6QYE6QAAAAAAWIIgHQAAAAAASxCkAwAAAABgCYJ0AAAAAAAsQZCeI93xGIWMPfEiZ5Viw4OAopSz6skpNlPdU6fp9si8jW+hdOWDsFrnuVuKxf62b9nWOtknCuYXxeiLvR8AAAAAACxBkI7OKZXDdFmaJ2SXrf0E0WlWxWGqnnbSAuWTyRNkzdp1xO1d0T4aynKpqKyOiVlNtwV8+7GSrkGQDgAAAACAJQjSAQAAAACwBEE6AAAAAACWIEjP/GMQtf/3OrsPUXTfk9JR2i3OuMrNbTbpFrKNZWf/03LtqFmdWCryUR+G1unlNLplWzwwR5I2bXFO/WoxutSqCJalU3+wdgy9qWn6k8hY8HaZ/IgZQZ+JcGxUIZalo+wr+dlURTYOdCuCdAAAAABNjgYSaAFJI0jPFO/htSSHTN3q1M30lA0+ifmMQpsbEt/3n3bt9kh3cV5TuuykRd9y9x/7RX0KIAN5Dzw2tr2CmBbbbNxsc8c89nKorSjx9Tfe/jVbXxvbyo7SHiZtlgtSDtrCtmfDU8MTKwP3KnWE9WpJ2cYlq/nzSXfQHHmvOFD5L7MIEaQDAAAAAGAJgvRu1PG7GzuYP2f32nSVzL7zM89HY1WEddZ+/XLPWUoy2yfjofKeWuo7HMoroIyWE/WLnCNIh10SHHNbP3ymyWWfM9IYPjwJMIdF2570HoDW4jaJhC+Fiv/RZRkJdH3L3X0Jb0ztptGVnvGsCQn1u7w8ZDE57jrwKbtOqyq1jhXjrQt5aGuePtg8P7FtIlW6DSQXdWiJpA+wR7k+3QWXwxOkAwGwSQAAAACQBIJ0AAAARPySPQ5vh0N5AZhGkA4AAAAAgCUI0gEAAAAAsARBOoBELs/j0scs8Ksj6i+MqN983e7E9Lusi/HhSPl/7lLiWdQRzjPz4bb05Yw94KwLHmyWHiXdgCA9y/LaRkPkS7VZCCqVV3fktcIyJMIqSKcNZVGMfdSKKlCxjVOwWDdtQ1rlVaWcFku7V6XfE6ihQ+xrdC2CdAAAAAAALEGQnmV5PUCbRL7SuAwpr/WVJRHWQTe8oxOATVIac1qNdWkPhWmvH4gT+xpdiyAdAAAAAABLEKQD6ABHePOF+rQBdyAikdZAQ7MC1ZBT3EuODhGkAwAAAABgCYJ0AAAAAAAsQZCe8UtRVYuHWXGxzUzKsot9dYC1p3EJss7YsuNKbz4v/w71vl0bLtmLohrCZDm2B/VMLzfWlqVbjXNh6zR8anVeulYU7d+yvOp2v3X3C59i0Q3eNd12EaQw/OiYK0xZ01BU4G9nvrO9Fd3p/mzb9a7933Xe5tjeejyzYDuZkNa9ekZZzJxMWzs0WocgHQAAAIALIRSQJoL0TOmeI3VJ6KIDn0BC8tGptA1XDwBAI4xPyKjwV3F1N4J0AAAAAAAsQZCeVTYdjOrw/s1O7v/yndcnXbrlPVY+N9H4TBv2Xj/PPV+Sv6vbolucSr/sOl2J0x47v0dz5nMn7KJ9ftPR57M2SbRlEu6e9NY32DXNS6OP267fVvNFU0YN7/Osfmdz04z6uQBx9MM2luk/S6fb5vanrmsL5aadI9x6W5RR432CAHdIx1Cfsd3b7ptWHXtaqmdDk9pnMXWTjbElSD11kpFmddtJTQTda41/+xHFvn3eEKQDAWRyAwEAAAA0YMXJITRFkJ4jdLak6a6rlKBHQbMiZ9WTU+W0E2A3lac6TTczeRvf2jsSrXJ1/2nH73PR6aV25nNzurp9JtyWWrZdHmoUjQie4p9nBOkAAAAAAFiCIB0AAAAAAEsQpAMAAAAAYAmCdAAAAAAALEGQnmnJPTgh8Os7Gr0awfVZPK8kcb8CKZrld7yUrL4iIqvpjqKteP5OshzaeaVQl8h9e0yvDDztSgf4PbIVd7jMpq+zi7GthHlNWOB0JJveOEX3oinL+7vV41GLtMXRlSN9nabNZRuFrObP/1XGYZfRyWsduxFBOgAAAAAAliBI70aqw9chKF490Z2od+u07Ish6qyjfs0R73TQJwOxZZvlSUc7abIkH8gXW/pHt6QbCIggHQAAAAAASxCkAwAAAABgCYJ0AAAAAAAsQZAOAAAAAIAlCNIzxf9FJzy6qRlXGVn3nJH2X/uV2fpu9galOBaKNl/lFmxaHcGDe5KquXbXY8+YEWFJqQRSZ025tSOK7aruqDB0agWoI0ufiq13p924dEzz6M5WETIdjVcx/an3MYfxjdRx7cW606xjaDkqyuryvIIu7fbdGe1TTs7fPn/BiyAdAAAAiFicwS38Ef4h6wjSM4UhJ0r2nCED8oJOBQAAGmEfIQyCdAAAAAAALEGQnlFcQNW5mffJ1H3f5H7xKO898t7z1Wht6dPWXibYuBxt5p9Om2q9XfHnIQ+llGVx9DXq1NYSUym1iyTuf45qeelufXSafclzH3WCq01lrd2z7xuvKFeuJe8I0oEAshIEAgAAAK3wzAS7EaQDAAAg0kPSaZ9lzh7KC8A0gnQAAAAAACxBkA4AAAAAgCUI0gEAAAAAsARBOgAAAAAAliBIBwAAAADAElYE6evXr5dVq1bJwMCAnHXWWbJhw4am037jG9+Q8847TxYsWOD8XHjhhb7TAwAAAACQFakH6ffcc49cf/31sm7dOtm4caOsWbNG1q5dKzt27Gg4/eOPPy6XX365PPbYY/LUU0/JihUr5KKLLpI333wz8bQDAAAAAJCrIP1LX/qSXH311XLVVVfJO9/5TvnqV78qg4ODcueddzac/l/+5V/kk5/8pJxyyimyevVq+eY3vynlclkeeeQR6TpatzmfWE7bW3Zh32mqM1TsLensv/d2RiXojtpHfDWqW9RCNEvKw2YqD/nrRFT515bUabr1mez45t44BM138+k6Ljntl3edwPY0jJnra3f98dd35reZPlSi/VVb0O5cVILrTjOfPlQU6bIza9ZINUgfHx+X5557zrlkvZagQsH525wlD+Lw4cMyMTEhCxcubPj92NiY7N+/3/MDAACQKZburANoQOX3AA26IEjftWuXlEolWbJkiedz8/e2bdsCLeOzn/2sLFu2zBPou918880yNDRU+zGXx2ePzs5A1GhQSnKgapWWoIvp9Oh3Vgfn0Om2vG3OpHzyGlHbyV2bSFPWykxF8LmaMfokUgYqO/0gjTbRYJ2q4/QFnK6d7AZNQ0RlqYKcmG+2rojrs+Ntt+/C41p2/NtRFUPaI12iT/riSHsyspru+AQfHf2m7J5yTf1y907ccsstcvfdd8t9993nPHSukRtuuEH27dtX+3njjTcSTycAAAAAAEH0SIoWL14sxWJRtm/f7vnc/L106VLfeW+77TYnSP+f//kfOfnkk5tO19/f7/zkgw5wPGnmTbcqq+c8vbf85PXAmTuPOuQljrEeXQ7bWiK4T7qT/MTWuNtfcNb6W3pUF5WmKx8dNXf/mSMfGTxjUNC6UF1Sp63pTF017/9EjECmxnL3Pcs6pn2DeMrWf6mdrlNlp6W0f/+5yaQO92yVaMatVukM3iZbpye6kVZZ3Aqa0kGLJTM5sk6qZ9L7+vrktNNO8zz0rfoQuHPOOafpfLfeeqv8zd/8jTz00ENy+umnJ5RaAAAAIP/yem4EyIpUz6Qb5vVrV155pRNsn3nmmfLlL39ZDh065Dzt3bjiiitk+fLlzr3lxhe/+EW56aab5Nvf/rbzbvXqvetz5sxxfvItvSEz8BOlGx2id38WxwE1z/J1JA+z7fxJuRk9cpjVdAflOSGoI2lHHWu1Lt3FY1Q3tEeVUhk0Ozsedz/IYp02SHNnb4aYuQSd6TJuuDadwzfW2Nx2U9iOBF5koJeldJhAi6vG+rbTZrqDxgXeqwRU/sssT0H6ZZddJjt37nQCbxNwm1ermTPk1YfJbd261Xnie9Udd9zhPBX+Qx/6kGc55j3rf/3Xf514+hFFR5px+VGIxWm/dbdIl/8bNGJ4pUuD9LgvIUv2dSaNRZ2CyoDc+Y6XbvUMuATKLpoDN6627ntVqc3nMIJdDqvrMqpD1nkEt1A0mjL6Rt4yGb7jVP3EESSkne+DieVxPjqd7U2H9xzEIPxC099qBKunpn0gdH22uhS9vWA13HgTTBzLDLLW6d/ctzta21Jaqms7mclKo4R2kvh4j7Q0DKBrm++o1h1sOf7tVUu3SD1INz71qU85P408/vjjnr9fe+21hFKVYz77JcGCnfZ3bKyOPXx1z6DQXGYrL8clrayoM1pGWij5bJWT99Bi+NltyQfyJaPtiv7QMRtODiGnT3dHnmVh8NVWZCPJQTZvA3oWWlnu+V/SYp5UklBCsimbfbJsZY/MZlkm1Q/DC3VpayhhlpulM3LefIW4yaILWLa1bueMUwx9rFurVUl3IEgHAAAAAMASBOmZ0C3HjNw44pj+2YogurFtdqfY2ll274GJTbi78e245QEZ3BR2xYOZkm3/OsI01n9KX86Uunvpqb+oaOkOBOlZltf7cULkS7VbBmmUXV7rK0sirQLqM852rwKVrwV1oKLKCzIllSpNqx0pi7ZtKjPbXNPvu/oWCuR839HWdOUHQToAAAAAAJYgSAcAAAAAwBIE6QAAAAAAWIIgHQAAAAAASxCkAwAAAABgCYJ0AAAAAAAsQZCONt6F3PqVIl3x+lUgdXZ0NDtSAdjeQm1JR5dgRyQgygmwEUE6AAAAAACWIEhHICrQGfYgy4mBimWpQDJCtt+o+iK6HOOmRfJXF6qd9tVum6Qt210GFictMTbXT7vpjjtPKqNlFiGC9KxfktTiKiVvE1c5vwy/+dzBZbeMYBnrmpIOc8NKiGnzRyWQax3nHLEmvxtahE59GTrDg5Nu1I90TNv+uHfkG6a7ncy4y0K1nCa9zYeOpBWGmrOa2c6bSzit2o6rnppWWTdS0dVSN2xNOkGQDgAAAKBGuSIoxf39QOII0jOFQ3lR4sgoELV8dKrOrtwBAAD12LaGQZCOru3A7qPEDb9v8ntdGl1HmHVHl5PZeaQ6rYDFs9aWSbCz7PyTqbKemxYpz+7GOInL3TMrlqJJp63YVss68imTu+Q+2j4Tdc24t9HZHZemufKTQiOevp0hOcrifpu28OXRpOYSqVCbxwn7EKQDgeR/MAAAAACQPoJ0AAAARCofZ62TRHkBmEaQDgAZormqAwAAINcI0gEAAAAAsARBOgAAAAAAliBIBwAAAADAEgTpiP8+2NCvKGt/+ZGtoePFZPW+4aymOwopvQ6vxTt0uAfdcp1UT6D3J8VU/+51Nx1Dw6w7x+001Huu2nk9WsRll8Z7ueqS0EYaAsyjU81v+uVqU50HXmWgYS651wWmwoI+GXm6A+ap7dcz6oyWWYQI0gEAAAAAsARBejdSqsMjXrwmpCv5tBurZTLZOprMJVRnmSziPLCtT+p006Oadhtbykl1libb6tt2lFdAGS0n6hc5R5AOAAAAAIAlCNIBAAAAALAEQToAAAAAAJYgSM+y3D75UOez7PJaXVkSab1ToemjDtBFUtvm6y7dF4lCfsum7ad2Ixxb+5et6coRgnQAAAAAACxBkJ4J1aNVOsC7VnVuDnrF8dxObdnDiTt81m98dBRts+OFBxZf2WWs0yRcYDqxZaRXD9rC6uk0TbqDOYI2nTbfeG2FdlJWt311v4a+k0SopJ+O7Zfa6e+CvQcm3PR2SmLL3GA7GluBueqk5Q5PJ4kIs2zl81lYjdOsp9p6mKWqEG+T0I2mDvH0ec9VCVbtDNZrmFfP914q8Fs4MBNBOgAAAIAmJxGIrICkEaRndMi0a7iM8LyOCrc47Xt5QCfp8l6VoIIutf0vvWw6ktpBMXZ29Yb/zJnbadDe48/1qY/iLEISQp77rjWCcPWlm04f9uxf3GZezdRoilCDWpvJSKoMol9PuOtwIt7eRLCY6ES70ER7hW41PutoUtminXv2Caq/6/jald/J6M7bahDNE+Bdu45hlQm1MFOPnlXZvH1s1VY73S9tIGRxuM9kB9+PSngbqwP06y5AkA4E0T1jAgAAAIAUEaQj9L0zybAtPfaeybUlHVnUeSuzp+yTfp5CdNK+YsKeOuyW/t80zbFuh7JXTknWdzzPgLFhUGpeXkFSl2wOvGvzv9oKmcPN2JFR0h0I0gEAAAAAsARBOgAAAAAAliBIBwAAAADAEgTpAAAAAABYgiAdAAAAAABLEKQDAAAAAGAJgnQAAAAAACxBkA4AAAAAgCUI0gEAAAAAsARBOgAAAAAAliBIBwAAAADAEgTpqNA67RRkjhYV7/Kpkth1XsTxtoFGdJOGoXLaXuLuZ2nUYbdrWqexDnr5qOe4+kNOh4+O89wt5RL/OAsgLIJ0AAAAAAAsQZCeKfXHdFWLQ77JnF2L6Qisjipd9h4LV660uX/3avx5vLlKvsw6WWOzskvzaoS6Vau0z1SEKYwkCy6ZctGq3fYUJn2tpg2w3KbtRAeunqhLNEhpJNViVCLtRbfVbpotI/m5E1i2an1m1tuPmu1uhi9g5ZMXFck4q2MoQfe2PsrlBqWs3/Z7Uqji2na6+nao+dpIQ5vptnePtV11vXT6m2aZVT79OvV9qeQQpKOjS2wbTOj7WTyDj3vnNZo16G69Vj2r6Y4ir+6/g5RDZEXlvyCdw012rtqjjjl7cZWBZ7lN2n6YdQedtOP8pNAmGqZZd5i/6LdbjRadFp1owhPKcBbGo5gOLDSaP/i2Kcntqa107tIdNEd5vRUvCQTpmZL/I0k29WXPgVx3yuqKPuxBCJ2p+8NsqpNUJXKGJkfiii3t6RpdWiHNl0PVJE/7dogOz+aHmL35lWBtrTnCZXmDyXyMwH75CX7FTaeS7O9+V090jRgy7u632StXLXnXk3YCkMZQqFKbPfgOdv47X1SSC+gbrSf4um068NA9Bw7CXOPdSf3QX6MsER1haNRNNdO0BdtyUNuTDtXGvQYR5yPTZ4YDcMrLkrr3pQJ+GlNebOkfYamsXa1ne4KzQ0t34Ew6AAAAIsWB2bAoLwDTCNIzLLcbwBBHddt+SEwqR45zWl9ZEmW9Z/XsQ9LaLKdgDwizoA6ULQ87y4jc9Jtu2oZEeMVOou0n3bZm+n1eWjtSZOuYaWu6coQgHQAAAAAASxCkAwAAAABgCYJ0AAAAAAAsQZAOAAAAAIAlCNIBAAAAALAEQToAAAAAAJYgSAcAAAAAwBIE6QAAAAAAWIIgHQAAAAAASxCkAwAAAABgCYJ0AAAAAAAsQZCeYUq05FMC+dJ5LTskVu+0IQtQB+gm2tL10g+7EtWeDFv3NWxNV44QpGeKDvBZ806T5e4UWdqVWEW5Bjn379mTbtrjKzudn8bWJq3izWKwEo6iflVuak5nYY0tCzHL41243GjfTmRbK9RWnUhoWHRZbzpN0+/aH4ht3TpwMarEW2PwtDVfgv+cofIRIhG6K0+6tZdmlamtbboI0jNB5zt9MwOsMAOjb3CmOwv6PMuOoA6yEITraGfQHQzA7o1W47UkW54dr017S6N+eRloH+2E1bV2ryPd2WqbjnN5zVpqqEHN6t0W37Tp9sZBnclhVKdY4BGtW7VqadGM3/4VFzIvLRqAd59AR7Qv0Z7g/T6etuQdmtpZhyWdzZ5On7JoysFz8EWnt+4wq9PuNtBF7YEgHQjA5p1mAAAAIJzuCXiziCA9V3SMR9STZlt67L08yZZ0ZFHnrcyesm/ritoMiL9921OH3dL/m6Y51u1Q9sopyfqOo+TtuCakeXnZkDq/FGX3ais0FPy0NVpQ0h0I0gEAAAAAsARBOgAAAAAAliBIBwAAAADAEgTpAAAAAABYgiAdADIktleTAQAAwAoE6QAAAAAAWIIgPcNifzFRWyvQKSdUp5h3iTwdyctquqPIa/TtKFgy/NelO2+MGaZznkKdXhm421XTMVRbWFfJt4lGXbDzVMQ53qTfb9oatnSbkyQ2RqZfrk2lsJ0IvOtVTmCcs7hqHFndjusUF6IzWmYRIkgHAAAAAMASBOldSCnl82WgJUSYGmSGX7tBSlSEddZJ/XLEOxX0SY/mpWFLOakO02RLPrKC8spzOfnuywI5QJAOAAAARI4DmADaQ5AOAAAAAIAlCNIBAAAAALAEQToAAAAAAJYgSAcAAAAAwBIE6RmnQj2eJFtPwlTu9KpkHtxi5yNedM7WmVx+7KzPlLjeOUq5hBDpsNlJHejAiVItFq47eSpyk3fXzvw0z21MZ34EVrGmSk8tXnXU3tPck9GtXsye0nqToJu8iyBcgqptIMh6Gq0vau20xFb7155xNs8D3gxhY426ttNFZdUpgnQg0uE/3GbGPXiF3Qgmx86DO+4NpL1l12aglZXsWNNuoiiwrBe6TiR/KpYaT6et2FfjOuJYrrMc2lc+7cpPTlq34eAH80KsZkabUzkt1yREX2bZqgXdtTlvB0E6EEB2gkAAAADAH/u2diNIBwAAgCWX1XcrygvANIJ0AAAAAAAsQZAOAAAAAIAlCNIBAAAAALAEQToAAAAAAJYgSAcAAAAAwBIE6QAAAAAAWIIgHQAAAAAASxCkAwAAAABgCYJ0AAAAAAAsQZAOAAAAAIAlCNIBAAAAALAEQToAAAAAAJawIkhfv369rFq1SgYGBuSss86SDRs2+E5/7733yurVq53pTzrpJHnggQcSSysAAAAAALkN0u+55x65/vrrZd26dbJx40ZZs2aNrF27Vnbs2NFw+h//+Mdy+eWXy8c+9jH56U9/Kpdeeqnzs2nTpsTTDgAAAABAlJTWWkuKzJnzM844Q26//Xbn73K5LCtWrJBPf/rT8rnPfa5u+ssuu0wOHTok3/ve92qfnX322XLKKafIV7/61Zbr279/vwwNDcm+fftk3rx5YqsHvn67vPXyZud3dUDkoJwoE4cfFtGjzmfH7O2XyYF+eWPOhBRKI85nff0niO55u0wcmr6yYKy/KP1jJef3+f1KBnuVDGztEzVV6yPHjDv/l3pmS3HykBQPF6RvZ0/lu5Xjsmmg3/l9dqFfjh3Z73Osp+z8pqUoSirrm/V6XyUNS8ry4lDR+X3lDi1LhqfXvVNfIpOjz4ku/cb5bMmBXin2Dsqm5ePSPzopsw9NVNI+UpRFh3tr823qr6TryOJ8WTgxIj0TlbSNDRwp/aOVAzwTvfNlePw9ost7ZXLkCeez/gklR+/vF1Eiv1w4Lmoq3VUDE0qW7++XLcsXSGFspyg9OZUvZxbHiuE+6SsV5OAxPbJHv08mR34kulzJ1BGzCtJbFNGFXlHlCVElJQP/r5Lu0aMnZEfhA1Ke+LWUxl+uW677d5PfwSNEduoPyOTos6JLb9WVumkDPWUlW99Wlu09lfI9Y8t0d67WbbUeghhdMS471CVSGt8i5YlK+5vbp5yfib75srd0UHZMrettvUul9+BBGdZny8TI4yLlA3XLO2p2QdRUprT0yS79uzI5+pTo0q6m+anasqTotEmnXA/1yLzRSrus+sWRIoXSaF3ZuS2bU5D+bT1SGKscjyz1F2R8aWWeif5FslkO1qY9rrBQBkYq5VwuDMju0gVSLm2X0mjlyp7Z4wVZesBblttXnihjcpRMHPq/devum1SyYl+lnVb9cvGEKF3pH0sGC1KcOkxq+kFp4ldSHv+Z83d/n5K35g44v6/qXSJzDm71tPkjD2+v5Kc4KMXSYee7d72uZXDMW/fVduj0s7GNoiffdD5feqBXZo8XPdOWC30yUTpC9sspMnH4ERF92FMvI8dMyk59sUyOPiO6tM357qj9vTI4UZS9K5fKATnJM0YtnV2QgnLn7xdSHn+lrpwWFgqyYGelXEdXjstLU2POLNUvK8sFGR7z9uFqH3WmXzYpO3oulvLEa1Iaf0n8HHmwV+aOFZ1xbdbW6Xrcs/KoqfH1+yJ6qgBdVu3pl6L2ti5TZtV+NT5UkNL8Sp4rrbDSB7Uoebm/Ms2qSS0jk78r5ck3pTS20flszlhBFvT3S2nOWF0/feXtWg5MNY7/NVmUPZPv87TFgaLIwlnmeyUTerEMy5kycfgxEV1pz8MLBqQ8VfjvGivJLr1WJkefFl3a4am3at1P9C+U3rE9U+2gXwrlsdp2Yc/Ee53+avqtky9VrLVhTz2O9MrWxQWZc6gyrylrU+Yzjc/rkW3z3+ep076CyOLBQqDxanx+QUpDow2n++Xby7K3OD0+DR58fSrNPVLSg7JXnyeTIz8UXd7nGcurDh1TkN36ApkceVJ0uVIey/f1SXlglrzVX5nHWfbuAZkY6JE3Zh+sG+u09DjlXZ58Q0pjzzvfDfYomT+gPGXrZvpxpY53Smn0J85n/UWRRU4dTzPb1136ItF6VCZNHxWRohJZYtatxdm2G2NLS7K97/1SntwqpbEX6tY31K9kdq/ylOHwykWyX06VicOPiuhDDcco97bLvU02be1Xi0pSKFfa09H7+mR4wZAcKO+sjcvLZhVFivW7m9UxrEI52zx3fx4aLcriQ9PtaGR2n2xZPCJzDlb2DeaNFmXu3B55ad50WZ04VinjyZ45snfifNHlQzI58qinvIwJKcjm/sqyj+ldInMPbq2MVeM/l/LELyvTDxRl5+xKOZ04ZsZSM968LqXxFxum7/AxE7V+v6xnocw5WJZ9crpnTHX3T9NO9YEBOSzHebYjexbNkv4JkZNfnS6z4ZULZb+c1rCOptvQDimNPl0bJ34zf1YlLeWilMbfJ7q0WyZHf9ygjRXqxnczhqmp8cxsH6r1W637zcuHpGe0si3SUvDsTx27p18KU+Pm6PIJ0T3T+ZhZxovM9n2yT361UNf2Z82+4JypbdRkf49sWjYuc/ePe9Jttutm++7dd9ks5Yktde2sOuZtPmpAesaHa23nCFfduW06Zkj6Du+QYrmS7pXD/dJbmt4O/GzlAhnp3Svzhytjf48SOXKqXTUyMvtoGT24Sib1bJk4/KDzmemzb9tT2c5vWdonxan92IWHe2TByPT+zujSsuzo844pbu7teSs/X7FIZHKb9I1XxvByoVcK5UpfWjBSlIVTfbq27gb7rdX6/80RgzIyNU66DUwUZPn+6bHF005UUUpFLT2TlbayVIoye3f9vv3cwqCsHDskL/dOl7l7//atlafJhAx54h2zv2f879vukrkLFoqtwsShqQbp4+PjMjg4KN/5znecs+FVV155pQwPD8t3v/vdunlWrlzpnHm/7rrrap+Zs/D333+/vPBC/cZobGzM+XEXjjkIYHuQvv6K/yOjY5WBEgAAAADQ3Ie+cIscs/pEyUOQ7j01lbBdu3ZJqVSSJUuWeD43f7/ySv0ZF2Pbtm0NpzefN3LzzTfLF77wBcmanlk9UhyfPhJkzuwZ5oxzryxwjjhXTzqW9F4pqEFRakDKqr82XVFV5i/pfaJUvxSksgwzW/VMuuvEZU3B57swmi3H/fl0vt6SogxKQfo905f1IdEyIb0yf/qzEOkyZ1DMjzlDpsu7pVcqZWIO8JpklPQeKaoFoqUkZb2/9v102ZrvzboLtd8LutAg/aa8h8xxd99yqE4vpb3m+LAU1FwpO0fXS1O/m6PjJemReXXLL6jZoqTfSUePLKgd43af5DP1Wj2XV/3cvf7q781401g5211Qc/zn8ZTBdFmZdlqunkZvMK3Jr5Le2rTVNu1Or2m7Bel12oYzn3jzZ+Y16VPSN/X79DKr7X9mGQRlzkKbM1dSPija1TZqaZhqQ978m2nKUtLDtelry5vR5tzn/qfLfE+tLbSjWT49aZTZTj+rfec3rVpQOxtS1x5ljhSlr1YXM+drnL/dTvmY/JkyKqgBUTLgWz8z+3CPLKwtuZImkxfzy7BoPeb0w7I2V3WYM/mzp9YzS4q6vzZPdQz0S7u7XTrfuXI0s50GoQumrAqiyvudPm/GtHKjvjvVThq2RX3YuWrH3bab9cGm38scKZh6a7CexumuX3dlvNzn/G7KWk2VtdMfZFS0Hpkqu3omzzPrtFFfbaZaZtXpZvZH33k95TAkhRnj9cw2bsZhJT2e7UHjbcTChnUt5f1OWVS2Df5a1XGNKkhZmbNUZeeMZ7NxThf6nTOhUt7nnHk3aXD2BaTX2V9wFhWgHzQbo3pkbsOxrUeGREmxrsyC9pPp/rxXtB6XXvGWXXU5ZT0iWsbq+lF9eZm0mDN1JdGl7c3LdUY+zVUnJh+mXbtNl2tlvGmWvsbLrC/XxtPU12mQOppuQ4ecq0Xq2mWt3404V7L4jSPT29Wp/Uuzbza1r1Kt+0petTPN9P7mHs8Y3ahMptez04wczjbJsz8rg1JssI0y+4JmvGnW5r37Lmpq/N/jbO/MOmpl6LSd+rZlvpu5b+zkRy0QNeNqquk0laWsffqrm1KeffQetdDb/6auhOoR7z6Xtz+bMeWwM85X8jbbKatGVxO695fc265aOdfq1ex3mmuA6vf1vOW6R7RMSq/Ma1j/5jv3frS3rOrbSUFVxoqg29JCtS842xBvWbrLv7fXewVjlqUapCfhhhtucM68zzyTbruPf631pfsAAAAAgHxJNUhfvHixFItF2b69cq9Clfl76dKlDecxn4eZvr+/3/kBAAAAAMB2qT7dva+vT0477TR55JHKA1CqD44zf59zzjkN5zGfu6c3Hn744abTAwAAAACQFalf7m4uRTcPijv99NPlzDPPlC9/+cvO09uvuuoq5/srrrhCli9f7txbblx77bVy/vnny9///d/LJZdcInfffbc8++yz8vWvfz3lnAAAAAAAkPEg3bxSbefOnXLTTTc5D38zr1J76KGHag+H27p1qxQK0yf8zz33XPn2t78tN954o3z+85+X448/3nmy+4kn2vskPwAAAAAAMvGe9KRl5T3pAAAAAIDui0NTvScdAAAAAABMI0gHAAAAAMASBOkAAAAAAFiCIB0AAAAAAEsQpAMAAAAAYAmCdAAAAAAALEGQDgAAAACAJQjSAQAAAACwBEE6AAAAAACWIEgHAAAAAMASBOkAAAAAAFiCIB0AAAAAAEsQpAMAAAAAYAmCdAAAAAAALEGQDgAAAACAJQjSAQAAAACwBEE6AAAAAACWIEgHAAAAAMASBOkAAAAAAFiCIB0AAAAAAEv0SJfRWjv/79+/P+2kAAAAAAC6wP6p+LMaj/rpuiD9wIEDzv8rVqxIOykAAAAAgC6LR4eGhnynUTpIKJ8j5XJZfvOb38jcuXNFKSW2H20xBxPeeOMNmTdvXtrJAaxHnwHCoc8A4dFvgHDoMxUm7DYB+rJly6RQ8L/rvOvOpJsCOfrooyVLTGPu5gYNhEWfAcKhzwDh0W+AcOgz0vIMehUPjgMAAAAAwBIE6QAAAAAAWIIg3WL9/f2ybt06538ArdFngHDoM0B49BsgHPpMeF334DgAAAAAAGzFmXQAAAAAACxBkA4AAAAAgCUI0gEAAAAAsARBOgAAAAAAliBIt9T69etl1apVMjAwIGeddZZs2LAh7SQBsfjhD38oH/zgB2XZsmWilJL777/f8715tuVNN90kRx11lMyaNUsuvPBC+cUvfuGZZs+ePfKRj3xE5s2bJ/Pnz5ePfexjcvDgQc80L774opx33nlOn1qxYoXceuutdWm59957ZfXq1c40J510kjzwwAMx5Rpoz8033yxnnHGGzJ07V4488ki59NJLZfPmzZ5pRkdH5ZprrpFFixbJnDlz5A//8A9l+/btnmm2bt0ql1xyiQwODjrL+cxnPiOTk5OeaR5//HE59dRTnafxHnfccXLXXXfVpYdtFbLgjjvukJNPPtnZRpifc845Rx588MHa9/QZwN8tt9zi7KNdd911tc/oNzEzT3eHXe6++27d19en77zzTv3yyy/rq6++Ws+fP19v37497aQBkXvggQf0X/7lX+r/+I//MG+a0Pfdd5/n+1tuuUUPDQ3p+++/X7/wwgv6937v9/Sxxx6rR0ZGatO8//3v12vWrNE/+clP9I9+9CN93HHH6csvv7z2/b59+/SSJUv0Rz7yEb1p0yb9r//6r3rWrFn6a1/7Wm2aJ598UheLRX3rrbfqn/3sZ/rGG2/Uvb29+qWXXkqoJIDW1q5dq7/1rW857fj555/XH/jAB/TKlSv1wYMHa9P82Z/9mV6xYoV+5JFH9LPPPqvPPvtsfe6559a+n5yc1CeeeKK+8MIL9U9/+lOnDy5evFjfcMMNtWl+/etf68HBQX399dc7/eEf//Efnf7x0EMP1aZhW4Ws+M///E/9X//1X3rLli168+bN+vOf/7wzvpt+ZNBngOY2bNigV61apU8++WR97bXX1j6n38SLIN1CZ555pr7mmmtqf5dKJb1s2TJ98803p5ouIG4zg/RyuayXLl2q/+7v/q722fDwsO7v73cCbcMM6ma+Z555pjbNgw8+qJVS+s0333T+/qd/+ie9YMECPTY2Vpvms5/9rD7hhBNqf3/4wx/Wl1xyiSc9Z511lv74xz8eU26Bzu3YscNp/z/4wQ9q/cMEH/fee29tmp///OfONE899ZTzt9lRKhQKetu2bbVp7rjjDj1v3rxaH/mLv/gL/a53vcuzrssuu8w5SFDFtgpZZrYJ3/zmN+kzgI8DBw7o448/Xj/88MP6/PPPrwXp9Jv4cbm7ZcbHx+W5555zLumtKhQKzt9PPfVUqmkDkvbqq6/Ktm3bPP1haGjIudSp2h/M/+YS99NPP702jZne9Junn366Ns1v//ZvS19fX22atWvXOpcJ7927tzaNez3Vaeh3sNm+ffuc/xcuXOj8b7YfExMTnrZsbuFYuXKlp8+Y2zmWLFniaev79++Xl19+OVB/YFuFrCqVSnL33XfLoUOHnMve6TNAc+ZydnO5+sy2Tb+JX08C60AIu3btcjYg7gZtmL9feeWV1NIFpMEE6Eaj/lD9zvxv7nNy6+npcYIW9zTHHnts3TKq3y1YsMD53289gG3K5bJzf+B73vMeOfHEE53PTHs1B6PMgSu/PtOorVe/85vG7FyNjIw4B7fYViFLXnrpJScoN/fRmvtn77vvPnnnO98pzz//PH0GaMAczNq4caM888wzdd+xrYkfQToAABk9w7Fp0yZ54okn0k4KYL0TTjjBCcjN1Sff+c535Morr5Qf/OAHaScLsNIbb7wh1157rTz88MPOw9qQPC53t8zixYulWCzWPR3R/L106dLU0gWkodrm/fqD+X/Hjh2e782TQ80T393TNFqGex3NpqHfwUaf+tSn5Hvf+5489thjcvTRR9c+N+3VXB44PDzs22fa7Q/mydjmLQtsq5A15qyfeXL0aaed5rwlYc2aNfKVr3yFPgM0YC4xN/tW5qnr5upE82MOav3DP/yD87s5k02/iRdBuoUbEbMBeeSRRzyXNJq/zWVaQDcxl6ibQdjdH8wlUOZe82p/MP+bjYTZoFQ9+uijTr8x965XpzGvejP3T1WZo8PmzIq51L06jXs91Wnod7CJeb6iCdDNpbqmnc+8jcNsP3p7ez1t2Tx7wbwGx91nzKW/7oNbpq2bnSJz+W+Q/sC2Clln2uvY2Bh9BmjgggsucNq8ufqk+mOe/WNed1v9nX4TswQeToeQzKsGzNOr77rrLufJ1X/6p3/qvGrA/XREIE9PDjWv5jA/Zkj60pe+5Pz++uuv117BZtr/d7/7Xf3iiy/q3//932/4CrZ3v/vd+umnn9ZPPPGE8yRS9yvYzFNIzSvYPvrRjzqv3DF9zLzyY+Yr2Hp6evRtt93mPKF03bp1vIIN1vnEJz7hvJLw8ccf12+99Vbt5/Dhw57X4pjXsj366KPOa3HOOecc52fma3Euuugi5zVu5lU3RxxxRMPX4nzmM59x+sP69esbvhaHbRWy4HOf+5zzBoRXX33V2Y6Yv80bQL7//e8739NngNbcT3c36DfxIki3lHlPoGn45r2A5tUD5v3PQB499thjTnA+8+fKK6+svYbtr/7qr5wg2wzSF1xwgfOeW7fdu3c7QfmcOXOcV3tcddVVTvDvZt6x/lu/9VvOMpYvX+4E/zP927/9m37HO97h9DvzShDzXl3AJo36ivkx706vMgewPvnJTzqvmDI7P3/wB3/gBPJur732mr744ov1rFmznPfW/vmf/7memJio65unnHKK0x/e9ra3edZRxbYKWfAnf/In+phjjnHaqQkSzHakGqAb9BkgfJBOv4mXMv/EfbYeAAAAAAC0xj3pAAAAAABYgiAdAAAAAABLEKQDAAAAAGAJgnQAAAAAACxBkA4AAAAAgCUI0gEAAAAAsARBOgAAAAAAliBIBwAAAADAEgTpAACg5o//+I/l0ksvTTsZAAB0rZ60EwAAAJKhlPL9ft26dfKVr3xFtNaJpQkAAHgRpAMA0CXeeuut2u/33HOP3HTTTbJ58+baZ3PmzHF+AABAerjcHQCALrF06dLaz9DQkHNm3f2ZCdBnXu7+3ve+Vz796U/LddddJwsWLJAlS5bIN77xDTl06JBcddVVMnfuXDnuuOPkwQcf9Kxr06ZNcvHFFzvLNPN89KMflV27dqWQawAAsoUgHQAA+Prnf/5nWbx4sWzYsMEJ2D/xiU/IH/3RH8m5554rGzdulIsuusgJwg8fPuxMPzw8LL/zO78j7373u+XZZ5+Vhx56SLZv3y4f/vCH084KAADWI0gHAAC+1qxZIzfeeKMcf/zxcsMNN8jAwIATtF999dXOZ+ay+d27d8uLL77oTH/77bc7Afrf/u3fyurVq53f77zzTnnsscdky5YtaWcHAACrcU86AADwdfLJJ9d+LxaLsmjRIjnppJNqn5nL2Y0dO3Y4/7/wwgtOQN7o/vZf/epX8o53vCORdAMAkEUE6QAAwFdvb6/nb3Mvu/uz6lPjy+Wy8//Bgwflgx/8oHzxi1+sW9ZRRx0Ve3oBAMgygnQAABCpU089Vf793/9dVq1aJT097GoAABAG96QDAIBIXXPNNbJnzx65/PLL5ZlnnnEucf/v//5v52nwpVIp7eQBAGA1gnQAABCpZcuWyZNPPukE5ObJ7+b+dfMKt/nz50uhwK4HAAB+lNZa+04BAAAAAAASweFsAAAAAAAsQZAOAAAAAIAlCNIBAAAAALAEQToAAAAAAJYgSAcAAAAAwBIE6QAAAAAAWIIgHQAAAAAASxCkAwAAAABgCYJ0AAAAAAAsQZAOAAAAAIAlCNIBAAAAABA7/H82d69P1KZt0QAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -749,10 +771,317 @@ "plt.show()" ] }, + { + "cell_type": "markdown", + "id": "6f0789bf", + "metadata": {}, + "source": [ + "------" + ] + }, + { + "cell_type": "markdown", + "id": "f9fb1d0d", + "metadata": {}, + "source": [ + "## From library" + ] + }, + { + "cell_type": "code", + "execution_count": 349, + "id": "9d79adca", + "metadata": {}, + "outputs": [], + "source": [ + "path = \"../scratch/sub-MM229_exp-109hrb21d_ses-20220329_behaviour-gonogo_regressors.npz\"\n", + "testfile = np.load(path)" + ] + }, + { + "cell_type": "code", + "execution_count": 350, + "id": "10444c5e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "ItemsView(NpzFile '../scratch/sub-MM229_exp-109hrb21d_ses-20220329_behaviour-gonogo_regressors.npz' with keys: regressors, labels, timestamps, trial_idx)" + ] + }, + "execution_count": 350, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "testfile.items()" + ] + }, + { + "cell_type": "code", + "execution_count": 351, + "id": "dea26eb9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['stim_go', 'stim_nogo', 'resp_cuedpush', 'resp_uncuedpush',\n", + " 'resp_hold', 'reward'], dtype='" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot regressors\n", + "plt.figure(figsize=(12, 8))\n", + "for i, label in enumerate(testfile.get(\"labels\")):\n", + " plt.plot(testfile.get(\"regressors\")[:, i], label=label)\n", + "plt.legend()\n", + "plt.xlabel(\"Time\")\n", + "plt.ylabel(\"Regressor Value\")\n", + "plt.title(\"Gonogo Regressors\")\n", + "plt.show()" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "6f0789bf", + "id": "d979b843", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 354, + "id": "bb731aec", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 354, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(testfile.get(\"regressors\")[:, 0], label=testfile.get(\"labels\")[0])\n", + "plt.plot(testfile.get(\"regressors\")[:, 1], label=testfile.get(\"labels\")[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 355, + "id": "54e2b2a7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 355, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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XYtYFwZxLgziXBjEOTmxjsUJrAAAwF2JHhkBAAD2UYwAAACrKEYAAIBVFCMAAMCqRBcjCxculEGDBklZWZmMHz9e1q5da/uQYqOmpkb+/u//3l8Vt3///nL55ZfLpk2bMu7z4YcfyvXXXy/HH3+89OrVS7785S9LQ0NDxn22bt0ql156qfTs2dP/d2666SY5fPhwgZ9NfNx9993+KsTf/OY307cR586zfft2+ed//mc/lj169JAzzzxTnn/++fTPzfn+c+bMkRNPPNH/+cSJE+X111/P+Dfee+89ueKKK/yFo/r27StXXnml7Nu3z8Kz0am5uVluv/12GTx4sB/D0047TebNm5exdwlxjuapp56Syy67zF/t1HxOrFixIuPnnRXXl156Sc477zz//51m1dZ77rkn4hFnHlwiLVu2zCspKfGWLFnivfLKK96MGTO8vn37eg0NDbYPLRaqq6u9n/3sZ97LL7/sbdiwwbvkkku8k08+2du3b1/6Ptdcc41XWVnp1dbWes8//7z36U9/2pswYUL654cPH/ZGjBjhTZw40XvhhRe8lStXev369fNmz55t6VnptnbtWm/QoEHeWWed5d1www3p24lz53jvvfe8U045xfv617/uPfvss97mzZu9xx9/3HvjjTfS97n77ru9Pn36eCtWrPBefPFF7/Of/7w3ePBg74MPPkjf56KLLvJGjhzpPfPMM96f//xn7/TTT/cmT55s6Vnpc+edd3rHH3+897vf/c7bsmWL98tf/tLr1auX96Mf/Sh9H+IcjXlv33bbbd6vf/1rU9l5jz76aMbPOyOue/bs8crLy70rrrjC//z/r//6L69Hjx7ef/7nf3r5SGwxMm7cOO/6669PX29ubvYGDBjg1dTUWD2uuNqxY4f/4v/Tn/7kX9+9e7d3zDHH+B80Ka+++qp/n7q6uvQbp1u3bl59fX36Pvfff7/Xu3dvr6mpycKz0Gvv3r3eGWec4T3xxBPeZz/72XQxQpw7z8033+yde+65gT9vaWnxKioqvB/84Afp20z8S0tL/Q9k469//asf++eeey59n9///vdeUVGRt3379i5+BvFw6aWXet/4xjcybvvSl77k/8/NIM6do20x0llxve+++7xjjz0247PDvHeGDBmS1/Emcprm4MGDsm7dOn+IqvX+N+Z6XV2d1WOLqz179vhfjzvuOP+rie+hQ4cyYjx06FA5+eST0zE2X80weHl5efo+1dXV/oZNr7zySsGfg2ZmGsZMs7SOp0GcO89vfvMbGTt2rHz1q1/1p7JGjx4tixcvTv98y5YtUl9fnxFrs+eGmeJtHWsztG3+nRRzf/P58uyzzxb4Gek0YcIEqa2tlddee82//uKLL8qaNWvk4osv9q8T567RWXE19/nMZz4jJSUlGZ8nZpr+/fffj3x8sdgor7Pt2rXLn7ds/eFsmOsbN260dlxxZXZVNucwnHPOOTJixAj/NvOiNy9W88JuG2Pzs9R9suUg9TMcsWzZMlm/fr0899xz7X5GnDvP5s2b5f7775dZs2bJrbfe6sf7X/7lX/z4Tps2LR2rbLFsHWtTyLRWXFzsF+nE+ohbbrnFL4RN0dy9e3f/s/jOO+/0z1MwiHPX6Ky4mq/mfJ+2/0bqZ8cee2yk40tkMYLO/6v95Zdf9v+6Qecy23nfcMMN8sQTT/gni6Fri2rzF+Fdd93lXzcjI+Z1vWjRIr8YQed45JFH5OGHH5alS5fKpz71KdmwYYP/x4w56ZI4J1cip2n69evnV+RtOw7M9YqKCmvHFUczZ86U3/3ud/Lkk0/KSSedlL7dxNFMh+3evTswxuZrthykfoYj0zA7duyQs88+2/8LxVz+9Kc/yY9//GP/e/MXCXHuHKbDYPjw4Rm3DRs2zO9Eah2rjj43zFeTr9ZM15LpUCDWR5hOLjM68rWvfc2fPpwyZYrceOONfoeeQZy7RmfFtas+TxJZjJhh1zFjxvjzlq3/KjLXq6qqrB5bXJjzo0wh8uijj8of//jHdsN2Jr7HHHNMRozNnKL5YE/F2Hz9y1/+kvHiNyMApqWs7f8UkuqCCy7wY2T+ekxdzF/vZkg79T1x7hxmmrFte7o5r+GUU07xvzevcfNh2zrWZrrBzKW3jrUpDE0RmWLeH+bzxczNQ+TAgQP+OQitmT8OTYwM4tw1Oiuu5j6mhdicq9b682TIkCGRp2h8XoJbe81ZxA899JB/BvHVV1/tt/a27jhAsGuvvdZvEVu9erX3zjvvpC8HDhzIaDk17b5//OMf/ZbTqqoq/9K25fTCCy/024NXrVrlnXDCCbScHkXrbhqDOHde63RxcbHfevr66697Dz/8sNezZ0/vF7/4RUZrpPmc+O///m/vpZde8r7whS9kbY0cPXq03x68Zs0avwsq6S2nrU2bNs0bOHBgurXXtKGaVvPvfOc76fsQ5+hdd6Z931zM/97nz5/vf//WW291WlxNB45p7Z0yZYrf2mv+X2reJ7T25uEnP/mJ/yFu1hsxrb6mrxq5MS/0bBez9kiKeYFfd911fhuYebF+8Ytf9AuW1t58803v4osv9vvUzQfSt771Le/QoUMWnlF8ixHi3Hl++9vf+oWb+UNl6NCh3gMPPJDxc9Meefvtt/sfxuY+F1xwgbdp06aM+7z77rv+h7dZO8O0T0+fPt3/nwSOaGxs9F+/5rO3rKzMO/XUU/21MVq3ihLnaJ588smsn8umAOzMuJo1SkwbvPk3TGFpipx8FZn/RB9XAQAAyE8izxkBAAB6UIwAAACrKEYAAIBVFCMAAMAqihEAAGAVxQgAALCKYgQAAFhFMQIAAKyiGAEAAFZRjAAAAKsoRgAAgFUUIwAAQGz6/+A8Fqo+O5a5AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(testfile.get(\"regressors\")[1000:2000, 0], label=testfile.get(\"labels\")[0])\n", + "plt.plot(testfile.get(\"regressors\")[1000:2000, 1], label=testfile.get(\"labels\")[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 356, + "id": "9e5c8754", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 356, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(testfile.get(\"regressors\")[100:600, 1], label=testfile.get(\"labels\")[1]) # nogo stim\n", + "plt.plot(testfile.get(\"regressors\")[100:600, 4], label=testfile.get(\"labels\")[4]) # hold\n", + "plt.plot(testfile.get(\"regressors\")[100:600, 5], label=testfile.get(\"labels\")[5]) # reward\n" + ] + }, + { + "cell_type": "code", + "execution_count": 357, + "id": "c7132a2c", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAK9CAYAAABYVS0qAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAC0yklEQVR4nO3dB5wbxdn48UfuNi4YjG0MBtM7xkAgBgIECCVAAryU8OcF00NL6B1M76GFGjrkhdAhoZkQem+mBjDNBIIxxoA7rqf/5xlbOkknrXZ12p2Z3d83n4s5nU67NzM70jMz+0wun8/nBQAAAAAAWNfB9gkAAAAAAID5CNIBAAAAAHAEQToAAAAAAI4gSAcAAAAAwBEE6QAAAAAAOIIgHQAAAAAARxCkAwAAAADgCIJ0AAAAAAAcQZAOAAAAAIAjCNIBAAAAAHAEQToAILPGjh0rhx12mKy44orSo0cP87XqqqvKoYceKu+++65kzZAhQySXyxW/FlpoIVlvvfXktttus31qAABkRi6fz+dtnwQAAEl7+OGHZbfddpNOnTrJHnvsIUOHDpUOHTrIRx99JPfff7/85z//MUH80ksvLVkK0vv27StHH320+f6bb76RG264QT7++GO57rrr5IADDrB9igAApB5BOgAgcz777DMTlC+11FLy5JNPyuKLL17287lz58rVV18tO+64owwePFiyFKSvvvrqZgCj4LvvvpNll13WlMMHH3yQ6PlMnz7dzOb7oqWlRWbPni3dunWzfSoAAI+x3B0AkDkXXnihCQBvvvnmNgG60tn1P/7xj20C9Keeekp+8YtfmMBx4YUXlt/+9rfy4Ycflj3n9NNPN0vFP/30U9l7773N8/r06SP77LOPzJgxo81gwFlnnSXLLbecdO3a1QTJJ510ksyaNatN8KevO2jQILMk/5e//KUJmPX5eoxSn3/+ueyyyy6yyCKLmOf+/Oc/l0ceeaThslpsscVk5ZVXNgMbled02WWXyWqrrWaC0gEDBsjvf/97+fHHHxs691tuucWU27PPPiuHHHKI9O/fX5Zccsnizx977LFi2ffq1Uu23XZb+fe//112rPHjx5ty1t/T8tS61Tr64osvis954403ZKuttpJ+/fpJ9+7dZZlllpF999237HW0behqAq1/fZ2VVlpJ/vSnP0nlvIaer94ucfvtt5ty0OeOGjXK/OzOO++UddZZx5xr7969ZY011pDLL7+84XoAAGRHJ9snAABA0nSmePnll5f1118/9O/861//km222cbMKmvQ+dNPP8kVV1whG264oYwePdoEnaV23XVXEwCed9555ue6bFwDzwsuuKD4nP33319uvfVW2XnnnU1Q+Oqrr5rna+D/wAMPFJ934oknmoGF7bff3gSY77zzjvl35syZZcf89ttvZYMNNjCDATrIsOiii5rX/81vfiP33nuvWRkQlQ4k/Pe//zXL4EtpQK6BtQbFeiy9NeDKK6+Ut956S1588UXp3LlzpHMv0ABdBwZGjhxpgmX117/+VUaMGGF+T8tP/75rrrlGNtpoI3O8Qtn/z//8jwnc//CHP5jHJkyYIE888YR8+eWXxe+33HJL8/onnHCCGUDRAF5vbyjQQFzL6+mnn5b99ttP1lprLXn88cfl2GOPla+//louvfTSNgM3d999twnWNfDX4+gxd999d9l8882L9a11quVy+OGHR64DAEDG6HJ3AACyYvLkyTodmt9hhx3a/OzHH3/Mf/fdd8WvGTNmFH+21lpr5fv375///vvvi4+98847+Q4dOuT32muv4mOnnXaaef1999237LV33HHH/KKLLlr8/u233zbP23///cued8wxx5jHn3rqKfP9+PHj8506dWpzvqeffrp53ogRI4qPHXHEEeax559/vvjY1KlT88sss0x+yJAh+Xnz5gWWzdJLL53fcssti3//e++9l99zzz3Nax566KHF5+nr62O333572e+PGjWq7PEo537zzTebxzbaaKP83Llzy85/4YUXzh9wwAFlr6Gv3adPn+LjWnf6+xdddFHNv++BBx4wz3n99ddrPufBBx80zzn77LPLHt95553zuVwu/+mnnxYf0+dp/f/73/8ue+7hhx+e7927d9nfAQBAWCx3BwBkypQpU8y/PXv2bPOzTTfd1MyyFr6uuuqqYgK1t99+2yzP1mXkBWuuuab86le/kkcffbTNax100EFl3+tS7e+//754/MLvHHXUUWXPKyRtKyxR13vmdTZbZ5hL6WxxJX1NzcauM8wF+nceeOCBZsY4zD3l//znP4t/vy7R1llsnS2/6KKLis+55557zBJ+/dsnTpxY/NLl3Xo8nYWOeu4FmpyuY8eOxe91VnrSpElmZrr0WPocXQlROJYuXe/SpYs888wzbZbcF+jMeWElxZw5c6o+R8tQX1tXB1TWi8bluuy+1CabbGJ2BKg8jq4C0HMHACAqgnQAQKboPcJq2rRpbX72l7/8xQRW//d//1f2uGZ6V3pvcqVVVlnFBI2FpdkFmpSuVGG5eCGA1NfUbPK67L7UwIEDTZBXOGbh38rn6WBB5RJ0fW6tcyx9rSAa+GoZ6L3Veh+2noueswbABZ988olMnjzZLN8vHdTQLy1XXVYe9dwL9BaBUnostdlmm7U5lg4oFI6l94Pr0nINovX++I033tgss9f71EsDal0Sf8YZZ5il6Xq/uuYlKM0BoOes988X2km9Mqw8X6WDErqtn94eoffH6z3vhXvVAQCoh3vSAQCZojPAmlDs/fffb/Ozwj3qpYnGGlU6G1yqWvIxl2jwusUWW5j/1nvANWncdtttZ5KeFWb9NRmcBuiaMK0aDaAbpTPipfRYSmf0dQCjWpK/giOOOMLc+/7ggw+a+8hPPfVUc4+/3jc+bNgwU9Z6b/4rr7wiDz30kHmOBtAXX3yxeaza6oqo56u0bHTlhb6+Dhrolw4G7LXXXiZHAAAAQZhJBwBkjmYG1+zrr732WqjnF/ZKHzNmTJuf6b7qGthG3SpMX1MD0MJMcWnyN13eXThm4V8931K6dL5yWbc+t9Y5lr5W1LLSGehzzz23uFpAs9Hr8TVpngb0lV+6vV3Uc69Fj1UIfKsdS29RqHy+Lk3XWXYdiNEt0TQIL6UZ78855xyT6V0HGjTZnGZjL5zzuHHjZOrUqe0qQ115oAMGupWfZsbXRHu33XZbm7IAAKASQToAIHOOO+44sx2YzqJqUFxvtltn3jXLt86CagBdoEGgBoO//vWvI59D4Xd0G7NSl1xySTE4VpohXGeLNZt5Kc2kXu01deDh5ZdfLj6mgfV1111nso5X3jsd1vHHH28C6+uvv76YuX7evHlm+7hKeg96oYyinHstOpuvW5jpIEG1+8h1H3elGd8rM8ZrwK7L1gvL2XVgoLJutV5V4Tlahvq3VZ6jZnXXmXhdwl6PllUpva1B8xeUHgcAgFpY7g4AyJwVVlhB7rjjDpOMTO/h3mOPPczsrwZwupWY/kwDq9J9ujVxmgZow4cPN1tzFbZg0+XzuiVbVHo83VZMA2gNanW2WgNsHQjYYYcdzH7iSu+v1m27dDZYtwbbeuutzTZmuoRaZ/BLl8vrtmJ/+9vfzHlq4jO991tfT/+m++67z/xNjdDXW3311c0AwqGHHmrOVWeGdSm5LuvWbc10yzVdFaBJ5XRpvG4rF+Xca9EAXYP8PffcU9Zee2353e9+Z5bT67ZqmlxPZ/M1oP7444/NoIAOIOhghA4O6DZ2Ogijv6O0LHRmW7ei0wBeZ8t14EGPURg00dlvLfuTTz7Z3Pag9aQDMX//+9/NcvrCzH4Q3Vrvhx9+MPfRaxvS+9i1reiAQOHedgAAagqdBx4AgJTR7bQOPvjg/PLLL5/v1q1bvnv37vmVV145f9BBB5kt0ir961//ym+44YbmebrF1vbbb5//4IMPyp5T2IJNtzArVdhibOzYscXH5syZkz/jjDPMFmmdO3fODx48OH/iiSfmZ86cWfa7upXXqaeemh84cKA59mabbZb/8MMPzZZueq6lPvvsM7NdmG5bpn/Teuutl3/44YdDlYduwbbttttW/dktt9xizl//joLrrrsuv84665hz6tWrV36NNdbIH3fccflx48ZFPvdC+dTaHu3pp5/Ob7XVVmbbNf27lltuufzee++df+ONN8zPJ06caLaJ0/pbaKGFzPPWX3/9/N133118jdGjR+d33333/FJLLZXv2rWr2VJvu+22K75G6bZvRx55ZH7QoEGmXlZYYQWztVtLS0vZ8yq3piu49957zVZ2+vpdunQxx/v973+f/+abb0LUAgAg63L6f7VDeAAA4CKdfdcM6WeffbaZ9fWJz+cOAEDcuCcdAADH6dL6SoV72SsTp7nG53MHAMAG7kkHAMBxd911l9xyyy3mvmndJuyFF14w957rveB6T7bLfD53AABsIEgHAMBxmhlcE6FdeOGFMmXKlGJCNl0u7jqfzx0AABu4Jx0AAAAAAEdwTzoAAAAAAI4gSAcAAAAAwBGZuye9paVFxo0bJ7169ZJcLmf7dAAAAAAAKZfP52Xq1KkyaNAg6dAheK48c0G6BuiDBw+2fRoAAAAAgIz56quvZMkllwx8TuaCdJ1BLxRO7969bZ8OAAAAACDlpkyZYiaLC/FokMwF6YUl7hqgE6QDAAAAAJIS5pZrEscBAAAAAOAIgnQAAAAAABxBkA4AAAAAgCMI0gEAAAAAcARBOgAAAAAAjiBIBwAAAADAEQTpAAAAAAA4giAdAAAAAABHEKQDAAAAAOAIgnQAAAAAABxBkA4AAAAAgCMI0gEAAAAAcARBOgAAAAAAjiBIBwAAAADAEQTpAAAAAAA4giAdAAAAAABHEKQDAAAAAOAIgnQAAAAAABxBkA4AAAAAgCMI0gEAAAAAcARBOgAAAAAAjrAapD/33HOy/fbby6BBgySXy8mDDz5Y93eeeeYZWXvttaVr166y/PLLyy233JLIuQIAAAAAkOogffr06TJ06FC56qqrQj1/7Nixsu2228ovf/lLefvtt+WII46Q/fffXx5//PHYzxUAAAAAgLh1Eou22WYb8xXWtddeK8sss4xcfPHF5vtVVllFXnjhBbn00ktlq622ivFMkbhJX4qMezvwKXNyPeW/s1aTXv16SL8leyV2aj7K5/Py9ZgP5KfJk62dw4Dllpfe/fpbO74X5s4WGfucyJwZwc8bvJ5Ir4ENH2bMD2Pkm+nfyHoD15MenXtIHOZNniwzXn9duiy3nHRdZplYjpFvaZEZb7whMm+e9FhvPcl17BjLcdAkU8eLfPVazR+3SCf5eu5Q6dC1hwxaYWHJdcglenq+mfjVf+THcV9bO36fAQOl/5BlrR3fl/feN/7zo3w/bVbsx1pooe9ldu5bWXJyT+kwc57YsviKK0vPvotYO74PZs6ZJy99NlFmz22J/Ls9en0jLfnJMuiH7pKbE/33m2HxFVaSnossauXYWWI1SI/q5Zdfli222KLsMQ3OdUa9llmzZpmvgilTpsR6jmiClhaR6zcTmf5d4NNemHyIfPDT/P/e85zh0nvR7smcn4e+eGe03H/eaVbPYaG+i8jvr7nV3NqCGl64ROSZ8+o/r9+KIoe93tAhvpn2jez80M7mv3daYSc5Y4MzJA5fH32MTH/hBfPfK735hnRYaKGmH2PqP5+Qrxf0/wPPOlP67rJL04+BJrplW5HvP635449mbC5PTznM/PdWB6wuy6/DoF4tMyZPkr8e/0dpmWcvGFP7X3GD9Onf+IBh2j33yUQZcVPtgamm6TBDeq10piwzrods8vZiYtMiSwyWfS65xuo5uO6CUR/JzS9+Efn3OnQdLwste5ms+WlvWfvjvmLLwgMXl/0uv97a8bPCqyB9/PjxMmDAgLLH9HsNvH/66Sfp3r1tkHbeeefJGWfE8yEUMWmZ2xqgL7GuSIcqzfTHL2TaD62jeDMmzyZIDzD1+4nm324L9ZRFllwq0WO3zJsr4z/9WKb/+INOK4gQpNc2ZcGsWJ/BIr2XaPvzuT+JfPOOyJRvGj7Edz+1Dn59O/1bicvcb8cX/3vetGmxBOmlx5j77YSmvz6abMq4+f8uvpZIp27lP5sxUaZNa+3Tp0+Kf+bR9yBdA/QOHTvKwOVXSvz4337+icybM0em/fgjQXqA8ZPnzyT06d5ZVujfM7bjvPnN/H69x8z5n5e69+4jfRev8h4So7mzZ8mEsZ/JtB++T/S4Pho/eab5d6lFekj/Xl1D/c6suS3ywaQxZfXca9HFpFe/5AZl5s2ZLd9+/qlM+546ToJXQXojTjzxRDnqqKOK32tAP3jwYKvnhAj2vF+kW5+2j486SeRLGyfktyVWWV12OPaURI/509QpcvX+/y/RY3pvnb1FNj6m7eM/fC7y52E2zghonl1vE+m7dPlj798vcstjts7IW9169pLdz7ww8ePeePgBMml844OFWfOzIX3lhhE/i+31lz3t4/Lvh60rWx9ypCTpx/Hj5KbDD0z0mL47YONlZc+fV/SFNXz1wwzZ9KryVRlrbLalDN95d0nKlIkT5PpD903seFnnVZA+cOBA+fbb8pkf/b53795VZ9GVZoHXL/gkb/sEUsiNMs1LXphHD6ArDcI9sfFDlPxu6X/HcS9myTfeHgNNVK+O8rnqdYs2nCkd6smR4pl/oJwT1eHESaS0XbhRz3F+doCn+6QPHz5cnnzyybLHnnjiCfM4AAAAAAC+sxqkT5s2zWylpl+FLdb0v7/88sviUvW99tqr+PyDDjpIPv/8cznuuOPko48+kquvvlruvvtuOfLIZJf0IMkhxhrzrrlc2Zwsg/l1LCgfK7eDlx6UempnReXa3eBLZyhjna0sfem4jpPEMZBM+67o01HHgvZuKxFn4bjMqAVrLZ1466ntqyffLnILjklXXF/huolSS+aSy9mu5vZ/BoEnQfobb7whw4YNM19K7x3X/x45cqT5/ptvvikG7Eq3X3vkkUfM7Lnur65bsd1www1svwYAAAAASAWr96RvuummgTM5t9xyS9Xfeeutt2I+MziDTOBNZm90HVHUXkEC+K9aO6ZtN8Ran0B9uVRNbV7f9qo5NL3Iqq2aSfrzFVvoJsure9KRFWGX0ZQuo2bpTRBXkjC5ch7OCl08zSnHWJeqJpHUrex1aVvOq9sOuIXJu77UlfNwVNLF40QIRZuIPXGcbVRxMgjSAQAAAABwBEE6HMeyX++XKlFV0dVLHAf4rEbiOERnrdSor0jiLq02q90t1A9NIrooy9VzLhQ6dZwognS4J+Q6Gha6RuFKCblyHq4KWT559/dJT3q5uzPLfxEgQh1RnX6gngIll/0+70x9kPG/vva8g7sRK1PHSSBIBwAAAADAEQTpcFA+5LJf9t8OqzjJaGO1e0kdMtnZzooqlmVz9kmP9bopm+WO7SBVjwcf23f5PunMxoW8jm3tk144D+opUFLV1Pb1raR3n/8PTSKWdlH23OLvJ5zdfUEds3ItGQTpAAAAAAA4giAdjiNxnP97llNXkZE4DmlG4rjmsVVu1JdT772Vr28lRyxtIrKc85/fKk/CgXPIEIJ0eJw4rsraH1TnytIkV87DWSlNHBfXcZJauo8mCb9POvXpSV/qynk4KrnScSWhGG0inMbKSG8KKvyXVVRxIgjSAQAAAABwBEE6UpE4joHbYMUZU8t7p5JkyK3EcXHWR9lrx3SBlifBo235nzgOUdlaAltY2sxlV8eCAor9rTdX8R9W1rvP/4f3+fgTx7VWd87OdU8dJ4IgHQAAAAAARxCkw3EkjmsqO9lkkj+m70gchzQjcVzzUGxeiH0LtjbfkyTWB1Hqqer6I/rNVCNIh3saWT/HyptgrqxJdOU8nJVw4rg466Msb1ze32PASuI49uEN5k75uHIebko6cZwT1eFM23RXwyWUc6SeqeNEEKQDAAAAAOAIgnSkYtkvY3ohk5RYOLYTe3t6J2W3eTDqjjLVE8ehkYRkdhPHwZH3wUK+uIrvk0SbiH2j9IZ+rZmo42QRpMNBIfdJz9NZeIdYrUnBbHMKMrl90pM4Bo3LeXXbBH26b9xZdu+mLBZPFv/mqLhuEAZBOgAAAJASVmY8GWNLHDPb6UaQDveUjTAGLfst3YCbUclg9vZJL6smZjvbWU+FjWibtE96rInjEtjDnH3S09O+c+X7pFOdwVr7Uksf0gt1SD0FKvaxCWd3t4tGUU8jV+/8WyYsl21J381qgPgRpAMAAAAA4AiCdLiN/aJTsASOupKsJ44DypA4rllsdQnUllvl1bYdJF9DJImN9zNZ1afymSDVCNLhb+K4yL+RYa4sS3LlPDKcOC6xWw4SWVaf0NJ92Lg3BkEcKR9uYXJrn/TCNto20RfXl4oiSsUf4TaCdAAAAAAAHEGQjpQkjov9rLxmc8CzdAkcA68OJI4rnX1Oagu2vMfHQPPrqlbiuLJtNanQcAnJbCeOo56CtFZTvPXUdrW7xVvbaBIxJY5ru2Ii6VoubcesookfQToAAAAAAI4gSIfbSBzXVCSO8wWJ45BmJI7zPlkXfZFjiePKj2DnrZ42EVWUIqtavkmXOXWcKIJ0eIzl7uG5UkCunEeGE8cltE96+VK4eI5Tdv4su3VbxPqhOutxpICoKKcSx7mAZdAZSa6Xgj/BdQTpAAAAAAA4giAd3iaOK5+nY0jP1SRDpYdMxeixC4nj2nWEpBLHlf53TMdhJt0jIRLHseQ9tGJzt7ZPemkaK9RSeM+L+603tyCTWOthLF5L9MXxLHc3/19+4Sd9i0F5ImDqOW4E6QAAAAAAOIIgHW4jcVxT2Sk16io6Escha2jbXiXroroisblVVpqPmaXEj9WLN+nEcckeLusI0uGgsEtoSBwXmivLkhw5jVTUU6N1Wra1eFL7pMe13L3G8eCeUPVTupQy1rPxnysF5Mp5YL48UZQPGr5sFlRvYZ90u5w4iVQjSAcAAAAAwBEE6XBbreVTFY8znhesWD4sgfND2m7zYLYNpaomjqv4njYTqHUVjKWbmOjX3S4vG9VDm4g5cVzOgW3SqeMkEaTDPSE/nJEJ2D9k4a8n/uXuZXUQZ3UkEWSVHYO25TbqJ43o04MlNtbkxvrnIjJ/x3XduFOuVHH8CNIBAACADCYkg8eY2U41gnQ4KFqCodC/kmXFvVotdOilh2ToNVi98imrv/bPpCeVOC62WZUkjoHmKKufav1Q+T7p1GbI8rT2IX3BcamoQIU+Nu5aKry3OxOy0R83v3hKKtdePZcmbKaO40aQDgAAAACAIwjS4bCAsUKW+DTIQuI4d8b2/UH7RuYSx9HmG2FtHp3qiiaX8MuTJNYLUcrMhX3SqeJkEaQjFYnjWOoazJXyceU8Mp04Lqkl4mX7pMd2kASOASu3MVGfwRwpH/r0YMkVz4IDOVIdJBSMq124U67UcfwI0gEAAAAAcARBOhwUJiGO/ox1N5Gxd6onw+s57xPHlb92Pv5ZPGb0UpA4DpGvL1v9a/G41FqQ1h493nrKLdiCrXAUK82i9KA0i6YnFCx7rq3Lv6yOqeS4EaQDAAAAAOAIgnR4mjguyfNIDxuJXUgm04CaZUZZIgVIHOd9/0pC0Gjir6bKA5AkNm3touq1nvD1Tx0niyAd7gm7hCb+1bSp4UxyH1fOIw2aUJbx7pNe+t/x75NO20pX4jhn+ixXOVI+jpyGs7JaPly/8SaOcyJUpopjR5AOAAAAAIAjCNLhrrqJ41oxoNfOhGRwTJjEcR5hVgVlqieOK0OTcfuS8rQrSmtxubBPOm0i3uXj1XvNhAudOk4UQTocFH2fdPiBJXB1RCofj/ZJj+0YCR8PjQtVP/Tp3uG6c2Mv6QXZ3d3h2vmkpHQcqmf2SY8fQToAAACQEiSJzQjKPNUI0uHn0mzTMbFfozf9OW8kIdXb/LT9bT6x0e8kkrqVvS59gNtK6qdGluLS1VHUZsgEUpb3SWc2LVwXFXc1FfdHd6Q6+EhWRwPtouy5tsqXfdITRZAOAAAAAIAjCNKRjsRxDOgFKt57zJ66nkhX4jhyEaAciePaiz7dL9koryz8jfZKrLQNFf476cs/G+3YHQTp8DhxHHxDsOZY4jjxPXFcQknw0H5h6ocq9A/XnRtci51oF4Eaf+91p1yp4vgRpAMAAAAA4AiCdKQjcRxClam1pUqFwzL06lTiuMS2YIvtMAkkp4OVxHEuzRg53VXYOn6hDqmmQIU+Nv7EceWfm+xkd2/9bxIKBmvkbpXqz016vTt9dJII0gEAAAAAcARBOlKROA4hWduth/rKcuI4IHLiOIRjK3Ec1eV2edmoIBpFA3JefbaiipNFkA6PE8eVra1CAFeWnrlyHplOHCcWEsclsU86TcttodpAyT7p1KcXfakr5+GqxNpxzq190rmAgzVeOoVbF+0jWWv8CNIBAAAAAHAEQTocVi9xXCtG8+soJimxNf7qwrivR8IkjvMK1yekbuK4MjSZYJb3Sfe3L5JUllfOgdphD+3oGk4cFyK/cjyo4yQRpMM9LKFJL6q2eQXU6HVStkI873VVly23o99wXP36oQY9xHUXKLnScaweHDsd1zS6VNypEJk6jh1BOgAAAJAWVhLHJX9IUOhpRpAOB4VZxlexTzojeiFHbe1mAibRSB316qkJe5Ta2Sc9rsRxNY4H95TVT63s7iWJ4xI5KY8V9t+21qfPPy6XnRt3JeQcC9m4BTFYI5/IzLVuOTNg6S2T1HH8CNIBAAAAAHAEQTrSkTiOAb06LCcZYnPNbCeO4wJF5MRxtJkgxdIhb5wXcgkfwEqSWN7nI4tST6VPLa6cSLrMqeJEEaTDPfkG9kmHJ/jgbTtxXGJL1JIIssqOQdtyW7R90uELrrsgmV0SzCBb+osnFX+E2wjSAQAAgNRIfsCLLdgsoMhTjSAd6UgcB6e31C2+eTPwaj9xXD5NieMS+luQSOI41kU0kDjOUqde6NO57lxJHLfgQI5UB80ijsRxJb9pqXxLB2K49uNHkA4AAAAAgCMI0pGSxHGM6AWzuwUbCWWynTiO6xPRE8cldjae3+tMn+6DuJeCF1ZUtCYUi/VwtU7CwkH9FqXIqq2aSfwWA+o4UQTp8DhxHHxDsOZW4rhYkxolnTiOtpUCfAD0DtddoORKx7V6cO18HMN1gxAI0gEAAAAAcARBOtxVL3FcnlkXX5IMtU6QMXpsPXGcjZn02A6TxDGQXOK4ksepz2C2k4GSCzTie2/Cx7XQMEoPyaq5YPlGlruX/GZxmXvC9Vz2GZI6jh1BOgAAAAAAjiBIRyoSxyEk21uwIZOJ44DIieMQjrVyo76cKq02B7CSOc7CMf0W5bNR9W6TMk8zgnS4J/QSGpZGhuXKqiRXziPLiePKVojHWCHlrxzPccrOn8bluGj1E+utGCngzHJiV87DUYknjnPlNkCaReovG2f6oBQjSAcAAAAAwBEE6XBX4IBwxT7pDNvWUZFsJGksyYooTOI4jzDijrrtmH3So6FP90ncy5ILL29zn3SWXjegwX3Sczb7R+o5MQTpcBD7pKcWwZr18klsQCuRfdITPh4aF6Z+XFmqi/C47gJltXiYOImpfKxG50gaQToAAACQGrlMHDLrWL2QbgTp8G+vaPMj/RmJ4yIn+LDUobfuqUtFBatXT+3fo7Q02Uty+6THdBwSx3mkTv3k9Bmt7ZvabP/bZBLBAfUULKn3POdCNfrjQMWPZOKfwi02JI6LH0E6AAAAAACOIEiHuwJnfSsSxzGgF2xBAdlbGeXjeLGDfF3axgWKohCrRBRNJpjl1VGIJvZqKiSOKzaL5NuFtSSGHotaT22ebSVDYPKHzCqCdHicOI6ewjsEa00snwaXu5f8XqzL1RJJHFeWOS7+46FxXPvpRL06Ujxu1QNLoYM1XjwOlSt1HDuCdAAAACAtbMxhsKojcZR4uhGkw+PEcQirdbzTVuK4QqIRK4f3T632nWtC4jhJPnFcbLMqSRwDTVJneXYuV746ivoMVLh2c9b7dOopSOunmZj3SY/11dFsDed9XHA/g82d2FqTRnLtx40gHQAAAAAARxCkw13MlqenTKnKiCgwZDxxHBzv06kvl4qr8vVtrLBgz+7oohZZm3q1UubUc1II0pGOxHEsuQvmTPm4ch4ZThyX1BLxsj3MYztIAsdAU4Rqa+yT7l+fjiCZrabM/uHhpOI2kRT8Ca4jSAcAAAAAwBEE6XBY+MRxDOiFG7W1tRyN/VMjCqwnD8syDbMGSC4poqLJBLO8TbqHvZBVuaSPw9JzL7T7s5GFeqZpJYcgHR5/oKen8E0qlnjFKkL5NKEs48zOmk+6PdG2HFe/fqhB/9CnB0suA7Zb9UC7iIs75Uodx48gHQAAAEgJa0ncmGZNFKWdbgTp8HQdH0sjvVKoS+opWHFkOsytHu3fJz1WZaPs8e+Tzky6721bHydxXPTr2HIwxnXnxm0J7XtbQMIKl03k7O6FfdJthuft/AyC8AjSAQAAAABwBEE60pE4jgE9pxPHsQQuIhLHQbKeOI42E8h2MlD6dKfKq/XV7dYLSWKjyTVavnmLieOo48QQpMM9+Qb2SYcn+OBtO3GclX3SYztGwsdDO0TbJx1+SC4xmp+SKx236oGkYnFdNw6Vq0OnklYE6QAAAEBasDdfJrCiJd0I0uFv4rh86c8Z0oslS0mTFNOMMLruVOK4WGfBkkjqlkRyOiSWOI7abG5XkcyJWD6+L7eaJXQ8282hiPf6eK7fnAP1vOAzCJ/n4keQDgAAAACAIwjS4TASxzVPsqP5bbAkK9OJ4xhxR/TEcYmcjccsb8VEnx5NLqGXLy6aI6GgD9p//Voob6o4O0H6VVddJUOGDJFu3brJ+uuvL6+99lrg8y+77DJZaaWVpHv37jJ48GA58sgjZebMmYmdL1xKHAfvEKy5lTguqeXuCRyDgQDXkTgujbjugiVWPI5dOiQUDNZ46bhUri6dSzpZDdLvuusuOeqoo+S0006T0aNHy9ChQ2WrrbaSCRMmVH3+HXfcISeccIJ5/ocffig33nijeY2TTjop8XMHAAAA4OhoQcqxcCHdrAbpl1xyiRxwwAGyzz77yKqrrirXXnut9OjRQ2666aaqz3/ppZdkww03lP/3//6fmX3fcsstZffdd687+46UJo7jzaCBJCV2l8Ax7mo/cVz54ZJKHBfbQRI4BpJLHFfyM2Zow1271pc1U09BWlt9Lt23tFWiWYRLKBixwly47AptmS46xUH67Nmz5c0335Qtttii9WQ6dDDfv/zyy1V/Z4MNNjC/UwjKP//8c3n00Ufl17/+dc3jzJo1S6ZMmVL2BQAAAACAizrZOvDEiRNl3rx5MmDAgLLH9fuPPvqo6u/oDLr+3kYbbWRGoebOnSsHHXRQ4HL38847T84444ymnz8AAADgGnuJ46wcNrso8FSznjguimeeeUbOPfdcufrqq8097Pfff7888sgjctZZZ9X8nRNPPFEmT55c/Prqq68SPWfEueS3dGlk7Gflt+LSKssdOuujmnSrRzsSxyW1T3rZQeM5TtlyfdqW321bH8+3/ozarKPB5bLNU+iHbB3fD0ndleBaqEZCwWCNbpNe4MI+6bznpngmvV+/ftKxY0f59ttvyx7X7wcOHFj1d0499VTZc889Zf/99zffr7HGGjJ9+nQ58MAD5eSTTzbL5St17drVfAEAAAAA4DprM+ldunSRddZZR5588sniYy0tLeb74cOHV/2dGTNmtAnENdBXjNple69o6j9Y64yp7SRDCCdM4jifcH1C6iaOK0OTCdRaPCxr9kEu6fqwVUE0jFg/G1U+Pf6EhPXPASmcSVe6/dqIESNk3XXXlfXWW8/sga4z45rtXe21116yxBJLmPvK1fbbb28ywg8bNszsqf7pp5+a2XV9vBCsIw3YJz2tGEypI1L5tH+f9LguosTqmeXu/qB+Uok+3ZX9wl2rB9fOJy3Fk89g284uq0H6brvtJt99952MHDlSxo8fL2uttZaMGjWqmEzuyy+/LJs5P+WUU8yok/779ddfy2KLLWYC9HPOOcfiXwEAAAC4wdZkp42Z3UyjuFPNapCuDjvsMPNVK1FcqU6dOslpp51mvpBijSSOQzC7W+qyPiprieMqzy2u2bbSl2VGz/vEcaX7pFObdVjeJ731/Zeacqmacq5Uhyvn4ai81x+NSByXFK+yuwMAAAAAkGYE6UhJ4rjYzyYd9w3a2jvVylF9lrLEcVygiJw4jjbj8raaJAN1bBl4m4xiJI7zQa7B5xdXTFgob6795BCkw+PEcXQUviHJkAOJ42wsd49L2XFoW04L1Sbo031Dl+4KtyqC9/r0l08K/gTnEaQDAAAAKWFttpNxtkSRqC/dCNLhnnxKl/xaZXef9GJ9MfRqP3Fcye/FNppf8bpJHCcNMxOZEJg4rgTVGch68RTzxlk/E6cV+qW4P7K0Xj2ufDaiXQRpdLV6rnWde7NPKcJJFP6DOo4bQToAAAAAAI4gSIe7AgcKSTLk1249rozu+yJlq0i4PhExcRwtxvHEcc7M2Pohl9ABWrdgo134Ide+37KROI46TgxBOhxE4jhkVAKJ48pfIUWJ44jq3EbiuFSKrQ9JiayWDuOy6S8fbjGLH0E6AAAAkBKsmssGijvdCNKRiiW/DOjVUSwglsB5IUziOJ9wfaLuavfKW5iSOJkUzGKxH7YfYi4vaiNjzcJm/8i1nxiCdLgndMRNR+EblkfVE6F8mpDdPTaJ1XPpcnfaltvq1w+3MHmI686R4nGsHmgXMd0m4lC5OnQqaUWQDgAAAKSFrYSCjLMljAJPM4J0eLxXNJ1TeHYzAbOnbhNvS2hnHZaO4Mc1q972VWM6TlniONpWmm65ISFZONbeBRf0Q1x24dpxUvXkyqcirt9gxbtVfBwEKZ4EdRw3gnQAAAAAABxBkA6HkTiu+UmG7Bzf2gy+rwKLy8Oy5AJFQa2+gMRxXiWO87AXsiruamr7+tbSu1s6rp8ifzZa8PScxc9W1HByCNLh7Qd6Pvf7hyVwDiSOK13u7v0+6RaOiQaxT3o6cd0FyWy3lNk/PDvFQyLg+BGkAwAAAClhb2c+BtoSRXGnGkE6UpI4jhG9QMXV7paXwFFNwfJhbvVo8+SGR78Tm0mPa8SdxHEpShyXK9uCjeqsI287GWihT6eigrS2+lwyR3KkOmgW4UROHOdCPXPtJ4YgHQAAAAAARxCkw2EkjmuW4owpe6f6oe4qEr9w7xoiJ46D0/k9WNYcTezFteAAxcPY3m4VobS3mmysjuTaTw5BOvxNHMe7gXcI1hxLHJfEMvQ4JbF0H01C/aQRXbor5eNaRbh2Pm5Jw2ch//8C9xGkAwAAAClhK/+Mvbw3GcWsdqoRpCMdnQ9Den4kGULTb/XwQgpmDdAstRPHlaHNhMxI5mF/kEE5z18fbgxqFPdHj+Vs4BqCdDiID2fpRd0GihSYtL8s/d8nnezu3ghRP/k8Hz39w3UXLJvlk4bl3HFqtHTyOYfKlTqOHUE6kAH0pbCK9oeIaDLBCILg5AoLVnYkpCJRIFKJIB0e7qdbeCOge/JtSRefK+sJk4W/fXuUln24j6s+EqvoBP4WJNO26dMbYusWpsJxGSwIViie+LO7O1YPjp1OWtqFCz0k135yCNIBAAAAAHAEQTpSsVc0I3r12N0n3YnhX6+QOA5ZTxyXxLn4LMSKszj52A+leMVDa0Ixy/VCu0hEceGEjfKmjhNDkA4HsU96ahGsWU8cV7ZPekyRUHJ540gc5w3qJ52o10Dsk45Ek7YiVQjSAQAAgJRg0VxGMKudagTp8DhxHKLOOFpPMsTosVOJ4+Krj8rXjWurt9L/pm35njiudHUU1enHHUxUUzBb73m264VbEGNKKOhAgsDitU8dx44gHQAAAAAARxCkIyWJ42I/G79ZLx9WPkSTslUkXKCImjjOfqfltNZZLBLH+SDu4mpNHGcZ7SKSqIn+Kp9tJVEgdZwYgnQ4iMRxqUWw5lbiuLjqI7nMcckfE40JVT/06d7huguU2eLJ7B8eTipKhzqOHUE6AAAAkBp2888gIRR3qhGkw+PEcSU/Z0CvDruJ44rLo6gn64njyo+W0Ex6IjP2NC7/E8e1fTpqcSQZKLNpgVo/zcS93n3BkYrVYbdeaBXxJo6zmj+OgZjEEKQDAAAAAOAIgnSkAlt7BWO2AzbR/hAVLSYYlxSC5JnszARuL0g3gnR4u+SXzygNsLU0csG/DKY061YP8+QGD5FAHVhIHMdAgO9tu+IWJoRjrcioq1iXNfuO/jjk7SrRfsuFZlS4dYP33PgRpAMAAAApYTtXAZJCeacZQTrSsVc0A3rBFox42pt04Y0kkjCJ43zC9YmCgMRxZWgzIft0W8lA7RzWV7mEDlA8DtePF6xdv+3h4Sn7iiAd7gm9hIaewjssj6ojH3tZpmqf9NLyomk5rn4F5enTvcOS12BZvcWLdhGs8eJxqFyp49gRpAMZQFcKq3gzR0R8yA+W1eAPdYRIaxIrVs0lolDKFHe6EaTD372iSV8anfU9da0c3h9JJI4rnUmP6YN+UgFW2XFoXG4jcVw8bN97zHUXLKHEcaTS9UuxN/QxcVzh8xxtLnYE6QAAAAAAOIIgHalIHMfSyJBJhlgb5Ye0JY5jxB1RE8fB8b29qC+XE4TZ6nFpFTGXV3EhXSFToI0Sp5aTQpAO94QMuPnY7yNqzXriuDTtLV56+r7/LalH/SB78hm9vrx/b4lZKsonBX+C6wjSAQAAgJSwt8CCWdYkebmFG0IjSIeDCsv4gp5DkqHGRm1tJ45j6DULiePazGonsdUbbcttxeqpnTguX5IMlOoMudrd0vFb88ZRUUEK5RN/4rjCv44kabV+AulMHFf4TZuffrn2k0OQDgAAAACAIwjSkZLEcfGfTRqwBM4TaUscxwWKuhPpHrZrqywnjqO+3FJZHbzXe6Kd5WUlbxx1nBSCdLgn5Of5vI/BStYRq1lPHFd+tISWu8eF5e4eCVM/9One4boLROmgqZeNU10krTtuBOkAAABAWlia7SSRWcKY1U41gnSkY8kvA3qBigk+rL1xI65bPXxAghm0qp04rgxtJlgxIRnBmA/irqfCy+cKlw3XjxeiNovi0y1WL9d+cgjS4SDeXNIqtuXVaRHpg1X790mPrTosLHenbTkuRJugBv3DdedIV+hYPTAwG1f5uFOuVHH8CNKREvQWgehNYRPNDxHRZILRpSOQtYSCdg6bNZVb7iGdCNLh8V7RdE7RWc4EzCfLOsLcllAoS/Fnn/S4JLEqAMm0bfp0vxSqiusuUIhPM03h3JXDe70T7SLea586jhtBOgAAAJAS9nZg8zLs9BflnWoE6UhF4jgG9EKO2rJ3qieCVpGIf7hAEbUB02TqsJw4jj49kqSLi8vHD1GvIxcuO6795BCkw0Hh3l7YJ91DBGvBIhVP+xPHxbXcPamkQWXnT9tyW6j6oU/3DQnCgmW1fFxLZOecJtyuZptL55JWBOkAAABAWlgb72KgLUlMaqcbQTo8ThyH0Kzvkz7/uIy71lOop6DntC8JX1niuLhmeSpfNrbjMJOepsRxpTVIdQYrXrv27mEqnIml4/shuQRh+Yp90sUu28dPabtw45MviYCTQpAOAAAAAIAjCNLhLhLHNc+CArK2p6Ybw78eSdsqEi5QFORCPk6bCdenW+JlP5TeZFttXt/ybquIt7yKKyZsVDSVnBiCdDiIxHGpxWhKE8unCcvdYwuEktonvfS/aVtOI3FcKnHZudIVulURWU2Yl6nyScGf4DqCdAAAACAt2G41E9gOLd0I0pGOvaLTMCqZxCg7e+qm7lYPL3B9oiAgcVwZmkyg1tWutvp0K4f1Vtzlxc0ifop6C2Lrs+1dgFz6ySFIh8cf6Gm+vnFtSZ578vEHvvkUBeVkd/dI/frhFiYfcd258Z7nWj24dj5pKR13ypXPc/EjykEq0FXUQQHBolTcf4dE0WLq4JpCFdaSwzpy/KwoljLFnWoE6XBQmKXZ9Ex+LVEs7Ktp6/i+ffAOk929/Ynj5h8yn4qZdEb1fW/b9Ol+3UrEXslhFLezl2yhWYRsFz5ulF44aSo5dgTpAAAAANrHhSAyQ1i5kG4E6UjHXtEM6AVqnS0lyZAX0raKhBF3RE4cR5txu0/3sB+yKe590gv/wWWTDRbrmWs/OQTpcE+ID2d8fvMT9ybbTxzXZrl7HO/2VhLHJXNINIrEcWlEl+5IV+haB0jDiKm+3ClXqjh+BOlAJtCbwiKaHyLiAyAQne1hLmZZE0Z5pxpBOhxkd0/vNLP2BtrOZGeZkUTiuHyKEseVlgFRXQoSx9HnR2Y5bxx9ergZ07irybWPS87N7DvG68RxRdRx3AjSAQAAgJSwnvUfiWDlQroRpCMVieO41zmY5RxDZCCNisRxyHriOAQqvOfZ+pBOnx5N0tXETLYfol6/hWfbvPoYGEgOQTrcQ+K41KLespE4Lrm8cSx390eI+qEKvcMAebDkisexeqBdBGq8dNwpV679+BGkAwAAAGlhPf8MgPYiSIeDwmTUYJ/0aKyvd19wGlSUc4njYrl4Kl8zpnovfVnalveJ40q3YKM6Xb+HacFxqahArbUU8z7pbd4WLNcLzSLcx1zxUPHat30i6UeQDgAAAACAIwjSkQoM6AXj3iFYRftDZLQZwLdFa17ODHu9RIMSTzOCdHi5jK90WST82SedjLNNvNWjWZ/CYlntnljmuOSPiXjatnmcft23W4+56mLaDzvqccQtvNeHK5/o7cJ+ubbeWWH/XNKOIB0AAABICdsD8kgG26GlG0E63EXiuBiG8+0cnj11owqTOM4f3G6BVrUTx5WhyYS7pqz1B/71QzblEn59Zjn9EPWzUeFyt3r1efgZxFcE6XAQby6pRbDWxPJxd590G8vd+VDquBBtghr0EH16HUmVj2P1QLuIpXicKlXqOHYE6UgJOgvAWbyZIyKaTB0UEByc7WT5NdA8BOnwdP9X3gi8WnZOliFnEsclsk+6lcRxyRwSjSJxXBr7dG5lCZbcXQlu1QPNIq7k7A4UbPHznAPnknIE6QAAAEBKMNyVDaxcSDeCdKQicRwDem4nGeJ9JNuJ41wY/IdnieMQqLgCxtpEOvXl1IqHQkKxBc2CLtcPuQbbUS5v7/ojEXByCNLhIBIMpRXJvRxMHBfHCBf7pKOhxHF8+EO6ZLdXyu5fHkbj77vulKs7Z5JeBOlIB3qLYAQwsIn2h4i417kOigdV2R3oYoVFwijvVCNIh3tCfTijY/LrDZREI84kjktgC7akAqyyc6dtOa7O8mw+bHoZFDGYEvZWs3iP49rVQ7sIlne14sIonDN1HDuCdAAAACAtrI3H+xh1+ovSTrdOtk/AVfPmzZM5c+bYPo1syncW6TlYpOtiIjNnVn3K3HkdpFufkjGmzvNkZo3nplHnzp2lY8eOoZ+fz/hsj3/SljjOdguEO0gc19yZSvbD9kFSpcUkp18iJ2Fz4LLj2k8OQXqVN77x48fLpEmTbJ9KduWXFNnwYpFO3UTGjq3+lDndZY3tuxW/79J9loyt8dy0WnjhhWXgwIFedZh8cLCfOK7y1+JJHNf8l6x7HBqX20JVjz99GRbguguUXOk4Vg+OnU56Lht3CpZEwPEjSK9QCND79+8vPXr08CoASo2fJolMzYl07iHSd0jVp7TMmi4/TmztILr17CwL9ekqWaBB1YwZM2TChAnm+8UXX9z2KQEAAEfY+ujKJ+aEEaOkGkF6xRL3QoC+6KKL2j6d7GrpIvKTBukdRbp1q/4UmSudO7UUv+/auYt0q/HcNOrevbv5VwN1ba91l74vGLa1NujE+0g0YRLHeYURd9Rp25WP02SakGQyRgQHkcT+3ptb0CSK+6RzAfkgarPIuZHD3+rRs4TEcSUK96DrDDrgukI79St3Ah8cmlY+TcruHg/2SUcl9klPJ667IMl1S27VA4MEGShXh04lrQjSq2CJu3+y2FdEaadshwKraH+IiCYTjPJBMFZYZGMhDeWdZgTpcBidT9NZ6tALGUwZLGjC5qnFHzU4k15RB7GMzCdVz2XHoW05rW42cn2cPj8q23cw0aUHs5uD3yIaRqj34KjtIudQn8PnuQwE6VdddZUMGTLE3E+8/vrry2uvvRb4fL1n/NBDDzXJsrp27SorrriiPProo4mdLwAAAOAqe/lnXAgjs4TyTjOrQfpdd90lRx11lJx22mkyevRoGTp0qGy11VbFrNWVZs+eLb/61a/kiy++kHvvvVfGjBkj119/vSyxxBKJn7vPtPy0A3/77bdtnwqy0p3zxp3pxHGMuCNy4jhWRrg9R0uf7mRxta5w4PpJ5WCKC5cd1342srtfcsklcsABB8g+++xjvr/22mvlkUcekZtuuklOOOGENs/Xx3/44Qd56aWXpHPnzuYxnYVHbXvvvbdZffDggw8WHxs8eLB888030q9fP6vnhgzig0MTE8c1eoR8AvukJ7/cnQ+laUgcB+9w3QXKbL+U1b87U0WTmj/EWdZm0nVW/M0335Qtttii9WQ6dDDfv/zyy1V/5x//+IcMHz7cLHcfMGCArL766nLuueeardNqmTVrlkyZMqXsK+t0u66BAwdKp07swJcVmf2gADfQ/BARXVYdFBBcXGDhxFRv+hVLmeJONWtB+sSJE01wrcF2Kf1+/PjxVX/n888/N8vc9ff0PvRTTz1VLr74Yjn77LNrHue8886TPn36FL90FjlqcDNj9lwrX1ECKy2XNdZYw+yfrXu862DHscceK7feeqv8/e9/N0tq9OuZZ55ps9xdH9PvH3/8cRk2bJh5jc0228zcdvDYY4/JKqusIr1795b/9//+n8yYMSPU+UydOlX22GMPWWihhUz+gEsvvVQ23XRTOeKII4rP+fHHH2WvvfaSvn37mu3EttlmG/nkk09aXySw86Fn8ipxXCHRiJWjeyTMNV+sw+ZswZaaxHE0Lr8Tx2m7ztOv+3LvceG4Tm0J5bD4q8mtenDrbMTZssl5WLKtiYBtn0n6eTWV2tLSIv3795frrrvOzAavs8468vXXX8tFF11k7muv5sQTTzT3vRfoTHqUQP2nOfNk1ZGPiw0fnLmV9OhSv4p06fruu+8uF154oey4444mQH7++edNAPzll1+av/nmm282z11kkUVk3LhxVV/n9NNPlyuvvNIEzLvuuqv50uR8d9xxh0ybNs289hVXXCHHH3983XPSMn/xxRfN6gcdeBk5cqTJO7DWWmuVLcXXoFyfo4MA+rq//vWv5YM3XpD5NzMAAAAgElvjXYyzJYot2NKtoSD9s88+M0Gf/nv55ZebwFlnXJdaailZbbXVQr2G3g+tgfa3335b9rh+r0uxq9EZWb0XXX+vQGd5deZdl8936dKlze9okKlfaaZB+ty5c2WnnXaSpZde2jyms+pKZ8V1yX+tMi2lKxI23HBD89/77befGeDQOl522WXNYzvvvLM8/fTTdYN0HSTQGXwN7jfffHPzmLaXQYMGFZ9TCM41kN9ggw3MY7fffrsZQHnwoUdll81ag3k0QWHI01qHzhtJlhPHMeSOIj5UJrOjXeyoR5eWgVcGa/S4Ke8ObVYwl767Qfqzzz5rliVrMPfcc8/JOeecY4L0d955R2688Uaz7DoMDah1JvzJJ5+UHXbYoThTrt8fdthhVX9Hj6mBnz5P719XH3/8sQneqwXozdC9c0czo22DHjsMzYqvwbAG5podf8sttzQBtS4jj2LNNdcs/rfOfuuMeiFALzxWb4u8wm0Jc+bMkfXWW6/4mN5qsNJKKxW///DDD8098brtXoEu09fnfDhmjAhBejoRrDUxcZy7+6QnlQOh7NxpW44LUz98+vMOl12g5LolxyqC/jj9OYLS8nek6Z50zbquM65PPPFEWWCs9zC/8sorkV5Ll0TrFmo666pB28EHHyzTp08vZnvX5do6m1ugP9fs7ocffrgJzjUTvCaO00RycY5O6pJzG19hl7HoygKtD13NsOqqq5ol6Rrsjh07NtLfWsiYX/i7S78vPKYDJPARnSks4s0cEdFk6qGA4N4wF8uvk16ZQXmnWeQg/b333jP3JlfS2XRNBhfFbrvtJn/605/M/cp6r7ImMhs1alQxmZzeT61LuQt0KbQmN3v99dfNrO8f//hHE7BX264ta7Rj1JUGZ5xxhrz11ltmAOWBBx4w/wZlv4+Dzr5rgK/1VDB58mQzsFJ6m4Iu0X/11VeLj33//fcyZswYWXXl1hl3NBf7pPsioLwoS3iN9puGbNp0Q9FQXkhNNnwas7vL3RdeeGETOC+zzDJlj2tguMQSS0Q+AV3aXmt5u2Ydr6RbsEWdsU87DXT1NgFd5q6DJfr9d999ZwLhmTNnmoENDX51ObkuO49br169ZMSIESa7vCaq03PSxH56i0JhlHWFFVaQ3/72t3LAAQfIX/7yF/M7Otiibei3220jMr11cAYpwvRYE8unOWUZzz7pzX/JusehbbktRP1Qg/5JzdLdmCSW/d6xeiDrf23tKxl3ypU6dnAm/Xe/+51JHKbJ2grLnzX51zHHHGOWpyN5mhld8wNoZvQVV1xRTjnlFLM1neYO0CBYl76vu+66sthii5m6SsIll1xiBlS22247sx2czvLroEG3bt2Kz9FkcpqXQJ+jz9U3e91ar3KZPVL3/o3MoQEiIjqtQATHqC6X8eNnC5Pa6RZ5Jr1wD7guPddl1HoPtP6re2hrcIjkafCrtwlUo4H5P//5z8A3eN2/vPINX7dH06/KLdr0KwydGdds7QWaa0CX4h944IHFxzSx3W233db2l2d8v+A/6H2azvqeuggWJgt/YdP55uyTHg8b+6TTulLTtuH+p/TicbnugiTWLbl26dAswrWJnH9BeXGJPu+57gXpeo+zJns79dRT5f333zf7Zw8bNswsXwZKb3/46KOPTIZ3vR/9zDPPNI/rEncAAADExPbYDZJBgadaQ/ukK90TXb+QPZrQT1dQ1PLBBx+YfzUpoN4LX9hu7/nnn5d+/foleKYoWjDiSeZVX6QscRwj7ijysP063afbOgHqMYq433uLub4LXS1drhfa2yys3Pbi42eQrATp++67b+DPb7rppvacDzwwaNAgk4k/6Oc6gPPmm28mel7wAMGa9cRxbfZJjyVxHMvd0UjiOD78+YbLzpGu0LGonJwJcdWVQ+Xq0KmkVeQg/ccffyz7fs6cOWbZ+6RJk8xe6Ui/Tp06yfLLLy9OobPw6g0c2cIHNkRFkwlG8SCQrfEuZlkTUVwxgVSLHKTr3tuVNMP7wQcfLMstt1yzzgtZRucTI8uJ4/jk7VziuFgGcCzMpDMQ5ToSx8XD8j7p9OmBCv1S3LXk3pVDu6il9JJxr97CX/u85zq4BVvVF+nQQY466ii59NJLm/FyAAAAAHwavPEy7PQYKxdSrSlBuvrss89k7ty5zXo5AElPYsWJN5KMJ46zfQJwh4ft1+XpOHuduqXj+inpamKWMyMJBa2sZOHad3a5u86Yl9Llq99884088sgjMmLEiGaeGzKLNxdklI3EcSlZ7k634TgSx6UUF54bMZRb9cBdEHFxqGCpZPeCdN3/unKp+2KLLSYXX3xx3czvAOzgXnBYRftDRPRZwSgfOJlQjHG2ROUp71SLHKQ//fTT8ZwJEvPFF1/IMsssYwZc1lprLfETPVNDLC2NbM0xZPsThOssJI6LoU6Squeyv4W25Tjby7PTKe79t+sdlz49WD6pe7Vdu6xoFylOHFe49m2fSfpFDtLhl7333ttsj/fggw8WHxs8eLC5RaFfv35Wzw0AAABNRv6ZTKC40y1UkD5s2LDQo7WjR49u7zkhZh07dpSBAwfaPg0kiiFPWMSQOwAkhsRx2bitgVpOt1BB+g477CCZ/nA5Z4adY3fuEXqY7N5775UzzjhDPv30U+nRo4cZWNGvW2+91fy8MMiitysMGTKkbLn7M888I7/85S9l1KhRcsIJJ8hHH30kw4cPlzvvvFPefPNNkyzw66+/lu22205uuOEG8/r1bLrpprLmmmtKt27dzO906dJFDjroIDn99NOLz/nyyy/lD3/4gzz55JMmt8HWW28tV1xxhQzo2XHBM3Jy9tlny5///Gf56aefZLfddjOz/3qeb77yknlGS0uLXHrFRfJ/d94iE7+fKKussoqcf/755rXg0PYoxY01eUsJVCyfMNndm1OW8SSOa/5L1j0Obcv/tu3l4s+Mam43lF6J3eXhVkUwSBCubKK2i5wL5Vo8ZwfOJeVCBemnnXaaZJYG6OcOsnPsk8aJdFmo7tN06fruu+8uF154oey4444ydepUef7552WvvfYygfCUKVPk5ptvNs9dZJFFZNy4cVVfRwPoK6+80gThu+66q/nq2rWr3HHHHTJt2jTz2hpEH3/88aFOXwcINMB/9dVX5eWXXzZL7zfccEP51a9+ZYLr3/72t9KzZ0959tlnzfZ9hx56qAnEn3nkXvP7t9/zdznnnHPk6quvNr+ngwaaoFAHGAquu+kaueaGK+Xyi6+QDTZeX2666Sb5zW9+I//+979lhRVWCFnQAAAA6WBrQJ590oHm4Z70FNAgXYPcnXbaSZZeemnz2BprrGH+7d69u8yaNSvU8nadtdZgWO23335y4oknymeffSbLLruseWznnXc2M/Fhg3SdSS8M8GjArAMAOmuuQbr++95778nYsWPNPfLqtttuk9VWW01ef/Mt+dny/eSKG24z57HPPvuYn48cOVL++c9/mgGDgmuuv0IOO+hw2XmnXaTXot3lggsuMOd42WWXyVVXXRWxJDM+iZXC5EbeCpM4ziuMuGOBkH0BCyOCFRK2WUsc52U/ZE/SpcVMth8iX0eVT7dQzVz7Dgfp8+bNk0svvVTuvvtuM0s7e/bssp//8MMPkiq65FxntG0dO4ShQ4fK5ptvbgLzrbbaSrbccksTUPft2zfS4TSoLhgwYICZUS8E6IXHXnvttYZeTy2++OIyYcIE898ffvihCc4LAbpaddVVZeGFF5YPx3xsgvQxn34uh/zxyLLXWG+99eSpp54y/z116hQZ/+03st46Py97jg40vPPOO6HPE8nhg0M9Ecqn0ezuSUQ/VvZJp225jX3S04g+PVhmy4f+OJaicalU2dkhfh2i/oLe93zJJZeYZcmTJ082y5l1BlfvKS693zg1dJRal5zb+Ao5Qq6J4J544gl57LHHTKCrS9JXWmklM0sdRefOnUv+7FzZ94XHdJl6I6/XyO9HQVdRB50pbKL9ISqaTDCuKVTR+qnRcv4ZJDObTXGnWuQg/fbbb5frr79ejj76aOnUqZO5F1oTg+lS5FdeeSWes0RdGgDrDLIOomhCOE3U9sADD5h/dfWDazTB21dffWW+Cj744AOzXdyqK69kvl9p+WXl9ddfL/u90u979eotAwcsLq+9Wd7uXnzxRTNYAQffQPlcaT1xXBL7pCdW0cyk+4PEcenq00kGGko+o4njXDsdl5QWjZ+J47j2nV3uPn78+OL9zpr0S2fTlWb+PvXUU5t/hqhLE7PpPd66zL1///7m+++++84EwjNnzpTHH39cxowZI4suuqj06dNHXLDFFluYdrTHHnuY+8f1nvpDDjlENtlkE1l37bVEJn8lfzhgLzngyJNl3XXXlQ022EDuuusueffdd8uW4B9y4B/losvOkxVWXEE2+MV6JkHe22+/bQaTAAAAssb22A0SQoGnWuQgfckllzSJypZaailZbrnlTCKvtdde28xwaiZwJK93797y3HPPmWBXM7lr8jjNgr7NNtuYAFe3WNN/NeFaYQs2F2b+//73v5st2DbeeOOyLdgK9tjlt/L5hGlyzDHHmMEGzTavGeJL74s/YJ+DzL3pp4w8Qb6b+J2ZQf/HP/5BZvcas6fWt2BDJhPHce8aovcFtJlghT7dDpKBRhVvebUusJr/H1w92WAj5wGXvsNBum7DpbO266+/vgmw/vd//1duvPFGk0TuyCPLk3whGTpjrnuHV7PYYouZgZSgD826p3nlh2gNhvWrlOYcCJt3QAcGKj344INl3+tAjwbqbUz/rvifujqjdIWGZoZffvnli99rcH/MESfIKaecKr0X7R7q3GAPwZoDieMql7vHsk968svdM5ugyRskjksjuvRgSRWPa9VAfxzX5yB3ytWdM0mv0EG6bp+lAfn5559ffEyTx2mgpXtg68zl9ttvH9d5IoNmzPhJrr3lEpOxXpPj/e1vf5N//etfJkkeIuKTFGyi/SEimkwwygfVtC9jSTPPALEqVDD9QKqFThx38skny6BBg8w9xIUtsNTw4cNNhncC9OzQVROaj6DWl/68WcvpHn30UbMcfp111pGHHnpI7rvvPnM/Oxpka0/ddiY7y4wkEsdVfLqPZXWDlS3YkjkkGkRUmdK1p9RruP3s4z2OEwnFSnG9x5I4zg0kjnNuJl0Txt1zzz0mMZcuOdYZ9H333dcsiS7d6xrpp4M1mpwt6OfN0L17NzNzDgAAgHDIVZARFHeqhQ7Su3fvLnvttZf5+vzzz+WWW24x96Lrll86s7nffvvJDjvs0GZvbKSPbr1Xel+4HfRMkSS2DUwt1FeWE8e5NskDi/gQ3xzFGVqSgfog6dLinnA/RE7mW7E9upV65tp3d590pVtgnXnmmTJ27Fh57LHHzNZeOqO+xBJLNP8MAaQHnxusJ45re0SPl7uXnjtL71KAD3++IRlosKyWDs0iA2WTmj8kZUF6gY7g6qyq/qsd9Zw5c5p3ZkAU9BWBGFWHVbyZIyKaTDD6dFSVL9uJLXmMswF2g/SvvvrKzKTrjLrenz5u3Di5/vrrzf7pQPPQ2zefrcRxVg7rsTCJ4wAf0X6by3YyUIRBeaEaH5sFbdnBe9Jnz54t999/v9x0000mu/viiy8uI0aMMMnjNFgHgHpYGtlMzdkn3ed6LjsObcttIeqHfdI9xGUXKLluKd++e52bpPW4NIya8s38ZXt9JjXsUJA+cOBAmTFjhmy33XZmKyzdu7pDh3atlgeQFAIY2ET7Q1S0mWAUD6qwmlAMyaF6MyF0lH3KKaeYZe733nuvbLPNNgTocLLzGTJkiFx22WWSlGeeecYs/Zk0aZL4wN4yJUbXIwUlYeop7/I+6c1/ybrHIahLwRYTzKRHZX/lKdddmNKxXk0JY9VcbaUDKF63C+rYnZn0o446Kt4zAQAAAOAn+6NGmcL94enGdHhKaQ4BoM2Ap7UtdXkjyXbiOEbcUeBj+3V4ptJSf0CfHk3sxUV1eCnqdZRz4LYGrv3kEKSHeCOcMWeGla8oy4U23XRTOeyww+SII46Qfv36mZwB77//vrk1oWfPnjJgwADZc889ZeLEicXf0VsX1lhjDenevbvZ636LLbaQ6dOnm5/pvvc77LCDnHHGGbLYYotJ79695aCDDgod/Le0tMiFF14oyy+/vHTt2lWWWmopOeecc2ouEX/77bfNY1988UXxsRdeeV1+8YtfmPMbPHiw/PGPfyyen/pu4nfyv/vtJkuvNEDWWGcVuf3229uch77mNddcY8pBX0eTHOrfXRDmXP7zn//I9ttvL3379pWFFlpIVlttNXn00UfLjvPmm2/KuuuuKz169JANNthAxowZE6qcsobVUQGSSrZW8aYez5t8QhVN4riUJY6Db1jWXEdi5eNYPdAuYikal3INcO07tNw9q36a+5Osf8f6Vo796v97VXp07hH6+bfeeqscfPDB8uKLL5qgc7PNNpP9999fLr30Uvnpp5/k+OOPl1133dVk59ft8nbffXcTSO+4444ydepUef7558suuieffFK6detmAlkNWPfZZx8TzBeC7SAnnnii2ZZPj73RRhuZ43300Ueh/5bPvvhKtt51Hzn77HPMjgLfffedGYTQr5tvvtk85/BjDpbx346X+/72sCzUu5ucNPI4mTBhQpvXOvXUU+X888+Xyy+/XP7617/K7373O3nvvfdklVVWCXUuhx56qBmceO6550yQ/sEHH5iBj1Inn3yyXHzxxWZAQwczdNcDrQd30JnCHt7MERVNph4KCAGsrZqzc9ysKWTRdyloh+Ugfc6cObLyyivLww8/HDrAQXJWWGEFE3Srs88+W4YNGybnnntu8eca7OqM9McffyzTpk2TuXPnyk477SRLL720+bnOqpfq0qWL+R2dHdbZ4zPPPFOOPfZYOeusswITB2rArwHxlVdeabbpU8stt5wJ1sPJy3lX3ix77PxbszKg8Lf9+c9/lk022cTMjI/95BN58pknZNTfn5JhQ9eRbgt1lhtvvLFqu9xll13MYIXSc3/iiSfkiiuukKuvvjrU2Xz55ZfyP//zP8XyqbbloA5c6LmpE044QbbddluZOXOmGeRwia1tWVrXZvGGUlvYxHG55iaOi+NNPql6LjkOH1ZcR+K4VEZj9OmBineaZaxp0yrClY2XzSJrjdmXIL1z584m8MiS7p26mxltW8eOYp111in+9zvvvCNPP/10mxlf9dlnn8mWW24pm2++uQk8dWm8fr/zzjubJd0FQ4cONQF6wfDhw01wr1n+C4F9NR9++KHMmjXLvH6j3vngY3n3w0/l9nt7lgUXuox+7NixZla+U6dOMnSNYcWf6wDSwgsv3Oa19Lwrv9cl7WHpMntdofDPf/7T3BKgAfuaa65Z9pzS7xdffHHzr87q6zJ/AACA5NjeyQWpnniBm/ek69LfCy64wMzCZoHem6xLzm18RU3OoEux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+yf/2OvTFySPsnR038Sf4M+tmmBgtrZC0TTUIpzoIgtZI22fR/pFDtI1KN9///3N18cffyy//vWvzeP//ve/ZciQIZI22tG0zJhh5StKJ6erGA477DCzZFpvPdBt8t5//33ZZpttzMDKgAEDZM8995SJEycWf+fee++VNdZYw9y+sOiii8oWW2wh06dPNz/be++9ZYcddpAzzjhDFltsMendu7ccdNBBoYN/bQuXXXZZ2WNrrbWWnH766WUfLm644QbZcccdTTLCFVZYQf7xj3+U/Y62q+22284cv1evXvKLX/xCPvvsM/OzHXfbVk4544Sy5+s567kXzJo1S4455hhZYoklZKGFFpL1119fnnnmmTbL25daailzDnouhUGoAj1nPfe//OUvMnjwYPO8XXfdVSZPnhy4XL3yXK6++mrzN+qAltaHrkIp1dLSYnI8LLLIIjJw4MCysgIAAAiHXAVZYH/iBU4td7/qqqvklFNOMcve77vvPhPcqTfffNNsxZY2+Z9+kjFrr2Pl2CuNflNyPXpESup38MEHy4svviiTJk2SzTbbzAymXHrppWaVw/HHH2+Cy6eeekq++eYbU1+aT0AD06lTp8rzzz9fNjDw5JNPmoBSg9ovvvhC9tlnH1Pf55xzTtP+Rh0E0HO46KKL5IorrjBb+f3n36/LIp1Evh43Xjbe+NcmANZz1kBd/7a5c+eGfn0duPjggw/kzjvvlEGDBskDDzwgW2+9tbz33nsmYH711Vdlv/32k/POO88E1aNGjZLTTjutzet8+umncvfdd8tDDz0kU6ZMMb9zyCGHmK0Iw3jjjTfkj3/8o/z1r381SRZ/+OEHU96V9XfUUUeZc9J8Dxrg620khdUq7cGoNqyi+SEq2kwgunRUtaBdsAw6xcpSsVDPaRY5SNeEWposrlqwBbs06NSAV5199tkybNgwk+iv4KabbjIzwboCYtq0aSbY3WmnnWTppZc2P9dZ9VJdunQxv6Mzx6uttpqceeaZcuyxx8pZZ50lHTpEXoRRlQaihcEdPdc///nP8tobb8nWP19ZrrrxNunTp48JsDt37myes+KKK5p/586cWfe1v/zyS7n55pvNvxqgK51V10BcH9fjXX755SZo1xnswuu/9NJL5jmlZs6cKbfddpuZkVc6oLDtttvKxRdfbGa9w5yLzuTrqgBdEaBlrvVT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cNcUfboXki4tZjmzkUzQynurh59BMhOk/+53vzN7b48fP94ss2ppaTH7cR9zzDFmj2gAgLuJ49q+SjoSx/GRNA2J4/jw5x+uvCCZLZ3M/uEZwkCqe0H6ueeeKyuvvLIMHjxYpk2bJquuuqpsvPHGssEGG5iM74AV9BV1UECwiOaHiGgydfABGVXYHuZikjVZpPFIt05Rl1XoDPqf//xnGTlypLk/XQP1YcOGyQorrBDfWQLwfJ90O4f1Fp90kFa07aayttideoyE8kKlhpqEC82ItuxukK5ZvXU/dA3KdTYdqGbTTTeVtdZaSy677LKGX+P08y+VB0c9Hbjd2x+PPlgmT5ksd/7f3Q0fB8nh3uQgEcum0ezu7JMOoEm47OpIqiusPJC1OIqdXOppX9HknRn8oYodW+7eoUMHE5x///338Z0RgKbjDRNW0f4QFU0mEMWDoIZB+0gv53bbgzv3pJ9//vly7LHHyvvvvx/PGaEpZs+eLWlGH9Uga3vqtm9v70woK5sw2d2bs0+6z4NCZX8LbcttxfoJ6oNYRhmZrZm04mG57oIUW33mmjbtot77lqfbpJectwMnk3KRg3TN4P7aa6/J0KFDpXv37rLIIouUfaWNfticM2uela8oH3R1eflhhx0mRxxxhPTr10+22morM5CyzTbbSM+ePWXAgAGy5557lu1lf++998oaa6xh6nHRRReVLbbYQqZPn25+tvfee8sOO+wgZ5xxhiy22GLSu3dvOeiggyIF/5r5/7jjjjPtYuDAgXL66aeX/fzLL7+U3/72t+b89PV33XVX+fbbb2u+3rx58+Soo44y2wAOXGKQnHneqcwQh0UxwSauU0REi6mDawoByFWQDXwGTrdI96Sr9txj7KO5s1vkusOftXLsAy/fRDp37Rj6+bfeeqscfPDBZku8SZMmyWabbSb777+/XHrppfLTTz+ZrfM0EH7qqafMXve77767XHjhhbLjjjvK1KlT5fnnny+74J988knp1q2bPPPMM/LFF1/IPvvsY4L5c845J/T5aFD96quvyssvv2wC/w033FB+9atfmQC+EKA/++yzMnfuXDn00ENlt912k2ceurPq61188cVyyy23yE033STLL7ucXHD+xfLoPx+WjYZvHLqMss7e+ydv3M2rKMoSHuNDfEqCIurRpdKiNjJy7bpQ0fTh7gbpI0aMiOdM0G6aL0CDbnX22WebrPu6ZV6BBrea7O/jjz82Wfk1MN5pp51k6aWXNj/XWfVSXbp0Mb/To0cPWW211eTMM880tzqcddZZJj9BPWuuuaacdtppxXO78sorTeCvQbr+q7sDjB07tpiA8LbbbjPHef3Nt+RnKw6sOkB04oknmnOeM3OWXHTOZfLMc0+1s9QATzUrcZzX+6RbOCYaFGafdPiGmTwHb/1x4DYImkUyieOsBsxUsntB+pQpU2qOCHXt2tUEdmnSqUsHM6Nt69hRrLPOOsX/fuedd+Tpp582M9WVPvvsM9lyyy1l8803N4G5Lo3X73feeWfp27dv8Xl6S4MG6AXDhw83wf1XX31VDOzrBemlFl98cZkwYYL57w8//NAE56U7BKy66qpmKfuHYz5pE6RPnjzZzP6vv/76xcc6deokQ9cYZt4E6SqCUUKwijdzREWbCURwjGqKGUtoH6lVGpbz2S7dIgfpGkQFLdFYcsklzbJmnUENM9vqOv1boyw5t2mhhRYq/rcG09tvv71ccMEFbZ6nwXLHjh3liSeekJdeekn++c9/yhVXXCEnn3yyWZq+zDLLNOV8Onfu3KYsdZk7bLKVOG7+v3xwaGbiuAYPI0lswdb8l6x+HBLHeYPEcTEhGajLkksc51g90C5qCtMT1v9tewrXPlUcv8hRtN4TPGjQIDnppJPkwQcfNF/630sssYRcc801cuCBB8qf//xnkwUe9qy99tpmP/shQ4aYve1LvwrBvF5oeo+4Jod76623zCqIBx54oGw2Xu9lL3jllVfMzHzp7HejVlllFTMjr18FH3zwgbmXftWVV2zz/D59+pjBBR1EKNDl+u++X3sPdZSgN4VVtD8ASG4LNjt9bo6BtgRQxlkReSZdk4FpAi9NQFagM7a6bPovf/mLudd4qaWWMsnFNHiHHZqE7frrrzfJ4QoZ1j/99FO588475YYbbpA33njD1JUuc+/fv78Jfr/77jsTPBdoJvf99ttPTjnlFJM4TldHaAb5ZqyQ0Ezy2mb22GMPc6+5BtyHHHKIbLLJJrLu2kNFpo5v8zuHH364GfzR+9uXW2ZZufCCS2TylMntPpcssZZkiEQj0ZA4DmlFX9BU5I3zRbwFRnV4qKFKo6azJHK0pcujNSFZJX1MM3irjTbayGyvBXt0tYNmeddtyzQQ14BYt2fT2xU0yNYtz5577jn59a9/LSuuuKIJxHXwRbdsK9B71jUg3njjjU3W9d/85jdttlFrT7D497//3dwDr6+vQfuyyy4rd911V81Jt6OPPtpsI6fJCzfedBPpuVAv+fWW2zXlfJAQZvQD5JNJHFe53D2WGZekEsex3D1dieP4AIp0sZFD0wXcK11b+24xc6lcXTqXdIo8k65LnW+88cY2y9n1scIy6O+//74sARnip9ukVdIA+/7776/6fJ0xHzVqVN3X1aXw+tWM89FbI0rpigsN1NuY8o355/QTjpLTz7+0LFGczrrr15yZs+XHb2dGPq+sIn6BTeQiQFQ0mWBcUwhcbm5vo3RLB86Q0rFpAuVUixyk/+lPf5JddtlFHnvsMfnZz35mHtOl0x999JHce++95vvXX3/dzLwCcIy1XVl4427aBx0+BMFrtN+mstQf0Ke7VU3Uhn98rTNrt01mUOQgXZc8a0Cu95/rfttKl0jrLKkmKVMHH3xw888UztBbGXS7tFo0AZzOkgOVGPUNEHlmrMGyrPg1v/dJbz0OLctxYdoElegdZvTdeM9zZ590sv7X076ScaSeufbdDNKVbtFF9vZ00yz+Qfe7v/3224E/h2voTGERb+aIiiYTjGsKAQig0ot90rOjoSD9+eefNzPpn3/+udxzzz1m+7W//vWvJnjXpHFIN703XLdyg3+sLVEsHJb3kwBhC6d9MxVt3tRjyRtH4jhUWlA/7FzQZMyYuqxQPLHXkmOXDs0iRJvwddk417672d3vu+8+2WqrraR79+4yevRomTVrlnl88uTJcu6558ZxjgDaiVF1WEXzQ0TMEAWjdBDE3j7pSFKOjiDVIgfpZ599tlx77bVmD+7OnTsXH99www1N0A40Db19epIM+TpibEWdsqIs4TXabzPZu/WYenSpvKgN//h6CXl62tkI0seMGWP2ta7Up08fmTRpUrPOC5nG0GBaMaNvP3FcEvukJ1bPLHf3R4j6oQb9Q50FS64rzLsxiFI8Li2jtnw6EsdZO3J2RA7SBw4cKJ9++mmbx1944QVZdtllm3VeQDT0FsEoH9hEAI2oaDLBuKYQtPyZ5pFe7JOeGZGD9AMOOEAOP/xwefXVV81I3bhx4+T222+XY445hq3X0GQsqknPEkVG15uTWMs8YcHTG5xJr/i9WGa9Ewogyo5C0OI4Eselcs0s110oWUscR7twIJlgXEgc52529xNOOEFaWlpk8803lxkzZpil7127djVB+h/+8Id4zhKp8swzz8gvf/lL+fHHH2XhhRe2fTqZwGgrrOLNHGgurikEyFvKKEaugviVlTDFnWqdGrkATz75ZDn22GPNsvdp06bJqquuKj179pSffvrJZH0HgDK8cUdA4jikGe03DdtqEoxFQ3EhLdeQr+edieXuBV26dDHB+XrrrWeyvF9yySVmn3S4Yfbs2ek+ByYRvMTkTzYSxyV2fZI4zh8kjkslkoG6Uj6Vx7EbSNEsamtf0bhTsFz7DgXpuh/6iSeeKOuuu65ssMEG8uCDD5rHb775ZhOcX3rppXLkkUfGea4IsOmmm8phhx0mRxxxhPTr18/sZf/+++/LNttsY1Y5DBgwQPbcc0+ZOHGief7DDz9slprPmzfPfP/222+b0TG9naFg//33l//93/81//3999/L7rvvLksssYT06NFD1lhjDfnb3/5W9xzUo48+KiuuuKJZZaHL3L/44osESwYGnSmsov0hGrqsYNzChCC0j2wgUE630EH6yJEj5ZprrpEhQ4aYIGuXXXaRAw880ATnOouujx1//PGSxgtgzsyZVr6iXny33nqrWeHw4osvyvnnny+bbbaZDBs2TN544w0ZNWqUfPvtt7Lrrrua5/7iF7+QqVOnyltvvWW+f/bZZ01grfeLF+hjGnirmTNnyjrrrCOPPPKICf617jXof+2112qew7XXXitfffWV7LTTTrL99tubgQAN/EsHApCVfdIL/8UbivXEcYnMpLMFGxpp3w0v7ssu61ttIUg+sdsSXOv/XDufdCSOc2PwhWvfuXvS77nnHrntttvkN7/5jQnS1lxzTZk7d6688847qb4/Ye6sWfLnETtbOfYfb71XOnfrFvr5K6ywglx44YXmv88++2wToJ977rnFn990000yePBg+fjjj83M9lprrWWCcl0dof/qSogzzjjD5BmYPHmyyTmwySabmN/VGXRNDligSQIff/xxufvuu80tD9XOQZ100kmy3HLLycUXX2y+X2mlleS9996TCy64oJ2lAwAAAHfGbtIbD7jGjYAdcQo9bP3f//7XzKSq1Vdf3WR016CuGRfkVVddZWbou3XrJuuvv36b2dla7rzzTnP8HXbYod3nkAaF+lE6ePL000+bpe6Fr5VXXtn87LPP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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot regressors\n", + "plt.figure(figsize=(12, 8))\n", + "for i, label in enumerate(testfile.get(\"labels\")):\n", + " plt.plot(testfile.get(\"regressors\")[1000:2000, i], label=label)\n", + "plt.legend()\n", + "plt.xlabel(\"Time\")\n", + "plt.ylabel(\"Regressor Value\")\n", + "plt.title(\"Gonogo Regressors\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 358, + "id": "7cdcd540", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 358, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(testfile.get(\"regressors\")[:, 3], label=testfile.get(\"labels\")[3])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b34e56da", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "828ccf9a", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "096be58d", "metadata": {}, "outputs": [], "source": [] From d14a459760a26a47aa45fb5fb0abff6f04d85c98 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Wed, 5 Aug 2026 17:20:12 +0100 Subject: [PATCH 55/64] test regressor generation --- exploratory/session-regressors.ipynb | 50 ++++++++++++++++------------ 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/exploratory/session-regressors.ipynb b/exploratory/session-regressors.ipynb index ea0784b..c2285a5 100644 --- a/exploratory/session-regressors.ipynb +++ b/exploratory/session-regressors.ipynb @@ -789,7 +789,7 @@ }, { "cell_type": "code", - "execution_count": 349, + "execution_count": 379, "id": "9d79adca", "metadata": {}, "outputs": [], @@ -800,7 +800,7 @@ }, { "cell_type": "code", - "execution_count": 350, + "execution_count": 380, "id": "10444c5e", "metadata": {}, "outputs": [ @@ -810,7 +810,7 @@ "ItemsView(NpzFile '../scratch/sub-MM229_exp-109hrb21d_ses-20220329_behaviour-gonogo_regressors.npz' with keys: regressors, labels, timestamps, trial_idx)" ] }, - "execution_count": 350, + "execution_count": 380, "metadata": {}, "output_type": "execute_result" } @@ -821,7 +821,7 @@ }, { "cell_type": "code", - "execution_count": 351, + "execution_count": 381, "id": "dea26eb9", "metadata": {}, "outputs": [ @@ -832,7 +832,7 @@ " 'resp_hold', 'reward'], dtype=']" + "[]" ] }, - "execution_count": 354, + "execution_count": 384, "metadata": {}, "output_type": "execute_result" }, @@ -939,17 +939,17 @@ }, { "cell_type": "code", - "execution_count": 355, + "execution_count": 385, "id": "54e2b2a7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 355, + "execution_count": 385, "metadata": {}, "output_type": "execute_result" }, @@ -971,17 +971,17 @@ }, { "cell_type": "code", - "execution_count": 356, + "execution_count": 386, "id": "9e5c8754", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 356, + "execution_count": 386, "metadata": {}, "output_type": "execute_result" }, @@ -1004,7 +1004,7 @@ }, { "cell_type": "code", - "execution_count": 357, + "execution_count": 387, "id": "c7132a2c", "metadata": {}, "outputs": [ @@ -1033,17 +1033,17 @@ }, { "cell_type": "code", - "execution_count": 358, + "execution_count": 388, "id": "7cdcd540", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 358, + "execution_count": 388, "metadata": {}, "output_type": "execute_result" }, @@ -1085,6 +1085,14 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "90f454cc", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { From f79195ddf659545b204853860fa7b7f5fed8d5cb Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Thu, 6 Aug 2026 18:02:02 +0100 Subject: [PATCH 56/64] fix bug where hit or fa rate of 0 is treated as not provided --- src/visiomode_analysis/session/plots.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/visiomode_analysis/session/plots.py b/src/visiomode_analysis/session/plots.py index de8cd73..3774db3 100644 --- a/src/visiomode_analysis/session/plots.py +++ b/src/visiomode_analysis/session/plots.py @@ -211,7 +211,8 @@ def plot_roc(hit_rate, fa_rate, hit_rate_wc=None, fa_rate_wc=None, as_html=False yaxis={"title": "Hit rate"}, ) - if hit_rate_wc and fa_rate_wc: + has_wc = hit_rate_wc is not None and fa_rate_wc is not None + if has_wc: fig.add_trace( go.Scatter( x=[fa_rate_wc], @@ -221,7 +222,7 @@ def plot_roc(hit_rate, fa_rate, hit_rate_wc=None, fa_rate_wc=None, as_html=False ), ) - fig.update_layout(showlegend=True if hit_rate_wc else False) + fig.update_layout(showlegend=has_wc) fig.update_xaxes(constrain="domain") fig.update_yaxes(scaleanchor="x") @@ -247,7 +248,7 @@ def plot_dprime(d_prime, d_prime_wc=None, as_html=False): fig.add_hline(y=0.0, line_color="darkred", opacity=0.8) fig.update_xaxes(showticklabels=False) - if d_prime_wc: + if d_prime_wc is not None: fig.add_trace( go.Scatter(y=[d_prime_wc], marker={"symbol": "x", "size": 12, "color": "orange"}, name="d' (all)"), ) @@ -273,7 +274,7 @@ def plot_criterion(criterion, criterion_wc=None, as_html=False): fig.add_hline(y=0.0, line_color="grey", opacity=0.8, line_dash="dash") fig.update_xaxes(showticklabels=False) - if criterion_wc: + if criterion_wc is not None: fig.add_trace( go.Scatter(y=[criterion_wc], marker={"symbol": "x", "size": 12, "color": "orange"}, name="C (all)"), ) From 457657d3353771dea2c17009c23620f82267384f Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Thu, 6 Aug 2026 18:20:33 +0100 Subject: [PATCH 57/64] add initial test suite --- pyproject.toml | 7 +- tests/conftest.py | 104 +++++++++++++++++ tests/test_cli.py | 153 +++++++++++++++++++++++++ tests/test_flatten_trials.py | 142 +++++++++++++++++++++++ tests/test_metrics.py | 46 ++++++++ tests/test_plots.py | 214 +++++++++++++++++++++++++++++++++++ tests/test_regressor.py | 109 ++++++++++++++++++ tests/test_session.py | 145 ++++++++++++++++++++++++ tests/test_subject.py | 61 ++++++++++ 9 files changed, 979 insertions(+), 2 deletions(-) create mode 100644 tests/conftest.py create mode 100644 tests/test_cli.py create mode 100644 tests/test_flatten_trials.py create mode 100644 tests/test_metrics.py create mode 100644 tests/test_plots.py create mode 100644 tests/test_regressor.py create mode 100644 tests/test_session.py create mode 100644 tests/test_subject.py diff --git a/pyproject.toml b/pyproject.toml index 8392946..c9e668e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,8 +62,12 @@ extra-dependencies = [ [tool.hatch.envs.types.scripts] check = "mypy --install-types --non-interactive {args:src/visiomode_analysis tests}" +[tool.pytest.ini_options] +testpaths = ["tests"] +addopts = "-ra" + [tool.coverage.run] -source_pkgs = ["visiomode_analysis", "tests"] +source_pkgs = ["visiomode_analysis"] branch = true parallel = true omit = [ @@ -72,7 +76,6 @@ omit = [ [tool.coverage.paths] visiomode_analysis = ["src/visiomode_analysis", "*/visiomode-analysis/src/visiomode_analysis"] -tests = ["tests", "*/visiomode-analysis/tests"] [tool.coverage.report] exclude_lines = [ diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..6b250b1 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,104 @@ +import datetime +import os +import pathlib + +import numpy as np +import pandas as pd +import pytest + +from visiomode_analysis import session + +REPO_ROOT = pathlib.Path(__file__).resolve().parents[1] + + +@pytest.fixture +def gonogo_session_json_path() -> str: + """Path to a real (anonymised) Go/NoGo session recording, used as an integration fixture.""" + return str(REPO_ROOT / "exploratory" / "test_data" / "example-gonogo-leverpush.json") + + +def _gonogo_regressor_timestamps(gonogo_session_json_path) -> list[str]: + """Absolute ISO timestamps that land just after the cue onset of real trials in + `gonogo_session_json_path`, so regressor generation has something to find.""" + trials = session.get_trials(gonogo_session_json_path) + metadata = session.get_metadata(gonogo_session_json_path) + session_start = datetime.datetime.fromisoformat(metadata["session_start_time"]) + + offsets = trials["cue_onset"].dropna().head(3) + 0.2 + return [(session_start + datetime.timedelta(seconds=offset)).isoformat() for offset in offsets] + + +@pytest.fixture +def gonogo_regressor_timestamps_csv_path(tmp_path, gonogo_session_json_path) -> str: + """A `--regressor-timestamps` CSV built from `_gonogo_regressor_timestamps`.""" + timestamps = _gonogo_regressor_timestamps(gonogo_session_json_path) + + path = tmp_path / "regressor_timestamps.csv" + path.write_text("timestamp\n" + "\n".join(timestamps) + "\n") + return str(path) + + +@pytest.fixture +def gonogo_regressor_timestamps_txt_path(tmp_path, gonogo_session_json_path) -> str: + """The whitespace-delimited TXT equivalent of `gonogo_regressor_timestamps_csv_path`.""" + timestamps = _gonogo_regressor_timestamps(gonogo_session_json_path) + + path = tmp_path / "regressor_timestamps.txt" + path.write_text("\n".join(timestamps) + "\n") + return str(path) + + +@pytest.fixture +def write_trials_csv(): + """Factory fixture that writes a minimal preprocessed trials.csv with just enough columns + for `session.summary` (and therefore `subject.collate_sessions`) to run on.""" + + def _write(directory, filename, animal_id, session_date, protocol, experiment, environment="unknown"): + rows = [ + dict(outcome="correct", correction=False, sdt_type="hit", response_time=0.5, response="leverpush"), + dict( + outcome="incorrect", correction=False, sdt_type="false_alarm", response_time=0.3, response="leverpush" + ), + dict( + outcome="correct", correction=False, sdt_type="correct_rejection", response_time=np.nan, response=None + ), + dict(outcome="incorrect", correction=True, sdt_type=None, response_time=np.nan, response=None), + dict(outcome="precued", correction=False, sdt_type=None, response_time=np.nan, response=None), + ] + df = pd.DataFrame(rows) + df["animal_id"] = animal_id + df["session_date"] = session_date + df["protocol"] = protocol + df["experiment"] = experiment + df["environment"] = environment + + path = os.path.join(directory, filename) + df.to_csv(path, index=False) + return path + + return _write + + +@pytest.fixture +def flatten_trial(): + """Factory fixture that runs a single trial dict through the private + `session._flatten_trials` generator, with sensible default session metadata that individual + tests can override via `metadata_overrides`.""" + + def _flatten(trial, metadata_overrides=None, session_start_time="2022-01-01T00:00:00"): + metadata = { + "session_start_time": session_start_time, + "stimulus_duration": 4000, + "environment": "unknown", + "protocol": "gonogo", + "stimuli": { + "target_id": "movinggrating", + "target_contrast": "1.0", + "distractor_id": "isoluminantgray", + }, + } + if metadata_overrides: + metadata.update(metadata_overrides) + return next(iter(session._flatten_trials({"trials": [trial]}, metadata=metadata))) + + return _flatten diff --git a/tests/test_cli.py b/tests/test_cli.py new file mode 100644 index 0000000..c31a745 --- /dev/null +++ b/tests/test_cli.py @@ -0,0 +1,153 @@ +import os + +import pytest +from click.testing import CliRunner + +from visiomode_analysis import cli, group, session, subject +from visiomode_analysis.__about__ import __version__ + + +@pytest.fixture +def runner(): + return CliRunner() + + +# -- `visiomode-analysis session` -- + + +def test_session_cmd_writes_trials_csv_and_report(runner, gonogo_session_json_path, tmp_path): + result = runner.invoke(session.session_cmd, [gonogo_session_json_path, "-o", str(tmp_path)]) + + assert result.exit_code == 0, result.output + assert f"Files saved under {tmp_path}" in result.output + + written = os.listdir(tmp_path) + assert any(name.endswith("_trials.csv") for name in written) + assert any(name.endswith("_report-session.html") for name in written) + + +def test_session_cmd_no_report_skips_report_generation(runner, gonogo_session_json_path, tmp_path): + result = runner.invoke(session.session_cmd, [gonogo_session_json_path, "-o", str(tmp_path), "--no-report"]) + + assert result.exit_code == 0, result.output + + written = os.listdir(tmp_path) + assert any(name.endswith("_trials.csv") for name in written) + assert not any(name.endswith("_report-session.html") for name in written) + + +def test_session_cmd_with_regressors_requires_timestamps_option(runner, gonogo_session_json_path, tmp_path): + result = runner.invoke(session.session_cmd, [gonogo_session_json_path, "-o", str(tmp_path), "--with-regressors"]) + + assert result.exit_code != 0 + assert isinstance(result.exception, ValueError) + + +def test_session_cmd_with_regressors_writes_regressors_file( + runner, gonogo_session_json_path, gonogo_regressor_timestamps_csv_path, tmp_path +): + result = runner.invoke( + session.session_cmd, + [ + gonogo_session_json_path, + "-o", + str(tmp_path), + "--with-regressors", + "--regressor-timestamps", + gonogo_regressor_timestamps_csv_path, + ], + ) + + assert result.exit_code == 0, result.output + assert any(name.endswith("_regressors.npz") for name in os.listdir(tmp_path)) + + +def test_session_cmd_rejects_a_path_that_does_not_exist(runner, tmp_path): + result = runner.invoke(session.session_cmd, [str(tmp_path / "missing.json")]) + + assert result.exit_code == 2 + assert "does not exist" in result.output + + +# -- `visiomode-analysis regressors` -- + + +def test_regressors_cmd_writes_regressors_file( + runner, gonogo_session_json_path, gonogo_regressor_timestamps_csv_path, tmp_path +): + result = runner.invoke( + session.regressors_cmd, + [ + gonogo_session_json_path, + "-o", + str(tmp_path), + "--regressor-timestamps", + gonogo_regressor_timestamps_csv_path, + ], + ) + + assert result.exit_code == 0, result.output + assert f"Regressors saved under {tmp_path}" in result.output + assert any(name.endswith("_regressors.npz") for name in os.listdir(tmp_path)) + + +def test_regressors_cmd_requires_regressor_timestamps_option(runner, gonogo_session_json_path): + result = runner.invoke(session.regressors_cmd, [gonogo_session_json_path]) + + assert result.exit_code == 2 + assert "regressor-timestamps" in result.output.lower() + + +# -- `visiomode-analysis subject` -- + + +def test_subject_cmd_writes_summary_csv(runner, tmp_path, write_trials_csv): + write_trials_csv(tmp_path, "a_trials.csv", "A1", "2022-01-01", "gonogo", "expX") + + result = runner.invoke(subject.subject_cmd, [str(tmp_path), "-o", str(tmp_path)]) + + assert result.exit_code == 0, result.output + assert f"Files saved under {tmp_path}" in result.output + assert (tmp_path / "sub-A1_exp-expX_behaviour-summary.csv").exists() + + +def test_subject_cmd_raises_for_a_directory_with_no_trials_csv(runner, tmp_path): + result = runner.invoke(subject.subject_cmd, [str(tmp_path)]) + + assert result.exit_code != 0 + assert isinstance(result.exception, FileNotFoundError) + + +# -- `visiomode-analysis group` (currently an unimplemented stub) -- + + +def test_group_cmd_is_a_no_op(runner): + result = runner.invoke(group.group_cmd, []) + + assert result.exit_code == 0 + assert result.output == "" + + +# -- Top-level `cli` group wiring -- + + +def test_cli_reports_its_version(runner): + result = runner.invoke(cli, ["--version"]) + + assert result.exit_code == 0 + assert __version__ in result.output + + +def test_cli_lists_all_subcommands(runner): + result = runner.invoke(cli, ["--help"]) + + assert result.exit_code == 0 + for command_name in ("session", "regressors", "subject", "group"): + assert command_name in result.output + + +def test_cli_dispatches_to_session_subcommand(runner, gonogo_session_json_path, tmp_path): + result = runner.invoke(cli, ["session", gonogo_session_json_path, "-o", str(tmp_path), "--no-report"]) + + assert result.exit_code == 0, result.output + assert any(name.endswith("_trials.csv") for name in os.listdir(tmp_path)) diff --git a/tests/test_flatten_trials.py b/tests/test_flatten_trials.py new file mode 100644 index 0000000..072bce3 --- /dev/null +++ b/tests/test_flatten_trials.py @@ -0,0 +1,142 @@ +"""Tests for `session._flatten_trials`'s handling of older Visiomode JSON formats: sessions +recorded before an explicit `stimulus`/`sdt_type` field existed on each trial, where the presented +stimulus and signal-detection classification instead have to be reconstructed from the trial's +`outcome`/`response` and the session-level `stimuli` metadata. +""" + +import numpy as np + +BASE_TRIAL = dict( + timestamp="2022-01-01T00:00:01", + iti=5.0, + response_time=0.5, + outcome="correct", + correction=False, +) + + +def test_unknown_response_name_resolves_via_hf_environment(flatten_trial): + trial = flatten_trial( + {**BASE_TRIAL, "response": {"name": None, "timestamp": "2022-01-01T00:00:02"}, "sdt_type": "hit"}, + metadata_overrides={"environment": "hf"}, + ) + + assert trial["response"] == "leverpush" + # An explicit `sdt_type` on the trial (newer format) is used as-is rather than re-derived. + assert trial["sdt_type"] == "hit" + + +def test_unknown_response_name_resolves_via_freelymoving_environment(flatten_trial): + trial = flatten_trial( + {**BASE_TRIAL, "response": {"name": None, "timestamp": "2022-01-01T00:00:02"}}, + metadata_overrides={"environment": "freelymoving"}, + ) + + assert trial["response"] == "touch" + + +def test_legacy_gonogo_hit_reconstructs_target_stimulus_from_metadata(flatten_trial): + trial = flatten_trial( + {**BASE_TRIAL, "response": {"name": "leverpush", "timestamp": "2022-01-01T00:00:02"}, "outcome": "correct"} + ) + + assert trial["stim_id"] == "movinggrating" + assert trial["stim_contrast"] == "1.0" + + +def test_legacy_gonogo_false_alarm_reconstructs_distractor_stimulus_from_metadata(flatten_trial): + trial = flatten_trial( + {**BASE_TRIAL, "response": {"name": "leverpush", "timestamp": "2022-01-01T00:00:02"}, "outcome": "incorrect"} + ) + + assert trial["stim_id"] == "isoluminantgray" + + +def test_legacy_gonogo_correct_rejection_reconstructs_distractor_stimulus(flatten_trial): + trial = flatten_trial({**BASE_TRIAL, "response": None, "outcome": "correct"}) + + assert trial["sdt_type"] == "correct_rejection" + assert trial["stim_id"] == "isoluminantgray" + + +def test_legacy_gonogo_miss_reconstructs_target_stimulus_and_classifies_as_miss(flatten_trial): + trial = flatten_trial({**BASE_TRIAL, "response": None, "outcome": "incorrect"}) + + assert trial["sdt_type"] == "miss" + assert trial["stim_id"] == "movinggrating" + + +def test_stimulus_literal_none_string_is_treated_as_no_stimulus(flatten_trial): + trial = flatten_trial({**BASE_TRIAL, "response": None, "stimulus": "None"}) + + assert "stim_id" not in trial + # With no stimulus, there's nothing to cue, so cue_onset is left undefined. + assert np.isnan(trial["cue_onset"]) + + +def test_stimulus_with_common_name_uses_single_stimulus_format(flatten_trial): + trial = flatten_trial({**BASE_TRIAL, "response": None, "stimulus": {"common_name": "grating", "contrast": 0.5}}) + + assert trial["stim_common_name"] == "grating" + assert trial["stim_contrast"] == 0.5 + + +def test_stimulus_with_unrecognised_shape_yields_no_stimulus(flatten_trial): + # Neither a "common_name" nor a "target" key: an unrecognised stimulus dict shape is left + # unhandled and produces no stimulus fields, same as if none were presented at all. + trial = flatten_trial({**BASE_TRIAL, "response": None, "stimulus": {"unexpected_key": "value"}}) + + assert not any(key.startswith(("stim_", "target_", "distractor_")) for key in trial) + assert np.isnan(trial["cue_onset"]) + + +def test_stimulus_with_target_and_distractor_keys_uses_2afc_format(flatten_trial): + trial = flatten_trial( + { + **BASE_TRIAL, + "response": None, + "stimulus": {"target": {"id": "left_shape"}, "distractor": {"id": "right_shape"}}, + } + ) + + assert trial["target_id"] == "left_shape" + assert trial["distractor_id"] == "right_shape" + + +def test_legacy_targetonly_hit_reconstructs_target_stimulus(flatten_trial): + trial = flatten_trial( + {**BASE_TRIAL, "response": {"name": "touch", "timestamp": "2022-01-01T00:00:02"}, "outcome": "correct"}, + metadata_overrides={"protocol": "targetonly"}, + ) + + assert trial["stim_id"] == "movinggrating" + + +def test_legacy_targetonly_no_response_reconstructs_target_stimulus(flatten_trial): + trial = flatten_trial( + {**BASE_TRIAL, "response": None, "outcome": "no_response"}, + metadata_overrides={"protocol": "targetonly"}, + ) + + assert trial["stim_id"] == "movinggrating" + + +def test_legacy_targetonly_unmatched_response_outcome_combo_yields_no_stimulus(flatten_trial): + # Neither "response present and correct" nor "no_response": e.g. an incorrect trial with a + # response isn't reconstructed under the legacy targetonly branch, and yields no stimulus. + trial = flatten_trial( + {**BASE_TRIAL, "response": {"name": "touch", "timestamp": "2022-01-01T00:00:02"}, "outcome": "incorrect"}, + metadata_overrides={"protocol": "targetonly"}, + ) + + assert "stim_id" not in trial + assert np.isnan(trial["cue_onset"]) + + +def test_legacy_other_protocol_uses_raw_stimuli_dict_unchanged(flatten_trial): + trial = flatten_trial({**BASE_TRIAL, "response": None}, metadata_overrides={"protocol": "afc2"}) + + # Unlike the gonogo/targetonly branches, this fallback doesn't rename keys to "stim_*". + assert trial["target_id"] == "movinggrating" + assert trial["distractor_id"] == "isoluminantgray" + assert "stim_id" not in trial diff --git a/tests/test_metrics.py b/tests/test_metrics.py new file mode 100644 index 0000000..948f408 --- /dev/null +++ b/tests/test_metrics.py @@ -0,0 +1,46 @@ +import math + +import pytest + +from visiomode_analysis.session import metrics + + +def test_d_prime_of_perfect_and_zero_rates_cancel_out(): + # Symmetric hit/false-alarm rates around 0.5 give equidistant z-scores, so d' is zero. + assert metrics.d_prime(0.5, 0.5) == pytest.approx(0.0) + + +def test_d_prime_matches_known_value(): + # z(0.8) - z(0.2) = 0.8416... - (-0.8416...) = 1.6832... + assert metrics.d_prime(0.8, 0.2) == pytest.approx(1.6832424671458286) + + +def test_d_prime_applies_afc_correction(): + uncorrected = metrics.d_prime(0.8, 0.2, afc_correction=False) + corrected = metrics.d_prime(0.8, 0.2, afc_correction=True) + + assert corrected == pytest.approx(uncorrected * (1 / math.sqrt(2))) + + +@pytest.mark.parametrize("hit_rate,fa_rate", [(0.0, 0.5), (0.5, 0.0), (1.0, 0.5), (0.5, 1.0)]) +def test_d_prime_rejects_boundary_rates(hit_rate, fa_rate): + with pytest.raises(ValueError): + metrics.d_prime(hit_rate, fa_rate) + + +def test_criterion_is_zero_when_rates_are_symmetric(): + assert metrics.criterion(0.8, 0.2) == pytest.approx(0.0) + assert metrics.criterion(0.5, 0.5) == pytest.approx(0.0) + + +def test_criterion_rejects_both_rates_zero(): + with pytest.raises(ValueError): + metrics.criterion(0.0, 0.0) + + +def test_perseveration_is_ratio_of_correction_to_incorrect_trials(): + assert metrics.perseveration(num_correction_trials=5, num_incorrect=10) == pytest.approx(0.5) + + +def test_perseveration_is_zero_when_no_incorrect_trials(): + assert metrics.perseveration(num_correction_trials=5, num_incorrect=0) == 0.0 diff --git a/tests/test_plots.py b/tests/test_plots.py new file mode 100644 index 0000000..4947a62 --- /dev/null +++ b/tests/test_plots.py @@ -0,0 +1,214 @@ +import numpy as np +import pandas as pd +import pytest + +from visiomode_analysis.session import plots + + +def _assert_embeddable_html(html): + assert isinstance(html, str) + assert " pd.DataFrame: + """Three hand-crafted Go/NoGo trials covering a hit, a false alarm, and a correct rejection. + + Trial 0: hit on the "go" stimulus, lever pushed at RT=0.5s (sets the median RT used for + the "hold" and "nogo" windows below). + Trial 1: false alarm on the "nogo" stimulus, lever pushed at RT=0.3s. + Trial 2: correct rejection on the "nogo" stimulus, no lever push. + """ + return pd.DataFrame( + [ + dict( + start_time=0.0, + stop_time=5.0, + cue_onset=1.0, + stim_id="movinggrating", + outcome="correct", + response="leverpush", + sdt_type="hit", + response_time=0.5, + ), + dict( + start_time=5.0, + stop_time=10.0, + cue_onset=6.0, + stim_id="isoluminantgray", + outcome="incorrect", + response="leverpush", + sdt_type="false_alarm", + response_time=0.3, + ), + dict( + start_time=10.0, + stop_time=15.0, + cue_onset=11.0, + stim_id="isoluminantgray", + outcome="correct", + response=None, + sdt_type="correct_rejection", + response_time=np.nan, + ), + ] + ) + + +def test_generate_gonogo_regressors_flags_expected_events(gonogo_trials): + # leverpush_rt = median hit response_time = 0.5s, so windows below are relative to that. + timestamps = [ + 0.5, # trial 0, before cue onset -> nothing + 1.5, # trial 0, during the go stimulus -> stim_go + 4.95, # trial 0, in the final 0.08s before stop -> cued lever push + 5.2, # trial 1, ITI following a correct trial -> reward + 6.3, # trial 1, within the nogo/leverpush-RT window -> stim_nogo (and still within reward window) + 9.95, # trial 1, in the final 0.08s before stop -> cued lever push + 11.45, # trial 2, in the expected-push hold window, but no push -> resp_hold + 20.0, # outside every trial window -> excluded entirely + ] + + regressors, labels, trial_entries = rgr.generate_gonogo_regressors( + gonogo_trials, timestamps, trial_epoch_only=True + ) + + assert labels == { + 0: "stim_go", + 1: "stim_nogo", + 2: "resp_cuedpush", + 3: "resp_uncuedpush", + 4: "resp_hold", + 5: "reward", + } + + # The last timestamp falls after every trial's stop_time, so it's dropped from the entries. + np.testing.assert_array_equal(trial_entries, [True, True, True, True, True, True, True, False]) + + expected = np.array( + [ + [0, 0, 0, 0, 0, 0], + [1, 0, 0, 0, 0, 0], + [0, 0, 1, 0, 0, 0], + [0, 0, 0, 0, 0, 1], + [0, 1, 0, 0, 0, 1], + [0, 0, 1, 0, 0, 0], + [0, 0, 0, 0, 1, 0], + ] + ) + np.testing.assert_array_equal(regressors, expected) + + +def test_generate_gonogo_regressors_pads_zero_rows_outside_trial_epochs(gonogo_trials): + timestamps = [0.5, 20.0] + + regressors, _, trial_entries = rgr.generate_gonogo_regressors(gonogo_trials, timestamps, trial_epoch_only=False) + + # Unlike trial_epoch_only=True, every input timestamp gets a row, zero-filled outside trials. + assert regressors.shape == (len(timestamps), 6) + np.testing.assert_array_equal(regressors[1], [0, 0, 0, 0, 0, 0]) + np.testing.assert_array_equal(trial_entries, [True, False]) + + +def test_generate_gonogo_regressors_raises_when_no_timestamp_falls_in_a_trial(gonogo_trials): + with pytest.raises(ValueError, match="No trials found"): + rgr.generate_gonogo_regressors(gonogo_trials, [100.0, 200.0]) diff --git a/tests/test_session.py b/tests/test_session.py new file mode 100644 index 0000000..699ffb8 --- /dev/null +++ b/tests/test_session.py @@ -0,0 +1,145 @@ +import datetime +import json +import shutil + +import numpy as np +import pandas as pd +import pytest + +from visiomode_analysis import session + + +def test_get_metadata_reads_spec_and_filename_derived_fields(gonogo_session_json_path): + metadata = session.get_metadata(gonogo_session_json_path) + + assert metadata["protocol"] == "gonogo" + assert metadata["response_device"] == "leverpush" + assert metadata["reward_profile"] == "waterreward" + assert metadata["stimulus_duration"] == 4000.0 + assert metadata["iti"] == 5000.0 + assert metadata["session_date"] == datetime.date(2022, 3, 9) + assert metadata["stimuli"]["target_id"] == "movinggrating" + assert metadata["stimuli"]["distractor_id"] == "isoluminantgray" + + +def test_get_metadata_prefers_bids_style_filename_over_json_contents(gonogo_session_json_path, tmp_path): + # The example fixture's own filename has none of the sub-/exp-/ses-/behaviour- markers, so + # get_metadata falls back to the JSON's own animal_id/experiment/environment fields for it. + # Copying it to a BIDS-style name exercises the filename-parsing branches instead, which take + # priority over those JSON fields. + bids_path = tmp_path / "sub-ZZ99_exp-testexp_ses-20230115_behaviour-hf.json" + shutil.copy(gonogo_session_json_path, bids_path) + + metadata = session.get_metadata(str(bids_path)) + + assert metadata["animal_id"] == "ZZ99" + assert metadata["experiment"] == "testexp" + assert metadata["session_date"] == datetime.date(2023, 1, 15) + assert metadata["environment"] == "hf" + + +def test_get_trials_returns_one_row_per_input_trial(gonogo_session_json_path): + with open(gonogo_session_json_path) as fp: + num_source_trials = len(json.load(fp)["trials"]) + + trials = session.get_trials(gonogo_session_json_path) + + assert isinstance(trials, pd.DataFrame) + assert len(trials) == num_source_trials + + +def test_get_trials_normalises_legacy_outcome_labels(gonogo_session_json_path): + trials = session.get_trials(gonogo_session_json_path) + + # Legacy "hit"/"miss"/"false_alarm" outcomes are remapped to correct/incorrect/no_response, + # while the finer-grained SDT classification survives separately in `sdt_type`. + assert set(trials["outcome"].unique()) <= {"correct", "incorrect", "precued"} + assert set(trials["sdt_type"].dropna().unique()) <= {"hit", "miss", "false_alarm", "correct_rejection"} + + +def test_get_rts_only_includes_cued_trials_with_a_response(gonogo_session_json_path): + rts = session.get_rts(gonogo_session_json_path) + + assert isinstance(rts, np.ndarray) + assert len(rts) > 0 + assert np.all(rts >= 0) + + +def test_summary_computes_consistent_trial_counts(gonogo_session_json_path): + result = session.summary(gonogo_session_json_path) + + assert result["animal_id"] == "MM229" + assert result["protocol"] == "gonogo" + assert result["total"] == result["cued_wc"] + result["precued"] + assert result["cued_wc"] == result["hits_wc"] + result["misses_wc"] + result["false_alarms_wc"] + result["correct_rejections_wc"] + assert result["correct_wc"] == result["hits_wc"] + result["correct_rejections_wc"] + + # Rates are Hautus-corrected proportions, so they're always strictly between 0 and 1. + assert 0.0 < result["hit_rate"] < 1.0 + assert 0.0 < result["fa_rate"] < 1.0 + + +def test_summary_reports_nan_iqr_when_no_trial_has_a_response(tmp_path): + # The IQR is computed from trials with a non-null response; when there are none at all, + # np.percentile raises on the empty selection and summary() falls back to NaN instead of + # propagating the error. + rows = [ + dict(outcome="correct", correction=False, sdt_type="hit", response_time=np.nan, response=None), + dict(outcome="incorrect", correction=False, sdt_type="false_alarm", response_time=np.nan, response=None), + dict(outcome="correct", correction=False, sdt_type="correct_rejection", response_time=np.nan, response=None), + dict(outcome="precued", correction=False, sdt_type=None, response_time=np.nan, response=None), + ] + df = pd.DataFrame(rows) + df["animal_id"] = "A1" + df["session_date"] = "2022-01-01" + df["protocol"] = "gonogo" + df["experiment"] = "expX" + df["environment"] = "unknown" + + csv_path = tmp_path / "trials.csv" + df.to_csv(csv_path, index=False) + + result = session.summary(str(csv_path)) + + assert np.isnan(result["rt_iqr"]) + assert np.isnan(result["rt_iqr_wc"]) + + +def test_generate_regressors_accepts_txt_timestamps( + gonogo_session_json_path, gonogo_regressor_timestamps_txt_path, tmp_path +): + trials_df = session.get_trials(gonogo_session_json_path) + metadata = session.get_metadata(gonogo_session_json_path) + + out_path = session.generate_regressors(trials_df, metadata, gonogo_regressor_timestamps_txt_path, output_dir=str(tmp_path)) + + assert out_path.endswith("_regressors.npz") + assert (tmp_path / "sub-MM229_exp-109hrb21d_ses-20220309_behaviour-gonogo_regressors.npz").exists() + + +def test_generate_regressors_rejects_unsupported_timestamps_file_extension(gonogo_session_json_path, tmp_path): + trials_df = session.get_trials(gonogo_session_json_path) + metadata = session.get_metadata(gonogo_session_json_path) + bad_path = tmp_path / "timestamps.xyz" + bad_path.write_text("2022-01-01T00:00:01\n") + + with pytest.raises(ValueError, match="CSV or TXT"): + session.generate_regressors(trials_df, metadata, str(bad_path), output_dir=str(tmp_path)) + + +def test_generate_regressors_rejects_unsupported_protocol(tmp_path): + trials_df = pd.DataFrame( + [dict(start_time=0.0, stop_time=1.0, cue_onset=0.5, stim_id="x", outcome="correct", response=None)] + ) + metadata = { + "protocol": "unsupported-protocol", + "animal_id": "MM229", + "experiment": "exp", + "session_date": "20220101", + "session_start_time": "2022-01-01T00:00:00", + } + timestamps_path = tmp_path / "timestamps.csv" + timestamps_path.write_text("2022-01-01T00:00:01\n") + + with pytest.raises(NotImplementedError): + session.generate_regressors(trials_df, metadata, str(timestamps_path), output_dir=str(tmp_path)) diff --git a/tests/test_subject.py b/tests/test_subject.py new file mode 100644 index 0000000..84c2520 --- /dev/null +++ b/tests/test_subject.py @@ -0,0 +1,61 @@ +import os + +import pandas as pd +import pytest + +from visiomode_analysis import subject + + +def test_collate_sessions_raises_when_no_trials_csv_found(tmp_path): + with pytest.raises(FileNotFoundError, match="No trials.csv files found"): + subject.collate_sessions(directory=str(tmp_path), output_dir=None) + + +def test_collate_sessions_orders_by_date_and_ranks_task_sessions_per_protocol(tmp_path, write_trials_csv): + # Sessions are written out of date order, and span two protocols, to exercise both the + # chronological sort and the per-(animal, protocol) task_session ranking. + write_trials_csv(tmp_path, "a_trials.csv", "A1", "2022-01-03", "gonogo", "expX") + write_trials_csv(tmp_path, "b_trials.csv", "A1", "2022-01-01", "gonogo", "expX") + write_trials_csv(tmp_path, "c_trials.csv", "A1", "2022-01-02", "targetonly", "expX") + + subject_df = subject.collate_sessions(directory=str(tmp_path), output_dir=None) + + assert list(subject_df["session_date"]) == ["2022-01-01", "2022-01-02", "2022-01-03"] + assert list(subject_df["session_id"]) == [1, 2, 3] + + by_date = subject_df.set_index("session_date") + # The two gonogo sessions are the 1st and 2nd gonogo sessions chronologically... + assert by_date.loc["2022-01-01", "task_session"] == 1.0 + assert by_date.loc["2022-01-03", "task_session"] == 2.0 + # ...while the lone targetonly session is the 1st (and only) session of its protocol. + assert by_date.loc["2022-01-02", "task_session"] == 1.0 + + +def test_collate_sessions_does_not_write_csv_when_output_dir_is_falsy(tmp_path, write_trials_csv): + write_trials_csv(tmp_path, "a_trials.csv", "A1", "2022-01-01", "gonogo", "expX") + + subject.collate_sessions(directory=str(tmp_path), output_dir=None) + + assert os.listdir(tmp_path) == ["a_trials.csv"] + + +def test_collate_sessions_writes_summary_csv_with_expected_name(tmp_path, write_trials_csv): + write_trials_csv(tmp_path, "a_trials.csv", "A1", "2022-01-01", "gonogo", "expX") + + subject_df = subject.collate_sessions(directory=str(tmp_path), output_dir=str(tmp_path)) + + out_path = tmp_path / "sub-A1_exp-expX_behaviour-summary.csv" + assert out_path.exists() + + written = pd.read_csv(out_path, index_col=0) + assert list(written["animal_id"]) == list(subject_df["animal_id"]) + assert list(written["session_id"]) == list(subject_df["session_id"]) + + +def test_preprocess_subject_returns_output_dir_and_writes_summary(tmp_path, write_trials_csv): + write_trials_csv(tmp_path, "a_trials.csv", "A1", "2022-01-01", "gonogo", "expX") + + out_dir = subject.preprocess_subject(directory=str(tmp_path), output_dir=str(tmp_path)) + + assert out_dir == str(tmp_path) + assert (tmp_path / "sub-A1_exp-expX_behaviour-summary.csv").exists() From 29aa1be6d9eb93ec02ac4ab644899c6be7f17c96 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Thu, 6 Aug 2026 20:10:34 +0100 Subject: [PATCH 58/64] add ci runner for tests --- .github/workflows/test.yml | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..70c2897 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,44 @@ +name: Tests + +on: + push: + branches: [main, develop] + pull_request: + branches: [main, develop] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.11", "3.12", "3.13"] + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Cache uv + uses: actions/cache@v4 + with: + path: ~/.cache/uv + key: uv-${{ runner.os }}-py${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }} + restore-keys: | + uv-${{ runner.os }}-py${{ matrix.python-version }}- + + - name: Install Hatch + run: pip install hatch + + - name: Run tests with coverage + run: hatch test --python ${{ matrix.python-version }} --cover From 196e08b9127d6750c805c43cf024fed5010e9b33 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Fri, 7 Aug 2026 13:44:50 +0100 Subject: [PATCH 59/64] remove support for 3.10 --- .github/workflows/test.yml | 2 +- pyproject.toml | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 70c2897..4d11160 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ["3.11", "3.12", "3.13"] steps: - name: Check out repository uses: actions/checkout@v4 diff --git a/pyproject.toml b/pyproject.toml index c9e668e..3b15d5c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,8 +17,6 @@ authors = [ classifiers = [ "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", From bf047ecfd53eb8cb357fddfbc7b72c5b21369ad1 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Fri, 7 Aug 2026 13:45:43 +0100 Subject: [PATCH 60/64] change python requirement to >=3.11 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3b15d5c..7b7e3a2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "visiomode-analysis" dynamic = ["version"] description = 'Analysis package for Visiomode sessions' readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.11" license = "MIT" keywords = [] authors = [ From 670acb6c0d32de5c01e1526cba49f93a43898eb4 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 11 Aug 2026 12:16:56 +0100 Subject: [PATCH 61/64] ignore ai guff --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index 8066953..ceb4223 100644 --- a/.gitignore +++ b/.gitignore @@ -170,3 +170,9 @@ cython_debug/ scratch/ scratch +# AI agent instruction files (not tracked for now) +CLAUDE.md +AGENTS.md +GEMINI.md +.claude/CLAUDE.md + From 3b2ac62ced17f1bd3c5fcfcce59dbb8adf02f638 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 11 Aug 2026 13:04:12 +0100 Subject: [PATCH 62/64] update readme --- README.md | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 128 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f51b994..5ce465a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,128 @@ -# visiomode_analysis -Analysis library for behaviour data generated with visiomode +# visiomode-analysis + +Analysis library and CLI for behavioural session data recorded with [Visiomode](https://github.com/DuguidLab/visiomode), a visuomotor behaviour platform for rodents. + +## Features + +- **Session summaries** — quickly summarise session stats, including signal detection theory metrics. +- **HTML reports** — standalone, self-contained session reports with embedded Plotly figures. +- **GLM regressors** — event regressors (stimulus/response/reward windows) aligned to an external timestamp series, such as imaging frame timestamps or electrophysiology acquisition rates. +- **Subject-level and cohort-level analysis** — combine per-session trial summaries into a single per-subject summary CSV, as well as group-level analysis across subjects. + +## Installation + +Requires Python 3.11+. + +```bash +pip install git+https://github.com/DuguidLab/visiomode_analysis.git +``` + +For local development, this project uses [uv](https://docs.astral.sh/uv/) to manage the virtual environment: + +```bash +git clone https://github.com/DuguidLab/visiomode_analysis.git +cd visiomode_analysis +uv sync +``` + +This creates a `.venv` with the package and its dependencies installed in editable mode. + +## Usage + +### CLI + +The package installs a `visiomode-analysis` command with four subcommands: `session`, `regressors`, `subject`, and `group`. + +**Process a single session** — generates an HTML report and a trials CSV: + +```bash +visiomode-analysis session path/to/sub-01_exp-myexperiment_ses-20260101_behaviour-gonogo.json -o output/ +``` + +Skip the HTML report, or generate GLM regressors alongside it, with: + +```bash +visiomode-analysis session path/to/session.json -o output/ --no-report +visiomode-analysis session path/to/session.json -o output/ --with-regressors --regressor-timestamps frame_times.csv +``` + +**Generate regressors** for an already-processed session, aligned to an external timestamp series: + +```bash +visiomode-analysis regressors path/to/session.json -o output/ --regressor-timestamps frame_times.csv +``` + +**Collate a subject's sessions** — combines every `*trials.csv` file in a directory (as produced by `session`) into one subject-level summary CSV: + +```bash +visiomode-analysis subject path/to/subject_dir/ -o output/ +``` + +Run `visiomode-analysis --help` or `visiomode-analysis --help` for full option details. + +### Python API + +The CLI is a thin wrapper around the `visiomode_analysis.session` module, which can also be used directly: + +```python +from visiomode_analysis import session + +trials = session.get_trials("path/to/session.json") +metadata = session.get_metadata("path/to/session.json") +summary = session.summary(trials) + +session.generate_report(trials, metadata, output_dir="output/") +``` + +### Input files and naming convention + +Session JSON filenames are expected to follow a BIDS-like pattern: + +``` +sub-_exp-_ses-_behaviour-.json +``` + +Metadata encoded in the filename takes precedence over the same fields in the JSON body. Output files (trials CSV, report HTML, regressors `.npz`, subject summary CSV) are named following the same convention, so downstream steps — e.g. `subject` globbing for `*trials.csv` — can find their inputs automatically. + +## Project structure + +```sh +src/visiomode_analysis/ +├── __init__.py # top-level Click CLI group, wires up subcommands +├── session/ # Session-level statistics +│ ├── __init__.py # JSON → trials DataFrame, metadata, summaries, report/regressor generation +│ ├── metrics.py # signal-detection-theory statistics +│ ├── plots.py # Plotly figure builders +│ └── regressor.py # per-protocol GLM regressor construction +├── subject/ # collates per-session trials.csv files into a subject summary +│ └── __init__.py +├── group/ # cohort-level aggregation across subjects (stub, unimplemented) +│ └── __init__.py +└── reports/ # Jinja2 templates for HTML session reports + ├── __init__.py + └── templates/ + ├── base.html + └── session.html +``` + +## Development + +```bash +# Run the full test suite with coverage (matches CI) +hatch test --cover + +# Run tests directly with pytest (faster iteration) +.venv/bin/pytest + +# Run a single test file / test +.venv/bin/pytest tests/test_metrics.py::test_d_prime_afc_correction -v + +# Type checking +hatch run types:check +``` + +See [CONTRIBUTING.md](CONTRIBUTING.md). + +## License + +MIT — see [LICENSE](LICENSE). From 9a59cdce3e23ef3238310c09faea901873002915 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Thu, 6 Aug 2026 17:58:06 +0100 Subject: [PATCH 63/64] add release checklist --- release-checklist.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 release-checklist.md diff --git a/release-checklist.md b/release-checklist.md new file mode 100644 index 0000000..969398e --- /dev/null +++ b/release-checklist.md @@ -0,0 +1,21 @@ +# Releasing new visiomode-analysis versions + +## Checklist + +* Make sure all relevant issues for this release are closed and any PRs merged to main. +* Ensure the Changelog is up to date. +* Make sure the CI isn't failing - build, test and docs should all be working properly. +* Test coverage should be >70% for the main project. Go write some tests if not. +* Double check there aren't any rude comments littering the code. +* Pull any changes to `main`. + +## Releasing + +* Create a new branch called `release/` (e.g. `git branch release/v0.1.0`). Make sure you're doing this from the `main` branch. +* Checkout the new release branch. +* Bump the version using `hatch version `. +* Commit the version change. +* Tag the version with git using `git tag ` (e.g. `git tag v0.1.0`). +* Push everything with `git push && git push --tags`. +* Create a pull request for the release branch and merge into main. +* Github Actions should handle making a release and pushing to PyPI. If so happy days! If not, go fix it. From c6f857785a3fc297c464185a53d8561d8a841b32 Mon Sep 17 00:00:00 2001 From: Constantinos Eleftheriou Date: Tue, 11 Aug 2026 14:43:07 +0100 Subject: [PATCH 64/64] update lock --- uv.lock | 403 ++------------------------------------------------------ 1 file changed, 13 insertions(+), 390 deletions(-) diff --git a/uv.lock b/uv.lock index e315145..8d1bed4 100644 --- a/uv.lock +++ b/uv.lock @@ -1,47 +1,21 @@ version = 1 revision = 3 -requires-python = ">=3.9" +requires-python = ">=3.11" resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'win32'", "python_full_version >= '3.14' and sys_platform == 'emscripten'", "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version == '3.10.*'", - "python_full_version < '3.10'", -] - -[[package]] -name = "click" -version = "8.1.8" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload-time = "2024-12-21T18:38:44.339Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188, upload-time = "2024-12-21T18:38:41.666Z" }, + "python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version < '3.14' and sys_platform == 'emscripten'", + "python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", ] [[package]] name = "click" version = "8.3.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version == '3.10.*'", -] dependencies = [ - { name = "colorama", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" } wheels = [ @@ -75,17 +49,6 @@ version = "3.0.3" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" }, - { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" }, - { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" }, - { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" }, - { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" }, - { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" }, - { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" }, - { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" }, - { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, - { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, - { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, @@ -152,17 +115,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, - { url = "https://files.pythonhosted.org/packages/56/23/0d8c13a44bde9154821586520840643467aee574d8ce79a17da539ee7fed/markupsafe-3.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26", size = 11623, upload-time = "2025-09-27T18:37:29.296Z" }, - { url = "https://files.pythonhosted.org/packages/fd/23/07a2cb9a8045d5f3f0890a8c3bc0859d7a47bfd9a560b563899bec7b72ed/markupsafe-3.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc", size = 12049, upload-time = "2025-09-27T18:37:30.234Z" }, - { url = "https://files.pythonhosted.org/packages/bc/e4/6be85eb81503f8e11b61c0b6369b6e077dcf0a74adbd9ebf6b349937b4e9/markupsafe-3.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c", size = 21923, upload-time = "2025-09-27T18:37:31.177Z" }, - { url = "https://files.pythonhosted.org/packages/6f/bc/4dc914ead3fe6ddaef035341fee0fc956949bbd27335b611829292b89ee2/markupsafe-3.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42", size = 20543, upload-time = "2025-09-27T18:37:32.168Z" }, - { url = "https://files.pythonhosted.org/packages/89/6e/5fe81fbcfba4aef4093d5f856e5c774ec2057946052d18d168219b7bd9f9/markupsafe-3.0.3-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b", size = 20585, upload-time = "2025-09-27T18:37:33.166Z" }, - { url = "https://files.pythonhosted.org/packages/f6/f6/e0e5a3d3ae9c4020f696cd055f940ef86b64fe88de26f3a0308b9d3d048c/markupsafe-3.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758", size = 21387, upload-time = "2025-09-27T18:37:34.185Z" }, - { url = "https://files.pythonhosted.org/packages/c8/25/651753ef4dea08ea790f4fbb65146a9a44a014986996ca40102e237aa49a/markupsafe-3.0.3-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2", size = 20133, upload-time = "2025-09-27T18:37:35.138Z" }, - { url = "https://files.pythonhosted.org/packages/dc/0a/c3cf2b4fef5f0426e8a6d7fce3cb966a17817c568ce59d76b92a233fdbec/markupsafe-3.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d", size = 20588, upload-time = "2025-09-27T18:37:36.096Z" }, - { url = "https://files.pythonhosted.org/packages/cd/1b/a7782984844bd519ad4ffdbebbba2671ec5d0ebbeac34736c15fb86399e8/markupsafe-3.0.3-cp39-cp39-win32.whl", hash = "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7", size = 14566, upload-time = "2025-09-27T18:37:37.09Z" }, - { url = "https://files.pythonhosted.org/packages/18/1f/8d9c20e1c9440e215a44be5ab64359e207fcb4f675543f1cf9a2a7f648d0/markupsafe-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e", size = 15053, upload-time = "2025-09-27T18:37:38.054Z" }, - { url = "https://files.pythonhosted.org/packages/4e/d3/fe08482b5cd995033556d45041a4f4e76e7f0521112a9c9991d40d39825f/markupsafe-3.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8", size = 13928, upload-time = "2025-09-27T18:37:39.037Z" }, ] [[package]] @@ -174,138 +126,10 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/3d/2e/cf2ffeb386ac3763526151163ad7da9f1b586aac96d2b4f7de1eaebf0c61/narwhals-2.15.0-py3-none-any.whl", hash = "sha256:cbfe21ca19d260d9fd67f995ec75c44592d1f106933b03ddd375df7ac841f9d6", size = 432856, upload-time = "2026-01-06T08:10:11.511Z" }, ] -[[package]] -name = "numpy" -version = "2.0.2" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -sdist = { url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", size = 18902015, upload-time = "2024-08-26T20:19:40.945Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/21/91/3495b3237510f79f5d81f2508f9f13fea78ebfdf07538fc7444badda173d/numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece", size = 21165245, upload-time = "2024-08-26T20:04:14.625Z" }, - { url = "https://files.pythonhosted.org/packages/05/33/26178c7d437a87082d11019292dce6d3fe6f0e9026b7b2309cbf3e489b1d/numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04", size = 13738540, upload-time = "2024-08-26T20:04:36.784Z" }, - { url = "https://files.pythonhosted.org/packages/ec/31/cc46e13bf07644efc7a4bf68df2df5fb2a1a88d0cd0da9ddc84dc0033e51/numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66", size = 5300623, upload-time = "2024-08-26T20:04:46.491Z" }, - { url = "https://files.pythonhosted.org/packages/6e/16/7bfcebf27bb4f9d7ec67332ffebee4d1bf085c84246552d52dbb548600e7/numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b", size = 6901774, upload-time = "2024-08-26T20:04:58.173Z" }, - { url = "https://files.pythonhosted.org/packages/f9/a3/561c531c0e8bf082c5bef509d00d56f82e0ea7e1e3e3a7fc8fa78742a6e5/numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd", size = 13907081, upload-time = "2024-08-26T20:05:19.098Z" }, - { url = "https://files.pythonhosted.org/packages/fa/66/f7177ab331876200ac7563a580140643d1179c8b4b6a6b0fc9838de2a9b8/numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318", size = 19523451, upload-time = "2024-08-26T20:05:47.479Z" }, - { url = "https://files.pythonhosted.org/packages/25/7f/0b209498009ad6453e4efc2c65bcdf0ae08a182b2b7877d7ab38a92dc542/numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8", size = 19927572, upload-time = "2024-08-26T20:06:17.137Z" }, - { url = "https://files.pythonhosted.org/packages/3e/df/2619393b1e1b565cd2d4c4403bdd979621e2c4dea1f8532754b2598ed63b/numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326", size = 14400722, upload-time = "2024-08-26T20:06:39.16Z" }, - { url = "https://files.pythonhosted.org/packages/22/ad/77e921b9f256d5da36424ffb711ae79ca3f451ff8489eeca544d0701d74a/numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97", size = 6472170, upload-time = "2024-08-26T20:06:50.361Z" }, - { url = "https://files.pythonhosted.org/packages/10/05/3442317535028bc29cf0c0dd4c191a4481e8376e9f0db6bcf29703cadae6/numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131", size = 15905558, upload-time = "2024-08-26T20:07:13.881Z" }, - { url = "https://files.pythonhosted.org/packages/8b/cf/034500fb83041aa0286e0fb16e7c76e5c8b67c0711bb6e9e9737a717d5fe/numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448", size = 21169137, upload-time = "2024-08-26T20:07:45.345Z" }, - { url = "https://files.pythonhosted.org/packages/4a/d9/32de45561811a4b87fbdee23b5797394e3d1504b4a7cf40c10199848893e/numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195", size = 13703552, upload-time = "2024-08-26T20:08:06.666Z" }, - { url = "https://files.pythonhosted.org/packages/c1/ca/2f384720020c7b244d22508cb7ab23d95f179fcfff33c31a6eeba8d6c512/numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57", size = 5298957, upload-time = "2024-08-26T20:08:15.83Z" }, - { url = "https://files.pythonhosted.org/packages/0e/78/a3e4f9fb6aa4e6fdca0c5428e8ba039408514388cf62d89651aade838269/numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a", size = 6905573, upload-time = "2024-08-26T20:08:27.185Z" }, - { url = "https://files.pythonhosted.org/packages/a0/72/cfc3a1beb2caf4efc9d0b38a15fe34025230da27e1c08cc2eb9bfb1c7231/numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669", size = 13914330, upload-time = "2024-08-26T20:08:48.058Z" }, - { url = "https://files.pythonhosted.org/packages/ba/a8/c17acf65a931ce551fee11b72e8de63bf7e8a6f0e21add4c937c83563538/numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951", size = 19534895, upload-time = "2024-08-26T20:09:16.536Z" }, - { url = "https://files.pythonhosted.org/packages/ba/86/8767f3d54f6ae0165749f84648da9dcc8cd78ab65d415494962c86fac80f/numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9", size = 19937253, upload-time = "2024-08-26T20:09:46.263Z" }, - { url = "https://files.pythonhosted.org/packages/df/87/f76450e6e1c14e5bb1eae6836478b1028e096fd02e85c1c37674606ab752/numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15", size = 14414074, upload-time = "2024-08-26T20:10:08.483Z" }, - { url = "https://files.pythonhosted.org/packages/5c/ca/0f0f328e1e59f73754f06e1adfb909de43726d4f24c6a3f8805f34f2b0fa/numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4", size = 6470640, upload-time = "2024-08-26T20:10:19.732Z" }, - { url = "https://files.pythonhosted.org/packages/eb/57/3a3f14d3a759dcf9bf6e9eda905794726b758819df4663f217d658a58695/numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc", size = 15910230, upload-time = "2024-08-26T20:10:43.413Z" }, - { url = "https://files.pythonhosted.org/packages/45/40/2e117be60ec50d98fa08c2f8c48e09b3edea93cfcabd5a9ff6925d54b1c2/numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b", size = 20895803, upload-time = "2024-08-26T20:11:13.916Z" }, - { url = "https://files.pythonhosted.org/packages/46/92/1b8b8dee833f53cef3e0a3f69b2374467789e0bb7399689582314df02651/numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e", size = 13471835, upload-time = "2024-08-26T20:11:34.779Z" }, - { url = "https://files.pythonhosted.org/packages/7f/19/e2793bde475f1edaea6945be141aef6c8b4c669b90c90a300a8954d08f0a/numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c", size = 5038499, upload-time = "2024-08-26T20:11:43.902Z" }, - { url = "https://files.pythonhosted.org/packages/e3/ff/ddf6dac2ff0dd50a7327bcdba45cb0264d0e96bb44d33324853f781a8f3c/numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c", size = 6633497, upload-time = "2024-08-26T20:11:55.09Z" }, - { url = "https://files.pythonhosted.org/packages/72/21/67f36eac8e2d2cd652a2e69595a54128297cdcb1ff3931cfc87838874bd4/numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692", size = 13621158, upload-time = "2024-08-26T20:12:14.95Z" }, - { url = "https://files.pythonhosted.org/packages/39/68/e9f1126d757653496dbc096cb429014347a36b228f5a991dae2c6b6cfd40/numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a", size = 19236173, upload-time = "2024-08-26T20:12:44.049Z" }, - { url = "https://files.pythonhosted.org/packages/d1/e9/1f5333281e4ebf483ba1c888b1d61ba7e78d7e910fdd8e6499667041cc35/numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c", size = 19634174, upload-time = "2024-08-26T20:13:13.634Z" }, - { url = "https://files.pythonhosted.org/packages/71/af/a469674070c8d8408384e3012e064299f7a2de540738a8e414dcfd639996/numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded", size = 14099701, upload-time = "2024-08-26T20:13:34.851Z" }, - { url = "https://files.pythonhosted.org/packages/d0/3d/08ea9f239d0e0e939b6ca52ad403c84a2bce1bde301a8eb4888c1c1543f1/numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5", size = 6174313, upload-time = "2024-08-26T20:13:45.653Z" }, - { url = "https://files.pythonhosted.org/packages/b2/b5/4ac39baebf1fdb2e72585c8352c56d063b6126be9fc95bd2bb5ef5770c20/numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", size = 15606179, upload-time = "2024-08-26T20:14:08.786Z" }, - { url = "https://files.pythonhosted.org/packages/43/c1/41c8f6df3162b0c6ffd4437d729115704bd43363de0090c7f913cfbc2d89/numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c", size = 21169942, upload-time = "2024-08-26T20:14:40.108Z" }, - { url = "https://files.pythonhosted.org/packages/39/bc/fd298f308dcd232b56a4031fd6ddf11c43f9917fbc937e53762f7b5a3bb1/numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd", size = 13711512, upload-time = "2024-08-26T20:15:00.985Z" }, - { url = "https://files.pythonhosted.org/packages/96/ff/06d1aa3eeb1c614eda245c1ba4fb88c483bee6520d361641331872ac4b82/numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b", size = 5306976, upload-time = "2024-08-26T20:15:10.876Z" }, - { url = "https://files.pythonhosted.org/packages/2d/98/121996dcfb10a6087a05e54453e28e58694a7db62c5a5a29cee14c6e047b/numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729", size = 6906494, upload-time = "2024-08-26T20:15:22.055Z" }, - { url = "https://files.pythonhosted.org/packages/15/31/9dffc70da6b9bbf7968f6551967fc21156207366272c2a40b4ed6008dc9b/numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1", size = 13912596, upload-time = "2024-08-26T20:15:42.452Z" }, - { url = "https://files.pythonhosted.org/packages/b9/14/78635daab4b07c0930c919d451b8bf8c164774e6a3413aed04a6d95758ce/numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd", size = 19526099, upload-time = "2024-08-26T20:16:11.048Z" }, - { url = "https://files.pythonhosted.org/packages/26/4c/0eeca4614003077f68bfe7aac8b7496f04221865b3a5e7cb230c9d055afd/numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d", size = 19932823, upload-time = "2024-08-26T20:16:40.171Z" }, - { url = "https://files.pythonhosted.org/packages/f1/46/ea25b98b13dccaebddf1a803f8c748680d972e00507cd9bc6dcdb5aa2ac1/numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d", size = 14404424, upload-time = "2024-08-26T20:17:02.604Z" }, - { url = "https://files.pythonhosted.org/packages/c8/a6/177dd88d95ecf07e722d21008b1b40e681a929eb9e329684d449c36586b2/numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa", size = 6476809, upload-time = "2024-08-26T20:17:13.553Z" }, - { url = "https://files.pythonhosted.org/packages/ea/2b/7fc9f4e7ae5b507c1a3a21f0f15ed03e794c1242ea8a242ac158beb56034/numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73", size = 15911314, upload-time = "2024-08-26T20:17:36.72Z" }, - { url = "https://files.pythonhosted.org/packages/8f/3b/df5a870ac6a3be3a86856ce195ef42eec7ae50d2a202be1f5a4b3b340e14/numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8", size = 21025288, upload-time = "2024-08-26T20:18:07.732Z" }, - { url = "https://files.pythonhosted.org/packages/2c/97/51af92f18d6f6f2d9ad8b482a99fb74e142d71372da5d834b3a2747a446e/numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4", size = 6762793, upload-time = "2024-08-26T20:18:19.125Z" }, - { url = "https://files.pythonhosted.org/packages/12/46/de1fbd0c1b5ccaa7f9a005b66761533e2f6a3e560096682683a223631fe9/numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c", size = 19334885, upload-time = "2024-08-26T20:18:47.237Z" }, - { url = "https://files.pythonhosted.org/packages/cc/dc/d330a6faefd92b446ec0f0dfea4c3207bb1fef3c4771d19cf4543efd2c78/numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385", size = 15828784, upload-time = "2024-08-26T20:19:11.19Z" }, -] - -[[package]] -name = "numpy" -version = "2.2.6" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version == '3.10.*'", -] -sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload-time = "2025-05-17T21:27:58.555Z" }, - { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048, upload-time = "2025-05-17T21:28:21.406Z" }, - { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542, upload-time = "2025-05-17T21:28:30.931Z" }, - { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301, upload-time = "2025-05-17T21:28:41.613Z" }, - { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320, upload-time = "2025-05-17T21:29:02.78Z" }, - { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050, upload-time = "2025-05-17T21:29:27.675Z" }, - { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034, upload-time = "2025-05-17T21:29:51.102Z" }, - { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185, upload-time = "2025-05-17T21:30:18.703Z" }, - { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149, upload-time = "2025-05-17T21:30:29.788Z" }, - { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620, upload-time = "2025-05-17T21:30:48.994Z" }, - { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963, upload-time = "2025-05-17T21:31:19.36Z" }, - { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743, upload-time = "2025-05-17T21:31:41.087Z" }, - { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616, upload-time = "2025-05-17T21:31:50.072Z" }, - { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579, upload-time = "2025-05-17T21:32:01.712Z" }, - { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005, upload-time = "2025-05-17T21:32:23.332Z" }, - { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570, upload-time = "2025-05-17T21:32:47.991Z" }, - { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548, upload-time = "2025-05-17T21:33:11.728Z" }, - { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521, upload-time = "2025-05-17T21:33:39.139Z" }, - { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866, upload-time = "2025-05-17T21:33:50.273Z" }, - { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455, upload-time = "2025-05-17T21:34:09.135Z" }, - { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" }, - { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" }, - { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" }, - { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" }, - { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" }, - { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" }, - { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" }, - { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" }, - { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" }, - { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" }, - { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828, upload-time = "2025-05-17T21:37:56.699Z" }, - { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006, upload-time = "2025-05-17T21:38:18.291Z" }, - { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765, upload-time = "2025-05-17T21:38:27.319Z" }, - { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736, upload-time = "2025-05-17T21:38:38.141Z" }, - { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719, upload-time = "2025-05-17T21:38:58.433Z" }, - { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072, upload-time = "2025-05-17T21:39:22.638Z" }, - { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213, upload-time = "2025-05-17T21:39:45.865Z" }, - { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632, upload-time = "2025-05-17T21:40:13.331Z" }, - { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532, upload-time = "2025-05-17T21:43:46.099Z" }, - { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885, upload-time = "2025-05-17T21:44:05.145Z" }, - { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467, upload-time = "2025-05-17T21:40:44Z" }, - { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144, upload-time = "2025-05-17T21:41:05.695Z" }, - { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217, upload-time = "2025-05-17T21:41:15.903Z" }, - { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014, upload-time = "2025-05-17T21:41:27.321Z" }, - { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935, upload-time = "2025-05-17T21:41:49.738Z" }, - { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122, upload-time = "2025-05-17T21:42:14.046Z" }, - { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143, upload-time = "2025-05-17T21:42:37.464Z" }, - { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260, upload-time = "2025-05-17T21:43:05.189Z" }, - { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225, upload-time = "2025-05-17T21:43:16.254Z" }, - { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374, upload-time = "2025-05-17T21:43:35.479Z" }, - { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391, upload-time = "2025-05-17T21:44:35.948Z" }, - { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754, upload-time = "2025-05-17T21:44:47.446Z" }, - { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476, upload-time = "2025-05-17T21:45:11.871Z" }, - { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, -] - [[package]] name = "numpy" version = "2.4.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", -] sdist = { url = "https://files.pythonhosted.org/packages/24/62/ae72ff66c0f1fd959925b4c11f8c2dea61f47f6acaea75a08512cdfe3fed/numpy-2.4.1.tar.gz", hash = "sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690", size = 20721320, upload-time = "2026-01-10T06:44:59.619Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/a5/34/2b1bc18424f3ad9af577f6ce23600319968a70575bd7db31ce66731bbef9/numpy-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5", size = 16944563, upload-time = "2026-01-10T06:42:14.615Z" }, @@ -390,95 +214,14 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, ] -[[package]] -name = "pandas" -version = "2.3.3" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version == '3.10.*'", - "python_full_version < '3.10'", -] -dependencies = [ - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "python-dateutil", marker = "python_full_version < '3.11'" }, - { name = "pytz", marker = "python_full_version < '3.11'" }, - { name = "tzdata", marker = "python_full_version < '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload-time = "2025-09-29T23:34:51.853Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3d/f7/f425a00df4fcc22b292c6895c6831c0c8ae1d9fac1e024d16f98a9ce8749/pandas-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:376c6446ae31770764215a6c937f72d917f214b43560603cd60da6408f183b6c", size = 11555763, upload-time = "2025-09-29T23:16:53.287Z" }, - { url = "https://files.pythonhosted.org/packages/13/4f/66d99628ff8ce7857aca52fed8f0066ce209f96be2fede6cef9f84e8d04f/pandas-2.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e19d192383eab2f4ceb30b412b22ea30690c9e618f78870357ae1d682912015a", size = 10801217, upload-time = "2025-09-29T23:17:04.522Z" }, - { url = "https://files.pythonhosted.org/packages/1d/03/3fc4a529a7710f890a239cc496fc6d50ad4a0995657dccc1d64695adb9f4/pandas-2.3.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5caf26f64126b6c7aec964f74266f435afef1c1b13da3b0636c7518a1fa3e2b1", size = 12148791, upload-time = "2025-09-29T23:17:18.444Z" }, - { url = "https://files.pythonhosted.org/packages/40/a8/4dac1f8f8235e5d25b9955d02ff6f29396191d4e665d71122c3722ca83c5/pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dd7478f1463441ae4ca7308a70e90b33470fa593429f9d4c578dd00d1fa78838", size = 12769373, upload-time = "2025-09-29T23:17:35.846Z" }, - { url = "https://files.pythonhosted.org/packages/df/91/82cc5169b6b25440a7fc0ef3a694582418d875c8e3ebf796a6d6470aa578/pandas-2.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4793891684806ae50d1288c9bae9330293ab4e083ccd1c5e383c34549c6e4250", size = 13200444, upload-time = "2025-09-29T23:17:49.341Z" }, - { url = "https://files.pythonhosted.org/packages/10/ae/89b3283800ab58f7af2952704078555fa60c807fff764395bb57ea0b0dbd/pandas-2.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28083c648d9a99a5dd035ec125d42439c6c1c525098c58af0fc38dd1a7a1b3d4", size = 13858459, upload-time = "2025-09-29T23:18:03.722Z" }, - { url = "https://files.pythonhosted.org/packages/85/72/530900610650f54a35a19476eca5104f38555afccda1aa11a92ee14cb21d/pandas-2.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:503cf027cf9940d2ceaa1a93cfb5f8c8c7e6e90720a2850378f0b3f3b1e06826", size = 11346086, upload-time = "2025-09-29T23:18:18.505Z" }, - { url = "https://files.pythonhosted.org/packages/c1/fa/7ac648108144a095b4fb6aa3de1954689f7af60a14cf25583f4960ecb878/pandas-2.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:602b8615ebcc4a0c1751e71840428ddebeb142ec02c786e8ad6b1ce3c8dec523", size = 11578790, upload-time = "2025-09-29T23:18:30.065Z" }, - { url = "https://files.pythonhosted.org/packages/9b/35/74442388c6cf008882d4d4bdfc4109be87e9b8b7ccd097ad1e7f006e2e95/pandas-2.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8fe25fc7b623b0ef6b5009149627e34d2a4657e880948ec3c840e9402e5c1b45", size = 10833831, upload-time = "2025-09-29T23:38:56.071Z" }, - { url = "https://files.pythonhosted.org/packages/fe/e4/de154cbfeee13383ad58d23017da99390b91d73f8c11856f2095e813201b/pandas-2.3.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b468d3dad6ff947df92dcb32ede5b7bd41a9b3cceef0a30ed925f6d01fb8fa66", size = 12199267, upload-time = "2025-09-29T23:18:41.627Z" }, - { url = "https://files.pythonhosted.org/packages/bf/c9/63f8d545568d9ab91476b1818b4741f521646cbdd151c6efebf40d6de6f7/pandas-2.3.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b", size = 12789281, upload-time = "2025-09-29T23:18:56.834Z" }, - { url = "https://files.pythonhosted.org/packages/f2/00/a5ac8c7a0e67fd1a6059e40aa08fa1c52cc00709077d2300e210c3ce0322/pandas-2.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37b5848ba49824e5c30bedb9c830ab9b7751fd049bc7914533e01c65f79791", size = 13240453, upload-time = "2025-09-29T23:19:09.247Z" }, - { url = "https://files.pythonhosted.org/packages/27/4d/5c23a5bc7bd209231618dd9e606ce076272c9bc4f12023a70e03a86b4067/pandas-2.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db4301b2d1f926ae677a751eb2bd0e8c5f5319c9cb3f88b0becbbb0b07b34151", size = 13890361, upload-time = "2025-09-29T23:19:25.342Z" }, - { url = "https://files.pythonhosted.org/packages/8e/59/712db1d7040520de7a4965df15b774348980e6df45c129b8c64d0dbe74ef/pandas-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c", size = 11348702, upload-time = "2025-09-29T23:19:38.296Z" }, - { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846, upload-time = "2025-09-29T23:19:48.856Z" }, - { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618, upload-time = "2025-09-29T23:39:08.659Z" }, - { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212, upload-time = "2025-09-29T23:19:59.765Z" }, - { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693, upload-time = "2025-09-29T23:20:14.098Z" }, - { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002, upload-time = "2025-09-29T23:20:26.76Z" }, - { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971, upload-time = "2025-09-29T23:20:41.344Z" }, - { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722, upload-time = "2025-09-29T23:20:54.139Z" }, - { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload-time = "2025-09-29T23:21:05.024Z" }, - { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload-time = "2025-09-29T23:21:15.979Z" }, - { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload-time = "2025-09-29T23:21:27.165Z" }, - { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload-time = "2025-09-29T23:21:40.532Z" }, - { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload-time = "2025-09-29T23:21:55.77Z" }, - { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload-time = "2025-09-29T23:22:10.109Z" }, - { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload-time = "2025-09-29T23:25:04.889Z" }, - { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload-time = "2025-09-29T23:22:24.343Z" }, - { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload-time = "2025-09-29T23:22:37.762Z" }, - { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload-time = "2025-09-29T23:22:51.688Z" }, - { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload-time = "2025-09-29T23:23:05.042Z" }, - { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload-time = "2025-09-29T23:23:28.57Z" }, - { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload-time = "2025-09-29T23:24:24.876Z" }, - { url = "https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0", size = 11540635, upload-time = "2025-09-29T23:25:52.486Z" }, - { url = "https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593", size = 10759079, upload-time = "2025-09-29T23:26:33.204Z" }, - { url = "https://files.pythonhosted.org/packages/ca/05/d01ef80a7a3a12b2f8bbf16daba1e17c98a2f039cbc8e2f77a2c5a63d382/pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c", size = 11814049, upload-time = "2025-09-29T23:27:15.384Z" }, - { url = "https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b", size = 12332638, upload-time = "2025-09-29T23:27:51.625Z" }, - { url = "https://files.pythonhosted.org/packages/c5/33/dd70400631b62b9b29c3c93d2feee1d0964dc2bae2e5ad7a6c73a7f25325/pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6", size = 12886834, upload-time = "2025-09-29T23:28:21.289Z" }, - { url = "https://files.pythonhosted.org/packages/d3/18/b5d48f55821228d0d2692b34fd5034bb185e854bdb592e9c640f6290e012/pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3", size = 13409925, upload-time = "2025-09-29T23:28:58.261Z" }, - { url = "https://files.pythonhosted.org/packages/a6/3d/124ac75fcd0ecc09b8fdccb0246ef65e35b012030defb0e0eba2cbbbe948/pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5", size = 11109071, upload-time = "2025-09-29T23:32:27.484Z" }, - { url = "https://files.pythonhosted.org/packages/89/9c/0e21c895c38a157e0faa1fb64587a9226d6dd46452cac4532d80c3c4a244/pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec", size = 12048504, upload-time = "2025-09-29T23:29:31.47Z" }, - { url = "https://files.pythonhosted.org/packages/d7/82/b69a1c95df796858777b68fbe6a81d37443a33319761d7c652ce77797475/pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7", size = 11410702, upload-time = "2025-09-29T23:29:54.591Z" }, - { url = "https://files.pythonhosted.org/packages/f9/88/702bde3ba0a94b8c73a0181e05144b10f13f29ebfc2150c3a79062a8195d/pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450", size = 11634535, upload-time = "2025-09-29T23:30:21.003Z" }, - { url = "https://files.pythonhosted.org/packages/a4/1e/1bac1a839d12e6a82ec6cb40cda2edde64a2013a66963293696bbf31fbbb/pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5", size = 12121582, upload-time = "2025-09-29T23:30:43.391Z" }, - { url = "https://files.pythonhosted.org/packages/44/91/483de934193e12a3b1d6ae7c8645d083ff88dec75f46e827562f1e4b4da6/pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788", size = 12699963, upload-time = "2025-09-29T23:31:10.009Z" }, - { url = "https://files.pythonhosted.org/packages/70/44/5191d2e4026f86a2a109053e194d3ba7a31a2d10a9c2348368c63ed4e85a/pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87", size = 13202175, upload-time = "2025-09-29T23:31:59.173Z" }, - { url = "https://files.pythonhosted.org/packages/56/b4/52eeb530a99e2a4c55ffcd352772b599ed4473a0f892d127f4147cf0f88e/pandas-2.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c503ba5216814e295f40711470446bc3fd00f0faea8a086cbc688808e26f92a2", size = 11567720, upload-time = "2025-09-29T23:33:06.209Z" }, - { url = "https://files.pythonhosted.org/packages/48/4a/2d8b67632a021bced649ba940455ed441ca854e57d6e7658a6024587b083/pandas-2.3.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a637c5cdfa04b6d6e2ecedcb81fc52ffb0fd78ce2ebccc9ea964df9f658de8c8", size = 10810302, upload-time = "2025-09-29T23:33:35.846Z" }, - { url = "https://files.pythonhosted.org/packages/13/e6/d2465010ee0569a245c975dc6967b801887068bc893e908239b1f4b6c1ac/pandas-2.3.3-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:854d00d556406bffe66a4c0802f334c9ad5a96b4f1f868adf036a21b11ef13ff", size = 12154874, upload-time = "2025-09-29T23:33:49.939Z" }, - { url = "https://files.pythonhosted.org/packages/1f/18/aae8c0aa69a386a3255940e9317f793808ea79d0a525a97a903366bb2569/pandas-2.3.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bf1f8a81d04ca90e32a0aceb819d34dbd378a98bf923b6398b9a3ec0bf44de29", size = 12790141, upload-time = "2025-09-29T23:34:05.655Z" }, - { url = "https://files.pythonhosted.org/packages/f7/26/617f98de789de00c2a444fbe6301bb19e66556ac78cff933d2c98f62f2b4/pandas-2.3.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:23ebd657a4d38268c7dfbdf089fbc31ea709d82e4923c5ffd4fbd5747133ce73", size = 13208697, upload-time = "2025-09-29T23:34:21.835Z" }, - { url = "https://files.pythonhosted.org/packages/b9/fb/25709afa4552042bd0e15717c75e9b4a2294c3dc4f7e6ea50f03c5136600/pandas-2.3.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5554c929ccc317d41a5e3d1234f3be588248e61f08a74dd17c9eabb535777dc9", size = 13879233, upload-time = "2025-09-29T23:34:35.079Z" }, - { url = "https://files.pythonhosted.org/packages/98/af/7be05277859a7bc399da8ba68b88c96b27b48740b6cf49688899c6eb4176/pandas-2.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:d3e28b3e83862ccf4d85ff19cf8c20b2ae7e503881711ff2d534dc8f761131aa", size = 11359119, upload-time = "2025-09-29T23:34:46.339Z" }, -] - [[package]] name = "pandas" version = "3.0.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", -] dependencies = [ - { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "python-dateutil", marker = "python_full_version >= '3.11'" }, - { name = "tzdata", marker = "(python_full_version >= '3.11' and sys_platform == 'emscripten') or (python_full_version >= '3.11' and sys_platform == 'win32')" }, + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/de/da/b1dc0481ab8d55d0f46e343cfe67d4551a0e14fcee52bd38ca1bd73258d8/pandas-3.0.0.tar.gz", hash = "sha256:0facf7e87d38f721f0af46fe70d97373a37701b1c09f7ed7aeeb292ade5c050f", size = 4633005, upload-time = "2026-01-21T15:52:04.726Z" } wheels = [ @@ -556,126 +299,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, ] -[[package]] -name = "pytz" -version = "2025.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload-time = "2025-03-25T02:25:00.538Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, -] - -[[package]] -name = "scipy" -version = "1.13.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -dependencies = [ - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ae/00/48c2f661e2816ccf2ecd77982f6605b2950afe60f60a52b4cbbc2504aa8f/scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c", size = 57210720, upload-time = "2024-05-23T03:29:26.079Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/33/59/41b2529908c002ade869623b87eecff3e11e3ce62e996d0bdcb536984187/scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca", size = 39328076, upload-time = "2024-05-23T03:19:01.687Z" }, - { url = "https://files.pythonhosted.org/packages/d5/33/f1307601f492f764062ce7dd471a14750f3360e33cd0f8c614dae208492c/scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f", size = 30306232, upload-time = "2024-05-23T03:19:09.089Z" }, - { url = "https://files.pythonhosted.org/packages/c0/66/9cd4f501dd5ea03e4a4572ecd874936d0da296bd04d1c45ae1a4a75d9c3a/scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989", size = 33743202, upload-time = "2024-05-23T03:19:15.138Z" }, - { url = "https://files.pythonhosted.org/packages/a3/ba/7255e5dc82a65adbe83771c72f384d99c43063648456796436c9a5585ec3/scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f", size = 38577335, upload-time = "2024-05-23T03:19:21.984Z" }, - { url = "https://files.pythonhosted.org/packages/49/a5/bb9ded8326e9f0cdfdc412eeda1054b914dfea952bda2097d174f8832cc0/scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94", size = 38820728, upload-time = "2024-05-23T03:19:28.225Z" }, - { url = "https://files.pythonhosted.org/packages/12/30/df7a8fcc08f9b4a83f5f27cfaaa7d43f9a2d2ad0b6562cced433e5b04e31/scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54", size = 46210588, upload-time = "2024-05-23T03:19:35.661Z" }, - { url = "https://files.pythonhosted.org/packages/b4/15/4a4bb1b15bbd2cd2786c4f46e76b871b28799b67891f23f455323a0cdcfb/scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9", size = 39333805, upload-time = "2024-05-23T03:19:43.081Z" }, - { url = "https://files.pythonhosted.org/packages/ba/92/42476de1af309c27710004f5cdebc27bec62c204db42e05b23a302cb0c9a/scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326", size = 30317687, upload-time = "2024-05-23T03:19:48.799Z" }, - { url = "https://files.pythonhosted.org/packages/80/ba/8be64fe225360a4beb6840f3cbee494c107c0887f33350d0a47d55400b01/scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299", size = 33694638, upload-time = "2024-05-23T03:19:55.104Z" }, - { url = "https://files.pythonhosted.org/packages/36/07/035d22ff9795129c5a847c64cb43c1fa9188826b59344fee28a3ab02e283/scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa", size = 38569931, upload-time = "2024-05-23T03:20:01.82Z" }, - { url = "https://files.pythonhosted.org/packages/d9/10/f9b43de37e5ed91facc0cfff31d45ed0104f359e4f9a68416cbf4e790241/scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59", size = 38838145, upload-time = "2024-05-23T03:20:09.173Z" }, - { url = "https://files.pythonhosted.org/packages/4a/48/4513a1a5623a23e95f94abd675ed91cfb19989c58e9f6f7d03990f6caf3d/scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b", size = 46196227, upload-time = "2024-05-23T03:20:16.433Z" }, - { url = "https://files.pythonhosted.org/packages/f2/7b/fb6b46fbee30fc7051913068758414f2721003a89dd9a707ad49174e3843/scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1", size = 39357301, upload-time = "2024-05-23T03:20:23.538Z" }, - { url = "https://files.pythonhosted.org/packages/dc/5a/2043a3bde1443d94014aaa41e0b50c39d046dda8360abd3b2a1d3f79907d/scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d", size = 30363348, upload-time = "2024-05-23T03:20:29.885Z" }, - { url = "https://files.pythonhosted.org/packages/e7/cb/26e4a47364bbfdb3b7fb3363be6d8a1c543bcd70a7753ab397350f5f189a/scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627", size = 33406062, upload-time = "2024-05-23T03:20:36.012Z" }, - { url = "https://files.pythonhosted.org/packages/88/ab/6ecdc526d509d33814835447bbbeedbebdec7cca46ef495a61b00a35b4bf/scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884", size = 38218311, upload-time = "2024-05-23T03:20:42.086Z" }, - { url = "https://files.pythonhosted.org/packages/0b/00/9f54554f0f8318100a71515122d8f4f503b1a2c4b4cfab3b4b68c0eb08fa/scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16", size = 38442493, upload-time = "2024-05-23T03:20:48.292Z" }, - { url = "https://files.pythonhosted.org/packages/3e/df/963384e90733e08eac978cd103c34df181d1fec424de383cdc443f418dd4/scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949", size = 45910955, upload-time = "2024-05-23T03:20:55.091Z" }, - { url = "https://files.pythonhosted.org/packages/7f/29/c2ea58c9731b9ecb30b6738113a95d147e83922986b34c685b8f6eefde21/scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5", size = 39352927, upload-time = "2024-05-23T03:21:01.95Z" }, - { url = "https://files.pythonhosted.org/packages/5c/c0/e71b94b20ccf9effb38d7147c0064c08c622309fd487b1b677771a97d18c/scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24", size = 30324538, upload-time = "2024-05-23T03:21:07.634Z" }, - { url = "https://files.pythonhosted.org/packages/6d/0f/aaa55b06d474817cea311e7b10aab2ea1fd5d43bc6a2861ccc9caec9f418/scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004", size = 33732190, upload-time = "2024-05-23T03:21:14.41Z" }, - { url = "https://files.pythonhosted.org/packages/35/f5/d0ad1a96f80962ba65e2ce1de6a1e59edecd1f0a7b55990ed208848012e0/scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d", size = 38612244, upload-time = "2024-05-23T03:21:21.827Z" }, - { url = "https://files.pythonhosted.org/packages/8d/02/1165905f14962174e6569076bcc3315809ae1291ed14de6448cc151eedfd/scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c", size = 38845637, upload-time = "2024-05-23T03:21:28.729Z" }, - { url = "https://files.pythonhosted.org/packages/3e/77/dab54fe647a08ee4253963bcd8f9cf17509c8ca64d6335141422fe2e2114/scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2", size = 46227440, upload-time = "2024-05-23T03:21:35.888Z" }, -] - -[[package]] -name = "scipy" -version = "1.15.3" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/78/2f/4966032c5f8cc7e6a60f1b2e0ad686293b9474b65246b0c642e3ef3badd0/scipy-1.15.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a345928c86d535060c9c2b25e71e87c39ab2f22fc96e9636bd74d1dbf9de448c", size = 38702770, upload-time = "2025-05-08T16:04:20.849Z" }, - { url = "https://files.pythonhosted.org/packages/a0/6e/0c3bf90fae0e910c274db43304ebe25a6b391327f3f10b5dcc638c090795/scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ad3432cb0f9ed87477a8d97f03b763fd1d57709f1bbde3c9369b1dff5503b253", size = 30094511, upload-time = "2025-05-08T16:04:27.103Z" }, - { url = "https://files.pythonhosted.org/packages/ea/b1/4deb37252311c1acff7f101f6453f0440794f51b6eacb1aad4459a134081/scipy-1.15.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:aef683a9ae6eb00728a542b796f52a5477b78252edede72b8327a886ab63293f", size = 22368151, upload-time = "2025-05-08T16:04:31.731Z" }, - { url = "https://files.pythonhosted.org/packages/38/7d/f457626e3cd3c29b3a49ca115a304cebb8cc6f31b04678f03b216899d3c6/scipy-1.15.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:1c832e1bd78dea67d5c16f786681b28dd695a8cb1fb90af2e27580d3d0967e92", size = 25121732, upload-time = "2025-05-08T16:04:36.596Z" }, - { url = "https://files.pythonhosted.org/packages/db/0a/92b1de4a7adc7a15dcf5bddc6e191f6f29ee663b30511ce20467ef9b82e4/scipy-1.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:263961f658ce2165bbd7b99fa5135195c3a12d9bef045345016b8b50c315cb82", size = 35547617, upload-time = "2025-05-08T16:04:43.546Z" }, - { url = "https://files.pythonhosted.org/packages/8e/6d/41991e503e51fc1134502694c5fa7a1671501a17ffa12716a4a9151af3df/scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2abc762b0811e09a0d3258abee2d98e0c703eee49464ce0069590846f31d40", size = 37662964, upload-time = "2025-05-08T16:04:49.431Z" }, - { url = "https://files.pythonhosted.org/packages/25/e1/3df8f83cb15f3500478c889be8fb18700813b95e9e087328230b98d547ff/scipy-1.15.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed7284b21a7a0c8f1b6e5977ac05396c0d008b89e05498c8b7e8f4a1423bba0e", size = 37238749, upload-time = "2025-05-08T16:04:55.215Z" }, - { url = "https://files.pythonhosted.org/packages/93/3e/b3257cf446f2a3533ed7809757039016b74cd6f38271de91682aa844cfc5/scipy-1.15.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5380741e53df2c566f4d234b100a484b420af85deb39ea35a1cc1be84ff53a5c", size = 40022383, upload-time = "2025-05-08T16:05:01.914Z" }, - { url = "https://files.pythonhosted.org/packages/d1/84/55bc4881973d3f79b479a5a2e2df61c8c9a04fcb986a213ac9c02cfb659b/scipy-1.15.3-cp310-cp310-win_amd64.whl", hash = "sha256:9d61e97b186a57350f6d6fd72640f9e99d5a4a2b8fbf4b9ee9a841eab327dc13", size = 41259201, upload-time = "2025-05-08T16:05:08.166Z" }, - { url = "https://files.pythonhosted.org/packages/96/ab/5cc9f80f28f6a7dff646c5756e559823614a42b1939d86dd0ed550470210/scipy-1.15.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:993439ce220d25e3696d1b23b233dd010169b62f6456488567e830654ee37a6b", size = 38714255, upload-time = "2025-05-08T16:05:14.596Z" }, - { url = "https://files.pythonhosted.org/packages/4a/4a/66ba30abe5ad1a3ad15bfb0b59d22174012e8056ff448cb1644deccbfed2/scipy-1.15.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:34716e281f181a02341ddeaad584205bd2fd3c242063bd3423d61ac259ca7eba", size = 30111035, upload-time = "2025-05-08T16:05:20.152Z" }, - { url = "https://files.pythonhosted.org/packages/4b/fa/a7e5b95afd80d24313307f03624acc65801846fa75599034f8ceb9e2cbf6/scipy-1.15.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3b0334816afb8b91dab859281b1b9786934392aa3d527cd847e41bb6f45bee65", size = 22384499, upload-time = "2025-05-08T16:05:24.494Z" }, - { url = "https://files.pythonhosted.org/packages/17/99/f3aaddccf3588bb4aea70ba35328c204cadd89517a1612ecfda5b2dd9d7a/scipy-1.15.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6db907c7368e3092e24919b5e31c76998b0ce1684d51a90943cb0ed1b4ffd6c1", size = 25152602, upload-time = "2025-05-08T16:05:29.313Z" }, - { url = "https://files.pythonhosted.org/packages/56/c5/1032cdb565f146109212153339f9cb8b993701e9fe56b1c97699eee12586/scipy-1.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721d6b4ef5dc82ca8968c25b111e307083d7ca9091bc38163fb89243e85e3889", size = 35503415, upload-time = "2025-05-08T16:05:34.699Z" }, - { url = "https://files.pythonhosted.org/packages/bd/37/89f19c8c05505d0601ed5650156e50eb881ae3918786c8fd7262b4ee66d3/scipy-1.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39cb9c62e471b1bb3750066ecc3a3f3052b37751c7c3dfd0fd7e48900ed52982", size = 37652622, upload-time = "2025-05-08T16:05:40.762Z" }, - { url = "https://files.pythonhosted.org/packages/7e/31/be59513aa9695519b18e1851bb9e487de66f2d31f835201f1b42f5d4d475/scipy-1.15.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:795c46999bae845966368a3c013e0e00947932d68e235702b5c3f6ea799aa8c9", size = 37244796, upload-time = "2025-05-08T16:05:48.119Z" }, - { url = "https://files.pythonhosted.org/packages/10/c0/4f5f3eeccc235632aab79b27a74a9130c6c35df358129f7ac8b29f562ac7/scipy-1.15.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:18aaacb735ab38b38db42cb01f6b92a2d0d4b6aabefeb07f02849e47f8fb3594", size = 40047684, upload-time = "2025-05-08T16:05:54.22Z" }, - { url = "https://files.pythonhosted.org/packages/ab/a7/0ddaf514ce8a8714f6ed243a2b391b41dbb65251affe21ee3077ec45ea9a/scipy-1.15.3-cp311-cp311-win_amd64.whl", hash = "sha256:ae48a786a28412d744c62fd7816a4118ef97e5be0bee968ce8f0a2fba7acf3bb", size = 41246504, upload-time = "2025-05-08T16:06:00.437Z" }, - { url = "https://files.pythonhosted.org/packages/37/4b/683aa044c4162e10ed7a7ea30527f2cbd92e6999c10a8ed8edb253836e9c/scipy-1.15.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac6310fdbfb7aa6612408bd2f07295bcbd3fda00d2d702178434751fe48e019", size = 38766735, upload-time = "2025-05-08T16:06:06.471Z" }, - { url = "https://files.pythonhosted.org/packages/7b/7e/f30be3d03de07f25dc0ec926d1681fed5c732d759ac8f51079708c79e680/scipy-1.15.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:185cd3d6d05ca4b44a8f1595af87f9c372bb6acf9c808e99aa3e9aa03bd98cf6", size = 30173284, upload-time = "2025-05-08T16:06:11.686Z" }, - { url = "https://files.pythonhosted.org/packages/07/9c/0ddb0d0abdabe0d181c1793db51f02cd59e4901da6f9f7848e1f96759f0d/scipy-1.15.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:05dc6abcd105e1a29f95eada46d4a3f251743cfd7d3ae8ddb4088047f24ea477", size = 22446958, upload-time = "2025-05-08T16:06:15.97Z" }, - { url = "https://files.pythonhosted.org/packages/af/43/0bce905a965f36c58ff80d8bea33f1f9351b05fad4beaad4eae34699b7a1/scipy-1.15.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:06efcba926324df1696931a57a176c80848ccd67ce6ad020c810736bfd58eb1c", size = 25242454, upload-time = "2025-05-08T16:06:20.394Z" }, - { url = "https://files.pythonhosted.org/packages/56/30/a6f08f84ee5b7b28b4c597aca4cbe545535c39fe911845a96414700b64ba/scipy-1.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05045d8b9bfd807ee1b9f38761993297b10b245f012b11b13b91ba8945f7e45", size = 35210199, upload-time = "2025-05-08T16:06:26.159Z" }, - { url = "https://files.pythonhosted.org/packages/0b/1f/03f52c282437a168ee2c7c14a1a0d0781a9a4a8962d84ac05c06b4c5b555/scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271e3713e645149ea5ea3e97b57fdab61ce61333f97cfae392c28ba786f9bb49", size = 37309455, upload-time = "2025-05-08T16:06:32.778Z" }, - { url = "https://files.pythonhosted.org/packages/89/b1/fbb53137f42c4bf630b1ffdfc2151a62d1d1b903b249f030d2b1c0280af8/scipy-1.15.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cfd56fc1a8e53f6e89ba3a7a7251f7396412d655bca2aa5611c8ec9a6784a1e", size = 36885140, upload-time = "2025-05-08T16:06:39.249Z" }, - { url = "https://files.pythonhosted.org/packages/2e/2e/025e39e339f5090df1ff266d021892694dbb7e63568edcfe43f892fa381d/scipy-1.15.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ff17c0bb1cb32952c09217d8d1eed9b53d1463e5f1dd6052c7857f83127d539", size = 39710549, upload-time = "2025-05-08T16:06:45.729Z" }, - { url = "https://files.pythonhosted.org/packages/e6/eb/3bf6ea8ab7f1503dca3a10df2e4b9c3f6b3316df07f6c0ded94b281c7101/scipy-1.15.3-cp312-cp312-win_amd64.whl", hash = "sha256:52092bc0472cfd17df49ff17e70624345efece4e1a12b23783a1ac59a1b728ed", size = 40966184, upload-time = "2025-05-08T16:06:52.623Z" }, - { url = "https://files.pythonhosted.org/packages/73/18/ec27848c9baae6e0d6573eda6e01a602e5649ee72c27c3a8aad673ebecfd/scipy-1.15.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c620736bcc334782e24d173c0fdbb7590a0a436d2fdf39310a8902505008759", size = 38728256, upload-time = "2025-05-08T16:06:58.696Z" }, - { url = "https://files.pythonhosted.org/packages/74/cd/1aef2184948728b4b6e21267d53b3339762c285a46a274ebb7863c9e4742/scipy-1.15.3-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:7e11270a000969409d37ed399585ee530b9ef6aa99d50c019de4cb01e8e54e62", size = 30109540, upload-time = "2025-05-08T16:07:04.209Z" }, - { url = "https://files.pythonhosted.org/packages/5b/d8/59e452c0a255ec352bd0a833537a3bc1bfb679944c4938ab375b0a6b3a3e/scipy-1.15.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8c9ed3ba2c8a2ce098163a9bdb26f891746d02136995df25227a20e71c396ebb", size = 22383115, upload-time = "2025-05-08T16:07:08.998Z" }, - { url = "https://files.pythonhosted.org/packages/08/f5/456f56bbbfccf696263b47095291040655e3cbaf05d063bdc7c7517f32ac/scipy-1.15.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0bdd905264c0c9cfa74a4772cdb2070171790381a5c4d312c973382fc6eaf730", size = 25163884, upload-time = "2025-05-08T16:07:14.091Z" }, - { url = "https://files.pythonhosted.org/packages/a2/66/a9618b6a435a0f0c0b8a6d0a2efb32d4ec5a85f023c2b79d39512040355b/scipy-1.15.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79167bba085c31f38603e11a267d862957cbb3ce018d8b38f79ac043bc92d825", size = 35174018, upload-time = "2025-05-08T16:07:19.427Z" }, - { url = "https://files.pythonhosted.org/packages/b5/09/c5b6734a50ad4882432b6bb7c02baf757f5b2f256041da5df242e2d7e6b6/scipy-1.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9deabd6d547aee2c9a81dee6cc96c6d7e9a9b1953f74850c179f91fdc729cb7", size = 37269716, upload-time = "2025-05-08T16:07:25.712Z" }, - { url = "https://files.pythonhosted.org/packages/77/0a/eac00ff741f23bcabd352731ed9b8995a0a60ef57f5fd788d611d43d69a1/scipy-1.15.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dde4fc32993071ac0c7dd2d82569e544f0bdaff66269cb475e0f369adad13f11", size = 36872342, upload-time = "2025-05-08T16:07:31.468Z" }, - { url = "https://files.pythonhosted.org/packages/fe/54/4379be86dd74b6ad81551689107360d9a3e18f24d20767a2d5b9253a3f0a/scipy-1.15.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f77f853d584e72e874d87357ad70f44b437331507d1c311457bed8ed2b956126", size = 39670869, upload-time = "2025-05-08T16:07:38.002Z" }, - { url = "https://files.pythonhosted.org/packages/87/2e/892ad2862ba54f084ffe8cc4a22667eaf9c2bcec6d2bff1d15713c6c0703/scipy-1.15.3-cp313-cp313-win_amd64.whl", hash = "sha256:b90ab29d0c37ec9bf55424c064312930ca5f4bde15ee8619ee44e69319aab163", size = 40988851, upload-time = "2025-05-08T16:08:33.671Z" }, - { url = "https://files.pythonhosted.org/packages/1b/e9/7a879c137f7e55b30d75d90ce3eb468197646bc7b443ac036ae3fe109055/scipy-1.15.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3ac07623267feb3ae308487c260ac684b32ea35fd81e12845039952f558047b8", size = 38863011, upload-time = "2025-05-08T16:07:44.039Z" }, - { url = "https://files.pythonhosted.org/packages/51/d1/226a806bbd69f62ce5ef5f3ffadc35286e9fbc802f606a07eb83bf2359de/scipy-1.15.3-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6487aa99c2a3d509a5227d9a5e889ff05830a06b2ce08ec30df6d79db5fcd5c5", size = 30266407, upload-time = "2025-05-08T16:07:49.891Z" }, - { url = "https://files.pythonhosted.org/packages/e5/9b/f32d1d6093ab9eeabbd839b0f7619c62e46cc4b7b6dbf05b6e615bbd4400/scipy-1.15.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:50f9e62461c95d933d5c5ef4a1f2ebf9a2b4e83b0db374cb3f1de104d935922e", size = 22540030, upload-time = "2025-05-08T16:07:54.121Z" }, - { url = "https://files.pythonhosted.org/packages/e7/29/c278f699b095c1a884f29fda126340fcc201461ee8bfea5c8bdb1c7c958b/scipy-1.15.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:14ed70039d182f411ffc74789a16df3835e05dc469b898233a245cdfd7f162cb", size = 25218709, upload-time = "2025-05-08T16:07:58.506Z" }, - { url = "https://files.pythonhosted.org/packages/24/18/9e5374b617aba742a990581373cd6b68a2945d65cc588482749ef2e64467/scipy-1.15.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a769105537aa07a69468a0eefcd121be52006db61cdd8cac8a0e68980bbb723", size = 34809045, upload-time = "2025-05-08T16:08:03.929Z" }, - { url = "https://files.pythonhosted.org/packages/e1/fe/9c4361e7ba2927074360856db6135ef4904d505e9b3afbbcb073c4008328/scipy-1.15.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db984639887e3dffb3928d118145ffe40eff2fa40cb241a306ec57c219ebbbb", size = 36703062, upload-time = "2025-05-08T16:08:09.558Z" }, - { url = "https://files.pythonhosted.org/packages/b7/8e/038ccfe29d272b30086b25a4960f757f97122cb2ec42e62b460d02fe98e9/scipy-1.15.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:40e54d5c7e7ebf1aa596c374c49fa3135f04648a0caabcb66c52884b943f02b4", size = 36393132, upload-time = "2025-05-08T16:08:15.34Z" }, - { url = "https://files.pythonhosted.org/packages/10/7e/5c12285452970be5bdbe8352c619250b97ebf7917d7a9a9e96b8a8140f17/scipy-1.15.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5e721fed53187e71d0ccf382b6bf977644c533e506c4d33c3fb24de89f5c3ed5", size = 38979503, upload-time = "2025-05-08T16:08:21.513Z" }, - { url = "https://files.pythonhosted.org/packages/81/06/0a5e5349474e1cbc5757975b21bd4fad0e72ebf138c5592f191646154e06/scipy-1.15.3-cp313-cp313t-win_amd64.whl", hash = "sha256:76ad1fb5f8752eabf0fa02e4cc0336b4e8f021e2d5f061ed37d6d264db35e3ca", size = 40308097, upload-time = "2025-05-08T16:08:27.627Z" }, -] - [[package]] name = "scipy" version = "1.17.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", -] dependencies = [ - { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/56/3e/9cca699f3486ce6bc12ff46dc2031f1ec8eb9ccc9a320fdaf925f1417426/scipy-1.17.0.tar.gz", hash = "sha256:2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e", size = 30396830, upload-time = "2026-01-10T21:34:23.009Z" } wheels = [ @@ -763,18 +392,12 @@ wheels = [ name = "visiomode-analysis" source = { editable = "." } dependencies = [ - { name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "click", version = "8.3.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "click" }, { name = "jinja2" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "pandas", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy" }, + { name = "pandas" }, { name = "plotly" }, - { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "scipy", version = "1.17.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "scipy" }, ] [package.metadata]