diff --git a/.circleci/config.yml b/.circleci/config.yml index c7ee0722c..4eb9db081 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2.1 executors: standard: docker: - - image: circleci/python:3.8 + - image: circleci/python:3.10 working_directory: "~/lib" # ----------------- @@ -33,7 +33,7 @@ commands: - virtualenv-{{ .Environment.CACHE_VERSION }}- - run: name: Install Python packages - command: pipenv install --dev --system + command: pipenv sync --dev --system - save_cache: key: virtualenv-{{ .Environment.CACHE_VERSION }}-{{ .Branch }}-{{ checksum "Pipfile.lock" }} paths: @@ -64,7 +64,7 @@ jobs: executor: standard environment: SALT: himalayan - DBT_PROFILES_DIR: ~/lib/testing/ + DBT_PROFILES_DIR: testing TESTING_PROFILE_NAME: jaffle_shop steps: - checkout diff --git a/.gitignore b/.gitignore index 2d9126631..621679ca9 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,5 @@ logs/ # Python temp files *.pyc __pycache__ + +*.duckdb diff --git a/Makefile b/Makefile index 341d45c56..78f0e65f4 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ init: - pipenv update - pipenv run dbt deps + pipenv install + pipenv run dbt deps --project-dir jaffle_shop clean-env: :> .env @@ -11,21 +11,19 @@ env-development-salt: env-target: echo DATABRICKS_TARGET=$$(git symbolic-ref --short HEAD | tr /- _) >> .env -package-project: - for PACKAGE in dbt_project_evaluator ; do \ - cp package_projects/$$PACKAGE.yml dbt_packages/$$PACKAGE/dbt_project.yml ; \ - done - -build-env: clean-env env-development-salt env-target package-project +build-env: clean-env env-development-salt env-target dbt-deps: - pipenv run dbt deps + pipenv run dbt deps --project-dir jaffle_shop dbt-build: build-env - pipenv run dbt build --selector jaffle_shop + pipenv run dbt build --selector jaffle_shop --project-dir jaffle_shop run-dbt-project-evaluator: dbt-deps build-env - pipenv run dbt --warn-error build --select package:dbt_project_evaluator dbt_project_evaluator_exceptions + pipenv run dbt --warn-error build \ + --select package:dbt_project_evaluator dbt_project_evaluator_exceptions \ + --select jaffle_shop \ + --project-dir jaffle_shop lint: build-env pipenv run sqlfluff lint @@ -34,7 +32,7 @@ format: build-env pipenv run sqlfluff fix run-python-tests: - pipenv run pytest --quiet --show-capture=no --tb=no + pipenv run pytest testing --quiet --show-capture=no --tb=no run-python-tests-detailed: - pipenv run pytest \ No newline at end of file + pipenv run pytest testing \ No newline at end of file diff --git a/Pipfile b/Pipfile index 836ef1397..367af0871 100644 --- a/Pipfile +++ b/Pipfile @@ -4,14 +4,19 @@ verify_ssl = true name = "pypi" [packages] -dbt-core = "==1.3.0" -dbt-databricks = {extras = ["odbc"]} -pytest-mock = "*" +dbt-core = "==1.7.17" +dbt-duckdb = "*" +duckdb = "*" glob2 = "*" [dev-packages] +altair = "*" +jupyterlab = "*" +pandas = "*" +pyarrow = "*" pytest = "*" pytest-mock = "*" +vl-convert-python = "*" [requires] -python_version = "3.8" +python_version = "3.10" diff --git a/Pipfile.lock b/Pipfile.lock index f8d9c41d4..12aad7a83 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "fdc73e9c032079052e940c732affb9526bddab92ec30d99cc8faaf98c9b67d72" + "sha256": "fedf7a76aff16c5d52bae3a59af88a0c38d1802867cd2f6cc324a1bd38b7bbdb" }, "pipfile-spec": 6, "requires": { - "python_version": "3.8" + "python_version": "3.10" }, "sources": [ { @@ -18,199 +18,349 @@ "default": { "agate": { "hashes": [ - "sha256:2d568fd68a8eb8b56c805a1299ba4bc30ca0434563be1bea309c9d1c1c8401f4", - "sha256:e0f2f813f7e12311a4cdccc97d6ba0a6781e9c1aa8eca0ab00d5931c0113a308" + "sha256:23f9f412f74f97b72f82b1525ab235cc816bc8c8525d968a091576a0dbc54a5f", + "sha256:eadf46d980168b8922d5d396d6258eecd5e7dbef7e6f0c0b71e968545ea96389" ], - "version": "==1.6.3" + "version": "==1.7.1" + }, + "annotated-types": { + "hashes": [ + "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", + "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89" + ], + "markers": "python_version >= '3.8'", + "version": "==0.7.0" }, "attrs": { "hashes": [ - "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6", - "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c" + "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", + "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2" ], - "markers": "python_version >= '3.5'", - "version": "==22.1.0" + "markers": "python_version >= '3.7'", + "version": "==24.2.0" }, "babel": { "hashes": [ - "sha256:1ad3eca1c885218f6dce2ab67291178944f810a10a9b5f3cb8382a5a232b64fe", - "sha256:5ef4b3226b0180dedded4229651c8b0e1a3a6a2837d45a073272f313e4cf97f6" + "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b", + "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316" ], - "markers": "python_version >= '3.6'", - "version": "==2.11.0" + "markers": "python_version >= '3.8'", + "version": "==2.16.0" }, "certifi": { "hashes": [ - "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14", - "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382" + "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", + "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9" ], "markers": "python_version >= '3.6'", - "version": "==2022.9.24" + "version": "==2024.8.30" }, "cffi": { "hashes": [ - "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5", - "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef", - "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104", - "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426", - "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405", - "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375", - "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a", - "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e", - "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc", - "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf", - "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185", - "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497", - "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3", - "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35", - "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c", - "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83", - "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21", - "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca", - "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984", - "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac", - "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd", - "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee", - "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a", - "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2", - "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192", - "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7", - "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585", - "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f", - "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e", - "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27", - "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b", - "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e", - "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e", - "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d", - "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c", - "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415", - "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82", - "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02", - "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314", - "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325", - "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c", - "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3", - "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914", - "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045", - "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d", - "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9", - "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5", - "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2", - "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c", - "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3", - "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2", - "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8", - "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d", - "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d", - "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9", - "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162", - "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76", - "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4", - "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e", - "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9", - "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6", - "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b", - "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01", - "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0" - ], - "version": "==1.15.1" + "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8", + "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", + "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1", + "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15", + "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", + "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", + "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8", + "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36", + "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17", + "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", + "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc", + "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", + "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", + "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702", + "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", + "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", + "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", + "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6", + "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", + "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b", + "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e", + "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be", + "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c", + "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", + "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", + "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", + "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8", + "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1", + "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", + "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655", + "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67", + "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595", + "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0", + "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", + "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", + "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", + "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", + "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", + "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3", + "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16", + "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", + "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e", + "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", + "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964", + "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c", + "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576", + "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0", + "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3", + "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662", + "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", + "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", + "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", + "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", + "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", + "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", + "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14", + "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", + "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9", + "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7", + "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382", + "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a", + "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", + "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", + "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", + "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", + "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87", + "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b" + ], + "markers": "python_version >= '3.8'", + "version": "==1.17.1" }, "charset-normalizer": { "hashes": [ - "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", - "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" - ], - "markers": "python_version >= '3.6'", - "version": "==2.1.1" + "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621", + "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", + "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", + "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912", + "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", + "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b", + "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d", + "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d", + "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95", + "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e", + "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", + "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", + "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab", + "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be", + "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", + "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907", + "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0", + "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2", + "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62", + "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62", + "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", + "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", + "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", + "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca", + "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455", + "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858", + "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", + "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", + "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", + "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", + "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", + "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea", + "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6", + "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", + "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749", + "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", + "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd", + "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99", + "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242", + "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee", + "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", + "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", + "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51", + "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", + "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8", + "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", + "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613", + "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742", + "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe", + "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3", + "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", + "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", + "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7", + "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", + "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", + "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", + "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417", + "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", + "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", + "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca", + "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa", + "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", + "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149", + "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41", + "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574", + "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0", + "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f", + "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", + "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654", + "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3", + "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19", + "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", + "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578", + "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", + "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", + "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51", + "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", + "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", + "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a", + "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", + "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade", + "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", + "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc", + "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6", + "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", + "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", + "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6", + "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2", + "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12", + "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf", + "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", + "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7", + "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", + "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", + "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b", + "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", + "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", + "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4", + "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", + "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", + "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a", + "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748", + "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b", + "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", + "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.4.0" }, "click": { "hashes": [ - "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e", - "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48" + "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", + "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de" ], "markers": "python_version >= '3.7'", - "version": "==8.1.3" + "version": "==8.1.7" }, "colorama": { "hashes": [ - "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da", - "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==0.4.5" - }, - "databricks-sql-connector": { - "hashes": [ - "sha256:181007919044c8c21b63232fa8b3d3054a65343f4f37eb40fef93b7fee3ddc19", - "sha256:b936adc8755902347faafab40dea7b3e63b6f2da87a55cfda770e0fb792613f4" + "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", + "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6" ], - "markers": "python_full_version >= '3.7.1' and python_full_version < '4.0.0'", - "version": "==2.1.0" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'", + "version": "==0.4.6" }, "dbt-core": { "hashes": [ - "sha256:20d23cf7c20ed16f6d82804d6cf67dafca8ac3c9f2557e5aeaa8c6af9d39c384", - "sha256:63f2f691af87790a4315e15267b863ecdd67828da5c76367c2c2f1cad08c6822" + "sha256:91cd0ceca29d77377988bca94db02c9d6f3debdd604edbde702008380b87fc4e", + "sha256:efd341e83252c35d9dbe0d2d0bfd874125c093c125250bebc7ca741a9145db80" ], "index": "pypi", - "version": "==1.3.0" + "markers": "python_version >= '3.8'", + "version": "==1.7.17" }, - "dbt-databricks": { - "extras": [ - "odbc" - ], + "dbt-duckdb": { "hashes": [ - "sha256:0b0956a597befb574971e45341ca6c37de42cbfa2db61a7aab55bd5236a57206", - "sha256:9debf9280e3a791bc104bd089aa82ff1adfb7f2cddfe1ccd41b99bdf12619258" + "sha256:7ff2fc21a656f61c30b30ff44865f02de6818d950fe99a475245546d63d22b98", + "sha256:a2eeb10e83058ff55738228da953538c5f2eddff3be3c8defcee1f300611f9d3" ], "index": "pypi", - "version": "==1.3.2" + "markers": "python_version >= '3.8'", + "version": "==1.7.5" }, "dbt-extractor": { "hashes": [ - "sha256:037907a7c7ae0391045d81338ca77ddaef899a91d80f09958f09fe374594e19b", - "sha256:34783d788b133f223844e280e37b3f5244f2fb60acc457aa75c2667e418d5442", - "sha256:35265a0ae0a250623b0c2e3308b2738dc8212e40e0aa88407849e9ea090bb312", - "sha256:3fe8d8e28a7bd3e0884896147269ca0202ca432d8733113386bdc84c824561bf", - "sha256:4dc715bd740e418d8dc1dd418fea508e79208a24cf5ab110b0092a3cbe96bf71", - "sha256:554d27741a54599c39e5c0b7dbcab77400d83f908caba284a3e960db812e5814", - "sha256:75b1c665699ec0f1ffce1ba3d776f7dfce802156f22e70a7b9c8f0b4d7e80f42", - "sha256:76872cdee659075d6ce2df92dc62e59a74ba571be62acab2e297ca478b49d766", - "sha256:7c291f9f483eae4f60dd5859097d7ba51d5cb6c4725f08973ebd18cdea89d758", - "sha256:7d7c47774dc051b8c18690281a55e2e3d3320e823b17e04b06bc3ff81b1874ba", - "sha256:81435841610be1b07806d72cd89b1956c6e2a84c360b9ceb3f949c62a546d569", - "sha256:822b1e911db230e1b9701c99896578e711232001027b518c44c32f79a46fa3f9", - "sha256:9da211869a1220ea55c5552c1567a3ea5233a6c52fa89ca87a22465481c37bc9", - "sha256:a805d51a25317f53cbff951c79b9cf75421cf48e4b3e1dfb3e9e8de6d824b76c", - "sha256:bc9e0050e3a2f4ea9fe58e8794bc808e6709a0c688ed710fc7c5b6ef3e5623ec", - "sha256:cad90ddc708cb4182dc16fe2c87b1f088a1679877b93e641af068eb68a25d582" + "sha256:100453ba06e169cbdb118234ab3f06f6722a2e0e316089b81c88dea701212abc", + "sha256:1b25fa7a276ab26aa2d70ff6e0cf4cfb1490d7831fb57ee1337c24d2b0333b84", + "sha256:3614ce9f83ae4cd0dc95f77730034a793a1c090a52dcf698ba1c94050afe3a8b", + "sha256:3b91e6106b967d908b34f83929d3f50ee2b498876a1be9c055fe060ed728c556", + "sha256:475e2c05b17eb4976eff6c8f7635be42bec33f15a74ceb87a40242c94a99cebf", + "sha256:62e4f040fd338b652683421ce48e903812e27fd6e7af58b1b70a4e1f9f2c79e3", + "sha256:6916aae085fd5f2af069fd6947933e78b742c9e3d2165e1740c2e28ae543309a", + "sha256:91e25ad78f1f4feadd27587ebbcc46ad909cfad843118908f30336d08d8400ca", + "sha256:c0ce901d4ebf0664977e4e1cbf596d4afc6c1339fcc7d2cf67ce3481566a626f", + "sha256:c5651e458be910ff567c0da3ea2eb084fd01884cc88888ac2cf1e240dcddacc2", + "sha256:cbe338b76e9ffaa18275456e041af56c21bb517f6fbda7a58308138703da0996", + "sha256:cd5d95576a8dea4190240aaf9936a37fd74b4b7913ca69a3c368fc4472bb7e13", + "sha256:cdf9938b36cd098bcdd80f43dc03864da3f69f57d903a9160a32236540d4ddcd", + "sha256:d3b9bf50eb062b4344d9546fe42038996c6e7e7daa10724aa955d64717260e5d", + "sha256:ea4edf33035d0a060b1e01c42fb2d99316457d44c954d6ed4eed9f1948664d87", + "sha256:eecc08f3743e802a8ede60c89f7b2bce872acc86120cbc0ae7df229bb8a95083" ], "markers": "python_full_version >= '3.6.1'", - "version": "==0.4.1" + "version": "==0.5.1" }, - "dbt-spark": { + "dbt-semantic-interfaces": { "hashes": [ - "sha256:52362eacf814e0bd5964ec0f67eb818fd596df0328be07a2ce0b9b9d40d072da", - "sha256:99f6dbeec2d135f7a1c91b75abb2ff13aee9fa5285e53a19200ed0ec03f13a9d" + "sha256:0149a4fd7fd4f25309edf5f856410536eaf2019f29dad58967dcf6d0625e6914", + "sha256:3b8126deb964c03d14e8af1cb4bdfb9f20c53dfcef28fa3a0bc158a8312e4070" ], - "markers": "python_version >= '3.7'", - "version": "==1.3.0" - }, - "exceptiongroup": { - "hashes": [ - "sha256:a31cd183c3dea02e617aab5153588d5f7258a77b51f0ef41b3815ae8a0d0f695", - "sha256:c22f11ec6a10d2b453871c5c5fe887436c4d1961324ce9090f2ca6ddc4180c27" - ], - "markers": "python_version < '3.11'", - "version": "==1.0.2" - }, - "future": { - "hashes": [ - "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d" + "markers": "python_version >= '3.8'", + "version": "==0.4.4" + }, + "duckdb": { + "hashes": [ + "sha256:00cca22df96aa3473fe4584f84888e2cf1c516e8c2dd837210daec44eadba586", + "sha256:08935700e49c187fe0e9b2b86b5aad8a2ccd661069053e38bfaed3b9ff795efd", + "sha256:0897f83c09356206ce462f62157ce064961a5348e31ccb2a557a7531d814e70e", + "sha256:09c68522c30fc38fc972b8a75e9201616b96ae6da3444585f14cf0d116008c95", + "sha256:0a55169d2d2e2e88077d91d4875104b58de45eff6a17a59c7dc41562c73df4be", + "sha256:0ba6baa0af33ded836b388b09433a69b8bec00263247f6bf0a05c65c897108d3", + "sha256:183ac743f21c6a4d6adfd02b69013d5fd78e5e2cd2b4db023bc8a95457d4bc5d", + "sha256:1aa3abec8e8995a03ff1a904b0e66282d19919f562dd0a1de02f23169eeec461", + "sha256:1c0226dc43e2ee4cc3a5a4672fddb2d76fd2cf2694443f395c02dd1bea0b7fce", + "sha256:1d9ab6143e73bcf17d62566e368c23f28aa544feddfd2d8eb50ef21034286f24", + "sha256:2141c6b28162199999075d6031b5d63efeb97c1e68fb3d797279d31c65676269", + "sha256:252d9b17d354beb9057098d4e5d5698e091a4f4a0d38157daeea5fc0ec161670", + "sha256:25fb02629418c0d4d94a2bc1776edaa33f6f6ccaa00bd84eb96ecb97ae4b50e9", + "sha256:2f073d15d11a328f2e6d5964a704517e818e930800b7f3fa83adea47f23720d3", + "sha256:35c420f58abc79a68a286a20fd6265636175fadeca1ce964fc8ef159f3acc289", + "sha256:4ebf5f60ddbd65c13e77cddb85fe4af671d31b851f125a4d002a313696af43f1", + "sha256:4f0e2e5a6f5a53b79aee20856c027046fba1d73ada6178ed8467f53c3877d5e0", + "sha256:51c6d79e05b4a0933672b1cacd6338f882158f45ef9903aef350c4427d9fc898", + "sha256:51e7dbd968b393343b226ab3f3a7b5a68dee6d3fe59be9d802383bf916775cb8", + "sha256:5ace6e4b1873afdd38bd6cc8fcf90310fb2d454f29c39a61d0c0cf1a24ad6c8d", + "sha256:5d57776539211e79b11e94f2f6d63de77885f23f14982e0fac066f2885fcf3ff", + "sha256:6411e21a2128d478efbd023f2bdff12464d146f92bc3e9c49247240448ace5a6", + "sha256:647f17bd126170d96a38a9a6f25fca47ebb0261e5e44881e3782989033c94686", + "sha256:68c3a46ab08836fe041d15dcbf838f74a990d551db47cb24ab1c4576fc19351c", + "sha256:77f26884c7b807c7edd07f95cf0b00e6d47f0de4a534ac1706a58f8bc70d0d31", + "sha256:7c71169fa804c0b65e49afe423ddc2dc83e198640e3b041028da8110f7cd16f7", + "sha256:80158f4c7c7ada46245837d5b6869a336bbaa28436fbb0537663fa324a2750cd", + "sha256:872d38b65b66e3219d2400c732585c5b4d11b13d7a36cd97908d7981526e9898", + "sha256:8ee97ec337794c162c0638dda3b4a30a483d0587deda22d45e1909036ff0b739", + "sha256:911d58c22645bfca4a5a049ff53a0afd1537bc18fedb13bc440b2e5af3c46148", + "sha256:9c619e4849837c8c83666f2cd5c6c031300cd2601e9564b47aa5de458ff6e69d", + "sha256:9d0767ada9f06faa5afcf63eb7ba1befaccfbcfdac5ff86f0168c673dd1f47aa", + "sha256:9e3f5cd604e7c39527e6060f430769b72234345baaa0987f9500988b2814f5e4", + "sha256:a1f83c7217c188b7ab42e6a0963f42070d9aed114f6200e3c923c8899c090f16", + "sha256:a1fa0c502f257fa9caca60b8b1478ec0f3295f34bb2efdc10776fc731b8a6c5f", + "sha256:a30dd599b8090ea6eafdfb5a9f1b872d78bac318b6914ada2d35c7974d643640", + "sha256:a433ae9e72c5f397c44abdaa3c781d94f94f4065bcbf99ecd39433058c64cb38", + "sha256:a4748635875fc3c19a7320a6ae7410f9295557450c0ebab6d6712de12640929a", + "sha256:b74e121ab65dbec5290f33ca92301e3a4e81797966c8d9feef6efdf05fc6dafd", + "sha256:c443d3d502335e69fc1e35295fcfd1108f72cb984af54c536adfd7875e79cee5", + "sha256:c5336939d83837af52731e02b6a78a446794078590aa71fd400eb17f083dda3e", + "sha256:cddc6c1a3b91dcc5f32493231b3ba98f51e6d3a44fe02839556db2b928087378", + "sha256:d08308e0a46c748d9c30f1d67ee1143e9c5ea3fbcccc27a47e115b19e7e78aa9", + "sha256:d5724fd8a49e24d730be34846b814b98ba7c304ca904fbdc98b47fa95c0b0cee", + "sha256:e4ef7ba97a65bd39d66f2a7080e6fb60e7c3e41d4c1e19245f90f53b98e3ac32", + "sha256:e59087dbbb63705f2483544e01cccf07d5b35afa58be8931b224f3221361d537", + "sha256:e86006958e84c5c02f08f9b96f4bc26990514eab329b1b4f71049b3727ce5989", + "sha256:ecb1dc9062c1cc4d2d88a5e5cd8cc72af7818ab5a3c0f796ef0ffd60cfd3efb4", + "sha256:eeacb598120040e9591f5a4edecad7080853aa8ac27e62d280f151f8c862afa3", + "sha256:f549af9f7416573ee48db1cf8c9d27aeed245cb015f4b4f975289418c6cf7320", + "sha256:f58db1b65593ff796c8ea6e63e2e144c944dd3d51c8d8e40dffa7f41693d35d3", + "sha256:f9b47036945e1db32d70e414a10b1593aec641bd4c5e2056873d971cc21e978b" ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==0.18.2" + "index": "pypi", + "markers": "python_full_version >= '3.7.0'", + "version": "==1.1.3" }, "glob2": { "hashes": [ @@ -219,27 +369,21 @@ "index": "pypi", "version": "==0.7" }, - "hologram": { - "hashes": [ - "sha256:48ca81ed47da1c604b2d3b951424b600eb8a5785b00513e3b8e3ae8101f90145", - "sha256:79b3d04df84d5a9d09c2e669ec5bcc50b1713ec79f4683cfdea85583b41e46f0" - ], - "version": "==0.0.15" - }, "idna": { "hashes": [ - "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", - "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", + "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" ], - "markers": "python_version >= '3.5'", - "version": "==3.4" + "markers": "python_version >= '3.6'", + "version": "==3.10" }, - "iniconfig": { + "importlib-metadata": { "hashes": [ - "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", - "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32" + "sha256:1231cf92d825c9e03cfc4da076a16de6422c863558229ea0b22b675657463443", + "sha256:f0afba6205ad8f8947c7d338b5342d5db2afbfd82f9cbef7879a9539cc12eb9b" ], - "version": "==1.1.1" + "markers": "python_version >= '3.8'", + "version": "==6.11.0" }, "isodate": { "hashes": [ @@ -250,25 +394,34 @@ }, "jinja2": { "hashes": [ - "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852", - "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61" + "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", + "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d" ], "markers": "python_version >= '3.7'", - "version": "==3.1.2" + "version": "==3.1.4" }, "jsonschema": { "hashes": [ - "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163", - "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a" + "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", + "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566" ], - "version": "==3.2.0" + "markers": "python_version >= '3.8'", + "version": "==4.23.0" + }, + "jsonschema-specifications": { + "hashes": [ + "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272", + "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf" + ], + "markers": "python_version >= '3.9'", + "version": "==2024.10.1" }, "leather": { "hashes": [ - "sha256:5e741daee96e9f1e9e06081b8c8a10c4ac199301a0564cdd99b09df15b4603d2", - "sha256:b43e21c8fa46b2679de8449f4d953c06418666dc058ce41055ee8a8d3bb40918" + "sha256:18290bc93749ae39039af5e31e871fcfad74d26c4c3ea28ea4f681f4571b3a2b", + "sha256:f964bec2086f3153a6c16e707f20cb718f811f57af116075f4c0f4805c608b95" ], - "version": "==0.3.4" + "version": "==0.4.0" }, "logbook": { "hashes": [ @@ -286,60 +439,81 @@ }, "markupsafe": { "hashes": [ - "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003", - "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88", - "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5", - "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7", - "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a", - "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603", - "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1", - "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135", - "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247", - "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6", - "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601", - "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77", - "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02", - "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e", - "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63", - "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f", - "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980", - "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b", - "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812", - "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff", - "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96", - "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1", - "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925", - "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a", - "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6", - "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e", - "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f", - "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4", - "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f", - "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3", - "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c", - "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a", - "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417", - "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a", - "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a", - "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37", - "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452", - "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933", - "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a", - "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7" - ], - "markers": "python_version >= '3.7'", - "version": "==2.1.1" + "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", + "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", + "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0", + "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", + "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", + "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13", + "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", + "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", + "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", + "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", + "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0", + "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b", + "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579", + "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", + "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", + "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff", + "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", + "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", + "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", + "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb", + "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", + "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", + "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a", + "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", + "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a", + "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", + "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8", + "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", + "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", + "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144", + "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f", + "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", + "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", + "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", + "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", + "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158", + "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", + "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", + "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", + "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171", + "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", + "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", + "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", + "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d", + "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", + "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", + "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", + "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", + "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29", + "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", + "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", + "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c", + "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", + "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", + "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", + "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a", + "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178", + "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", + "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", + "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", + "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50" + ], + "markers": "python_version >= '3.9'", + "version": "==3.0.2" }, "mashumaro": { "extras": [ "msgpack" ], "hashes": [ - "sha256:6d221e09df2d884afda19325d5412dc9b1274be9ba1c3e57c12a8977320c7e07", - "sha256:72b97b7660b7a4de1df2466a52543e6439f968cd081ce55aae899bc375b1f53d" + "sha256:5ef6f2b963892cbe9a4ceb3441dfbea37f8c3412523f25d42e9b3a7186555f1d", + "sha256:c12a649599a8f7b1a0b35d18f12e678423c3066189f7bc7bd8dd431c5c8132c3" ], - "markers": "python_version >= '3.6'", - "version": "==3.0.4" + "markers": "python_version >= '3.8'", + "version": "==3.14" }, "minimal-snowplow-tracker": { "hashes": [ @@ -347,501 +521,2003 @@ ], "version": "==0.0.2" }, + "more-itertools": { + "hashes": [ + "sha256:037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef", + "sha256:5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6" + ], + "markers": "python_version >= '3.8'", + "version": "==10.5.0" + }, "msgpack": { "hashes": [ - "sha256:002b5c72b6cd9b4bafd790f364b8480e859b4712e91f43014fe01e4f957b8467", - "sha256:0a68d3ac0104e2d3510de90a1091720157c319ceeb90d74f7b5295a6bee51bae", - "sha256:0df96d6eaf45ceca04b3f3b4b111b86b33785683d682c655063ef8057d61fd92", - "sha256:0dfe3947db5fb9ce52aaea6ca28112a170db9eae75adf9339a1aec434dc954ef", - "sha256:0e3590f9fb9f7fbc36df366267870e77269c03172d086fa76bb4eba8b2b46624", - "sha256:11184bc7e56fd74c00ead4f9cc9a3091d62ecb96e97653add7a879a14b003227", - "sha256:112b0f93202d7c0fef0b7810d465fde23c746a2d482e1e2de2aafd2ce1492c88", - "sha256:1276e8f34e139aeff1c77a3cefb295598b504ac5314d32c8c3d54d24fadb94c9", - "sha256:1576bd97527a93c44fa856770197dec00d223b0b9f36ef03f65bac60197cedf8", - "sha256:1e91d641d2bfe91ba4c52039adc5bccf27c335356055825c7f88742c8bb900dd", - "sha256:26b8feaca40a90cbe031b03d82b2898bf560027160d3eae1423f4a67654ec5d6", - "sha256:2999623886c5c02deefe156e8f869c3b0aaeba14bfc50aa2486a0415178fce55", - "sha256:2a2df1b55a78eb5f5b7d2a4bb221cd8363913830145fad05374a80bf0877cb1e", - "sha256:2bb8cdf50dd623392fa75525cce44a65a12a00c98e1e37bf0fb08ddce2ff60d2", - "sha256:2cc5ca2712ac0003bcb625c96368fd08a0f86bbc1a5578802512d87bc592fe44", - "sha256:35bc0faa494b0f1d851fd29129b2575b2e26d41d177caacd4206d81502d4c6a6", - "sha256:3c11a48cf5e59026ad7cb0dc29e29a01b5a66a3e333dc11c04f7e991fc5510a9", - "sha256:449e57cc1ff18d3b444eb554e44613cffcccb32805d16726a5494038c3b93dab", - "sha256:462497af5fd4e0edbb1559c352ad84f6c577ffbbb708566a0abaaa84acd9f3ae", - "sha256:4733359808c56d5d7756628736061c432ded018e7a1dff2d35a02439043321aa", - "sha256:48f5d88c99f64c456413d74a975bd605a9b0526293218a3b77220a2c15458ba9", - "sha256:49565b0e3d7896d9ea71d9095df15b7f75a035c49be733051c34762ca95bbf7e", - "sha256:4ab251d229d10498e9a2f3b1e68ef64cb393394ec477e3370c457f9430ce9250", - "sha256:4d5834a2a48965a349da1c5a79760d94a1a0172fbb5ab6b5b33cbf8447e109ce", - "sha256:4dea20515f660aa6b7e964433b1808d098dcfcabbebeaaad240d11f909298075", - "sha256:545e3cf0cf74f3e48b470f68ed19551ae6f9722814ea969305794645da091236", - "sha256:63e29d6e8c9ca22b21846234913c3466b7e4ee6e422f205a2988083de3b08cae", - "sha256:6916c78f33602ecf0509cc40379271ba0f9ab572b066bd4bdafd7434dee4bc6e", - "sha256:6a4192b1ab40f8dca3f2877b70e63799d95c62c068c84dc028b40a6cb03ccd0f", - "sha256:6c9566f2c39ccced0a38d37c26cc3570983b97833c365a6044edef3574a00c08", - "sha256:76ee788122de3a68a02ed6f3a16bbcd97bc7c2e39bd4d94be2f1821e7c4a64e6", - "sha256:7760f85956c415578c17edb39eed99f9181a48375b0d4a94076d84148cf67b2d", - "sha256:77ccd2af37f3db0ea59fb280fa2165bf1b096510ba9fe0cc2bf8fa92a22fdb43", - "sha256:81fc7ba725464651190b196f3cd848e8553d4d510114a954681fd0b9c479d7e1", - "sha256:85f279d88d8e833ec015650fd15ae5eddce0791e1e8a59165318f371158efec6", - "sha256:9667bdfdf523c40d2511f0e98a6c9d3603be6b371ae9a238b7ef2dc4e7a427b0", - "sha256:a75dfb03f8b06f4ab093dafe3ddcc2d633259e6c3f74bb1b01996f5d8aa5868c", - "sha256:ac5bd7901487c4a1dd51a8c58f2632b15d838d07ceedaa5e4c080f7190925bff", - "sha256:aca0f1644d6b5a73eb3e74d4d64d5d8c6c3d577e753a04c9e9c87d07692c58db", - "sha256:b17be2478b622939e39b816e0aa8242611cc8d3583d1cd8ec31b249f04623243", - "sha256:c1683841cd4fa45ac427c18854c3ec3cd9b681694caf5bff04edb9387602d661", - "sha256:c23080fdeec4716aede32b4e0ef7e213c7b1093eede9ee010949f2a418ced6ba", - "sha256:d5b5b962221fa2c5d3a7f8133f9abffc114fe218eb4365e40f17732ade576c8e", - "sha256:d603de2b8d2ea3f3bcb2efe286849aa7a81531abc52d8454da12f46235092bcb", - "sha256:e83f80a7fec1a62cf4e6c9a660e39c7f878f603737a0cdac8c13131d11d97f52", - "sha256:eb514ad14edf07a1dbe63761fd30f89ae79b42625731e1ccf5e1f1092950eaa6", - "sha256:eba96145051ccec0ec86611fe9cf693ce55f2a3ce89c06ed307de0e085730ec1", - "sha256:ed6f7b854a823ea44cf94919ba3f727e230da29feb4a99711433f25800cf747f", - "sha256:f0029245c51fd9473dc1aede1160b0a29f4a912e6b1dd353fa6d317085b219da", - "sha256:f5d869c18f030202eb412f08b28d2afeea553d6613aee89e200d7aca7ef01f5f", - "sha256:fb62ea4b62bfcb0b380d5680f9a4b3f9a2d166d9394e9bbd9666c0ee09a3645c", - "sha256:fcb8a47f43acc113e24e910399376f7277cf8508b27e5b88499f053de6b115a8" - ], - "version": "==1.0.4" + "sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b", + "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf", + "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca", + "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330", + "sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f", + "sha256:13599f8829cfbe0158f6456374e9eea9f44eee08076291771d8ae93eda56607f", + "sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39", + "sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247", + "sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b", + "sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c", + "sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7", + "sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044", + "sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6", + "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b", + "sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0", + "sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2", + "sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468", + "sha256:471e27a5787a2e3f974ba023f9e265a8c7cfd373632247deb225617e3100a3c7", + "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734", + "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434", + "sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325", + "sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1", + "sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846", + "sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88", + "sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420", + "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e", + "sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2", + "sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59", + "sha256:646afc8102935a388ffc3914b336d22d1c2d6209c773f3eb5dd4d6d3b6f8c1cb", + "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68", + "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915", + "sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f", + "sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701", + "sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b", + "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d", + "sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa", + "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d", + "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd", + "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc", + "sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48", + "sha256:879a7b7b0ad82481c52d3c7eb99bf6f0645dbdec5134a4bddbd16f3506947feb", + "sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74", + "sha256:8a84efb768fb968381e525eeeb3d92857e4985aacc39f3c47ffd00eb4509315b", + "sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346", + "sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e", + "sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6", + "sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5", + "sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f", + "sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5", + "sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b", + "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c", + "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f", + "sha256:c40ffa9a15d74e05ba1fe2681ea33b9caffd886675412612d93ab17b58ea2fec", + "sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8", + "sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5", + "sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d", + "sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e", + "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e", + "sha256:e0856a2b7e8dcb874be44fea031d22e5b3a19121be92a1e098f46068a11b0870", + "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f", + "sha256:f1ba6136e650898082d9d5a5217d5906d1e138024f836ff48691784bbe1adf96", + "sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c", + "sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd", + "sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788" + ], + "version": "==1.1.0" }, "networkx": { "hashes": [ - "sha256:230d388117af870fce5647a3c52401fcf753e94720e6ea6b4197a5355648885e", - "sha256:e435dfa75b1d7195c7b8378c3859f0445cd88c6b0375c181ed66823a9ceb7524" + "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", + "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f" + ], + "markers": "python_version >= '3.10'", + "version": "==3.4.2" + }, + "packaging": { + "hashes": [ + "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", + "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f" ], "markers": "python_version >= '3.8'", - "version": "==2.8.8" + "version": "==24.2" }, - "numpy": { + "parsedatetime": { + "hashes": [ + "sha256:4cb368fbb18a0b7231f4d76119165451c8d2e35951455dfee97c62a87b04d455", + "sha256:cb96edd7016872f58479e35879294258c71437195760746faffedb692aef000b" + ], + "version": "==2.6" + }, + "pathspec": { + "hashes": [ + "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20", + "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3" + ], + "markers": "python_version >= '3.7'", + "version": "==0.11.2" + }, + "protobuf": { + "hashes": [ + "sha256:0aebecb809cae990f8129ada5ca273d9d670b76d9bfc9b1809f0a9c02b7dbf41", + "sha256:4be0571adcbe712b282a330c6e89eae24281344429ae95c6d85e79e84780f5ea", + "sha256:5e61fd921603f58d2f5acb2806a929b4675f8874ff5f330b7d6f7e2e784bbcd8", + "sha256:7a183f592dc80aa7c8da7ad9e55091c4ffc9497b3054452d629bb85fa27c2a45", + "sha256:7f8249476b4a9473645db7f8ab42b02fe1488cbe5fb72fddd445e0665afd8584", + "sha256:919ad92d9b0310070f8356c24b855c98df2b8bd207ebc1c0c6fcc9ab1e007f3d", + "sha256:98d8d8aa50de6a2747efd9cceba361c9034050ecce3e09136f90de37ddba66e1", + "sha256:abe32aad8561aa7cc94fc7ba4fdef646e576983edb94a73381b03c53728a626f", + "sha256:b0234dd5a03049e4ddd94b93400b67803c823cfc405689688f59b34e0742381a", + "sha256:b2fde3d805354df675ea4c7c6338c1aecd254dfc9925e88c6d31a2bcb97eb173", + "sha256:fe14e16c22be926d3abfcb500e60cab068baf10b542b8c858fa27e098123e331" + ], + "markers": "python_version >= '3.8'", + "version": "==4.25.5" + }, + "pycparser": { + "hashes": [ + "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", + "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc" + ], + "markers": "python_version >= '3.8'", + "version": "==2.22" + }, + "pydantic": { + "hashes": [ + "sha256:d155cef71265d1e9807ed1c32b4c8deec042a44a50a4188b25ac67ecd81a9c0f", + "sha256:f048cec7b26778210e28a0459867920654d48e5e62db0958433636cde4254f12" + ], + "markers": "python_version >= '3.8'", + "version": "==2.9.2" + }, + "pydantic-core": { + "hashes": [ + "sha256:0a7df63886be5e270da67e0966cf4afbae86069501d35c8c1b3b6c168f42cb36", + "sha256:0cb3da3fd1b6a5d0279a01877713dbda118a2a4fc6f0d821a57da2e464793f05", + "sha256:0dbd8dbed2085ed23b5c04afa29d8fd2771674223135dc9bc937f3c09284d071", + "sha256:0dff76e0602ca7d4cdaacc1ac4c005e0ce0dcfe095d5b5259163a80d3a10d327", + "sha256:1278e0d324f6908e872730c9102b0112477a7f7cf88b308e4fc36ce1bdb6d58c", + "sha256:128585782e5bfa515c590ccee4b727fb76925dd04a98864182b22e89a4e6ed36", + "sha256:1498bec4c05c9c787bde9125cfdcc63a41004ff167f495063191b863399b1a29", + "sha256:19442362866a753485ba5e4be408964644dd6a09123d9416c54cd49171f50744", + "sha256:1b84d168f6c48fabd1f2027a3d1bdfe62f92cade1fb273a5d68e621da0e44e6d", + "sha256:1e90d2e3bd2c3863d48525d297cd143fe541be8bbf6f579504b9712cb6b643ec", + "sha256:20152074317d9bed6b7a95ade3b7d6054845d70584216160860425f4fbd5ee9e", + "sha256:216f9b2d7713eb98cb83c80b9c794de1f6b7e3145eef40400c62e86cee5f4e1e", + "sha256:233710f069d251feb12a56da21e14cca67994eab08362207785cf8c598e74577", + "sha256:255a8ef062cbf6674450e668482456abac99a5583bbafb73f9ad469540a3a232", + "sha256:2584f7cf844ac4d970fba483a717dbe10c1c1c96a969bf65d61ffe94df1b2863", + "sha256:2971bb5ffe72cc0f555c13e19b23c85b654dd2a8f7ab493c262071377bfce9f6", + "sha256:29d2c342c4bc01b88402d60189f3df065fb0dda3654744d5a165a5288a657368", + "sha256:2e203fdf807ac7e12ab59ca2bfcabb38c7cf0b33c41efeb00f8e5da1d86af480", + "sha256:33e3d65a85a2a4a0dc3b092b938a4062b1a05f3a9abde65ea93b233bca0e03f2", + "sha256:374a5e5049eda9e0a44c696c7ade3ff355f06b1fe0bb945ea3cac2bc336478a2", + "sha256:37b0fe330e4a58d3c58b24d91d1eb102aeec675a3db4c292ec3928ecd892a9a6", + "sha256:3d5639516376dce1940ea36edf408c554475369f5da2abd45d44621cb616f769", + "sha256:42c6dcb030aefb668a2b7009c85b27f90e51e6a3b4d5c9bc4c57631292015b0d", + "sha256:4a7cd62e831afe623fbb7aabbb4fe583212115b3ef38a9f6b71869ba644624a2", + "sha256:4ba762ed58e8d68657fc1281e9bb72e1c3e79cc5d464be146e260c541ec12d84", + "sha256:4fc714bdbfb534f94034efaa6eadd74e5b93c8fa6315565a222f7b6f42ca1166", + "sha256:4ffa2ebd4c8530079140dd2d7f794a9d9a73cbb8e9d59ffe24c63436efa8f271", + "sha256:5a1504ad17ba4210df3a045132a7baeeba5a200e930f57512ee02909fc5c4cb5", + "sha256:5c364564d17da23db1106787675fc7af45f2f7b58b4173bfdd105564e132e6fb", + "sha256:5e11661ce0fd30a6790e8bcdf263b9ec5988e95e63cf901972107efc49218b13", + "sha256:5f54b118ce5de9ac21c363d9b3caa6c800341e8c47a508787e5868c6b79c9323", + "sha256:5f5ff8d839f4566a474a969508fe1c5e59c31c80d9e140566f9a37bba7b8d556", + "sha256:61817945f2fe7d166e75fbfb28004034b48e44878177fc54d81688e7b85a3665", + "sha256:624e278a7d29b6445e4e813af92af37820fafb6dcc55c012c834f9e26f9aaaef", + "sha256:63e46b3169866bd62849936de036f901a9356e36376079b05efa83caeaa02ceb", + "sha256:6531b7ca5f951d663c339002e91aaebda765ec7d61b7d1e3991051906ddde119", + "sha256:68665f4c17edcceecc112dfed5dbe6f92261fb9d6054b47d01bf6371a6196126", + "sha256:696dd8d674d6ce621ab9d45b205df149399e4bb9aa34102c970b721554828510", + "sha256:6f783e0ec4803c787bcea93e13e9932edab72068f68ecffdf86a99fd5918878b", + "sha256:723314c1d51722ab28bfcd5240d858512ffd3116449c557a1336cbe3919beb87", + "sha256:74b9127ffea03643e998e0c5ad9bd3811d3dac8c676e47db17b0ee7c3c3bf35f", + "sha256:7530e201d10d7d14abce4fb54cfe5b94a0aefc87da539d0346a484ead376c3cc", + "sha256:77733e3892bb0a7fa797826361ce8a9184d25c8dffaec60b7ffe928153680ba8", + "sha256:78ddaaa81421a29574a682b3179d4cf9e6d405a09b99d93ddcf7e5239c742e21", + "sha256:7c9129eb40958b3d4500fa2467e6a83356b3b61bfff1b414c7361d9220f9ae8f", + "sha256:7d32706badfe136888bdea71c0def994644e09fff0bfe47441deaed8e96fdbc6", + "sha256:81965a16b675b35e1d09dd14df53f190f9129c0202356ed44ab2728b1c905658", + "sha256:8394d940e5d400d04cad4f75c0598665cbb81aecefaca82ca85bd28264af7f9b", + "sha256:86d2f57d3e1379a9525c5ab067b27dbb8a0642fb5d454e17a9ac434f9ce523e3", + "sha256:883a91b5dd7d26492ff2f04f40fbb652de40fcc0afe07e8129e8ae779c2110eb", + "sha256:88ad334a15b32a791ea935af224b9de1bf99bcd62fabf745d5f3442199d86d59", + "sha256:9261d3ce84fa1d38ed649c3638feefeae23d32ba9182963e465d58d62203bd24", + "sha256:97df63000f4fea395b2824da80e169731088656d1818a11b95f3b173747b6cd9", + "sha256:98d134c954828488b153d88ba1f34e14259284f256180ce659e8d83e9c05eaa3", + "sha256:996a38a83508c54c78a5f41456b0103c30508fed9abcad0a59b876d7398f25fd", + "sha256:9a5bce9d23aac8f0cf0836ecfc033896aa8443b501c58d0602dbfd5bd5b37753", + "sha256:9a6b5099eeec78827553827f4c6b8615978bb4b6a88e5d9b93eddf8bb6790f55", + "sha256:9d18368b137c6295db49ce7218b1a9ba15c5bc254c96d7c9f9e924a9bc7825ad", + "sha256:a4fa4fc04dff799089689f4fd502ce7d59de529fc2f40a2c8836886c03e0175a", + "sha256:a5c7ba8ffb6d6f8f2ab08743be203654bb1aaa8c9dcb09f82ddd34eadb695605", + "sha256:aea443fffa9fbe3af1a9ba721a87f926fe548d32cab71d188a6ede77d0ff244e", + "sha256:b10bd51f823d891193d4717448fab065733958bdb6a6b351967bd349d48d5c9b", + "sha256:ba1a0996f6c2773bd83e63f18914c1de3c9dd26d55f4ac302a7efe93fb8e7433", + "sha256:bb2802e667b7051a1bebbfe93684841cc9351004e2badbd6411bf357ab8d5ac8", + "sha256:cfdd16ab5e59fc31b5e906d1a3f666571abc367598e3e02c83403acabc092e07", + "sha256:d06b0c8da4f16d1d1e352134427cb194a0a6e19ad5db9161bf32b2113409e728", + "sha256:d0776dea117cf5272382634bd2a5c1b6eb16767c223c6a5317cd3e2a757c61a0", + "sha256:d18ca8148bebe1b0a382a27a8ee60350091a6ddaf475fa05ef50dc35b5df6327", + "sha256:d4488a93b071c04dc20f5cecc3631fc78b9789dd72483ba15d423b5b3689b555", + "sha256:d5f7a395a8cf1621939692dba2a6b6a830efa6b3cee787d82c7de1ad2930de64", + "sha256:d7a80d21d613eec45e3d41eb22f8f94ddc758a6c4720842dc74c0581f54993d6", + "sha256:d97683ddee4723ae8c95d1eddac7c192e8c552da0c73a925a89fa8649bf13eea", + "sha256:dcedcd19a557e182628afa1d553c3895a9f825b936415d0dbd3cd0bbcfd29b4b", + "sha256:de6d1d1b9e5101508cb37ab0d972357cac5235f5c6533d1071964c47139257df", + "sha256:df49e7a0861a8c36d089c1ed57d308623d60416dab2647a4a17fe050ba85de0e", + "sha256:df933278128ea1cd77772673c73954e53a1c95a4fdf41eef97c2b779271bd0bd", + "sha256:e08277a400de01bc72436a0ccd02bdf596631411f592ad985dcee21445bd0068", + "sha256:e38e63e6f3d1cec5a27e0afe90a085af8b6806ee208b33030e65b6516353f1a3", + "sha256:e55541f756f9b3ee346b840103f32779c695a19826a4c442b7954550a0972040", + "sha256:ec4e55f79b1c4ffb2eecd8a0cfba9955a2588497d96851f4c8f99aa4a1d39b12", + "sha256:ed1a53de42fbe34853ba90513cea21673481cd81ed1be739f7f2efb931b24916", + "sha256:ed541d70698978a20eb63d8c5d72f2cc6d7079d9d90f6b50bad07826f1320f5f", + "sha256:f09e2ff1f17c2b51f2bc76d1cc33da96298f0a036a137f5440ab3ec5360b624f", + "sha256:f220b0eea5965dec25480b6333c788fb72ce5f9129e8759ef876a1d805d00801", + "sha256:f3e0da4ebaef65158d4dfd7d3678aad692f7666877df0002b8a522cdf088f231", + "sha256:f455ee30a9d61d3e1a15abd5068827773d6e4dc513e795f380cdd59932c782d5", + "sha256:f5ef8f42bec47f21d07668a043f077d507e5bf4e668d5c6dfe6aaba89de1a5b8", + "sha256:f69a8e0b033b747bb3e36a44e7732f0c99f7edd5cea723d45bc0d6e95377ffee", + "sha256:ff02b6d461a6de369f07ec15e465a88895f3223eb75073ffea56b84d9331f607" + ], + "markers": "python_version >= '3.8'", + "version": "==2.23.4" + }, + "python-dateutil": { + "hashes": [ + "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", + "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "version": "==2.9.0.post0" + }, + "python-slugify": { + "hashes": [ + "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8", + "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856" + ], + "markers": "python_version >= '3.7'", + "version": "==8.0.4" + }, + "pytimeparse": { + "hashes": [ + "sha256:04b7be6cc8bd9f5647a6325444926c3ac34ee6bc7e69da4367ba282f076036bd", + "sha256:e86136477be924d7e670646a98561957e8ca7308d44841e21f5ddea757556a0a" + ], + "version": "==1.1.8" + }, + "pytz": { + "hashes": [ + "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", + "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725" + ], + "version": "==2024.2" + }, + "pyyaml": { + "hashes": [ + "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff", + "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", + "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", + "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e", + "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", + "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", + "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", + "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", + "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", + "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", + "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a", + "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", + "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", + "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", + "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", + "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19", + "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", + "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a", + "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", + "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", + "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", + "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631", + "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d", + "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", + "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", + "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", + "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", + "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", + "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", + "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706", + "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", + "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", + "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", + "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083", + "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", + "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", + "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", + "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f", + "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725", + "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", + "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", + "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", + "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", + "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", + "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5", + "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d", + "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290", + "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", + "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", + "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", + "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", + "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12", + "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4" + ], + "markers": "python_version >= '3.8'", + "version": "==6.0.2" + }, + "referencing": { + "hashes": [ + "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c", + "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de" + ], + "markers": "python_version >= '3.8'", + "version": "==0.35.1" + }, + "requests": { "hashes": [ - "sha256:0fe563fc8ed9dc4474cbf70742673fc4391d70f4363f917599a7fa99f042d5a8", - "sha256:12ac457b63ec8ded85d85c1e17d85efd3c2b0967ca39560b307a35a6703a4735", - "sha256:2341f4ab6dba0834b685cce16dad5f9b6606ea8a00e6da154f5dbded70fdc4dd", - "sha256:296d17aed51161dbad3c67ed6d164e51fcd18dbcd5dd4f9d0a9c6055dce30810", - "sha256:488a66cb667359534bc70028d653ba1cf307bae88eab5929cd707c761ff037db", - "sha256:4d52914c88b4930dafb6c48ba5115a96cbab40f45740239d9f4159c4ba779962", - "sha256:5e13030f8793e9ee42f9c7d5777465a560eb78fa7e11b1c053427f2ccab90c79", - "sha256:61be02e3bf810b60ab74e81d6d0d36246dbfb644a462458bb53b595791251911", - "sha256:7607b598217745cc40f751da38ffd03512d33ec06f3523fb0b5f82e09f6f676d", - "sha256:7a70a7d3ce4c0e9284e92285cba91a4a3f5214d87ee0e95928f3614a256a1488", - "sha256:7ab46e4e7ec63c8a5e6dbf5c1b9e1c92ba23a7ebecc86c336cb7bf3bd2fb10e5", - "sha256:8981d9b5619569899666170c7c9748920f4a5005bf79c72c07d08c8a035757b0", - "sha256:8c053d7557a8f022ec823196d242464b6955a7e7e5015b719e76003f63f82d0f", - "sha256:926db372bc4ac1edf81cfb6c59e2a881606b409ddc0d0920b988174b2e2a767f", - "sha256:95d79ada05005f6f4f337d3bb9de8a7774f259341c70bc88047a1f7b96a4bcb2", - "sha256:95de7dc7dc47a312f6feddd3da2500826defdccbc41608d0031276a24181a2c0", - "sha256:a0882323e0ca4245eb0a3d0a74f88ce581cc33aedcfa396e415e5bba7bf05f68", - "sha256:a8365b942f9c1a7d0f0dc974747d99dd0a0cdfc5949a33119caf05cb314682d3", - "sha256:a8aae2fb3180940011b4862b2dd3756616841c53db9734b27bb93813cd79fce6", - "sha256:c237129f0e732885c9a6076a537e974160482eab8f10db6292e92154d4c67d71", - "sha256:c67b833dbccefe97cdd3f52798d430b9d3430396af7cdb2a0c32954c3ef73894", - "sha256:ce03305dd694c4873b9429274fd41fc7eb4e0e4dea07e0af97a933b079a5814f", - "sha256:d331afac87c92373826af83d2b2b435f57b17a5c74e6268b79355b970626e329", - "sha256:dada341ebb79619fe00a291185bba370c9803b1e1d7051610e01ed809ef3a4ba", - "sha256:ed2cc92af0efad20198638c69bb0fc2870a58dabfba6eb722c933b48556c686c", - "sha256:f260da502d7441a45695199b4e7fd8ca87db659ba1c78f2bbf31f934fe76ae0e", - "sha256:f2f390aa4da44454db40a1f0201401f9036e8d578a25f01a6e237cea238337ef", - "sha256:f76025acc8e2114bb664294a07ede0727aa75d63a06d2fae96bf29a81747e4a7" - ], - "markers": "python_version < '3.10'", - "version": "==1.23.4" - }, - "oauthlib": { - "hashes": [ - "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", - "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918" + "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", + "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" + ], + "markers": "python_version >= '3.8'", + "version": "==2.32.3" + }, + "rpds-py": { + "hashes": [ + "sha256:031819f906bb146561af051c7cef4ba2003d28cff07efacef59da973ff7969ba", + "sha256:0626238a43152918f9e72ede9a3b6ccc9e299adc8ade0d67c5e142d564c9a83d", + "sha256:085ed25baac88953d4283e5b5bd094b155075bb40d07c29c4f073e10623f9f2e", + "sha256:0a9e0759e7be10109645a9fddaaad0619d58c9bf30a3f248a2ea57a7c417173a", + "sha256:0c025820b78817db6a76413fff6866790786c38f95ea3f3d3c93dbb73b632202", + "sha256:1ff2eba7f6c0cb523d7e9cff0903f2fe1feff8f0b2ceb6bd71c0e20a4dcee271", + "sha256:20cc1ed0bcc86d8e1a7e968cce15be45178fd16e2ff656a243145e0b439bd250", + "sha256:241e6c125568493f553c3d0fdbb38c74babf54b45cef86439d4cd97ff8feb34d", + "sha256:2c51d99c30091f72a3c5d126fad26236c3f75716b8b5e5cf8effb18889ced928", + "sha256:2d6129137f43f7fa02d41542ffff4871d4aefa724a5fe38e2c31a4e0fd343fb0", + "sha256:30b912c965b2aa76ba5168fd610087bad7fcde47f0a8367ee8f1876086ee6d1d", + "sha256:30bdc973f10d28e0337f71d202ff29345320f8bc49a31c90e6c257e1ccef4333", + "sha256:320c808df533695326610a1b6a0a6e98f033e49de55d7dc36a13c8a30cfa756e", + "sha256:32eb88c30b6a4f0605508023b7141d043a79b14acb3b969aa0b4f99b25bc7d4a", + "sha256:3b766a9f57663396e4f34f5140b3595b233a7b146e94777b97a8413a1da1be18", + "sha256:3b929c2bb6e29ab31f12a1117c39f7e6d6450419ab7464a4ea9b0b417174f044", + "sha256:3e30a69a706e8ea20444b98a49f386c17b26f860aa9245329bab0851ed100677", + "sha256:3e53861b29a13d5b70116ea4230b5f0f3547b2c222c5daa090eb7c9c82d7f664", + "sha256:40c91c6e34cf016fa8e6b59d75e3dbe354830777fcfd74c58b279dceb7975b75", + "sha256:4991ca61656e3160cdaca4851151fd3f4a92e9eba5c7a530ab030d6aee96ec89", + "sha256:4ab2c2a26d2f69cdf833174f4d9d86118edc781ad9a8fa13970b527bf8236027", + "sha256:4e8921a259f54bfbc755c5bbd60c82bb2339ae0324163f32868f63f0ebb873d9", + "sha256:4eb2de8a147ffe0626bfdc275fc6563aa7bf4b6db59cf0d44f0ccd6ca625a24e", + "sha256:5145282a7cd2ac16ea0dc46b82167754d5e103a05614b724457cffe614f25bd8", + "sha256:520ed8b99b0bf86a176271f6fe23024323862ac674b1ce5b02a72bfeff3fff44", + "sha256:52c041802a6efa625ea18027a0723676a778869481d16803481ef6cc02ea8cb3", + "sha256:5555db3e618a77034954b9dc547eae94166391a98eb867905ec8fcbce1308d95", + "sha256:58a0e345be4b18e6b8501d3b0aa540dad90caeed814c515e5206bb2ec26736fd", + "sha256:590ef88db231c9c1eece44dcfefd7515d8bf0d986d64d0caf06a81998a9e8cab", + "sha256:5afb5efde74c54724e1a01118c6e5c15e54e642c42a1ba588ab1f03544ac8c7a", + "sha256:688c93b77e468d72579351a84b95f976bd7b3e84aa6686be6497045ba84be560", + "sha256:6b4ef7725386dc0762857097f6b7266a6cdd62bfd209664da6712cb26acef035", + "sha256:6bc0e697d4d79ab1aacbf20ee5f0df80359ecf55db33ff41481cf3e24f206919", + "sha256:6dcc4949be728ede49e6244eabd04064336012b37f5c2200e8ec8eb2988b209c", + "sha256:6f54e7106f0001244a5f4cf810ba8d3f9c542e2730821b16e969d6887b664266", + "sha256:808f1ac7cf3b44f81c9475475ceb221f982ef548e44e024ad5f9e7060649540e", + "sha256:8404b3717da03cbf773a1d275d01fec84ea007754ed380f63dfc24fb76ce4592", + "sha256:878f6fea96621fda5303a2867887686d7a198d9e0f8a40be100a63f5d60c88c9", + "sha256:8a7ff941004d74d55a47f916afc38494bd1cfd4b53c482b77c03147c91ac0ac3", + "sha256:95a5bad1ac8a5c77b4e658671642e4af3707f095d2b78a1fdd08af0dfb647624", + "sha256:97ef67d9bbc3e15584c2f3c74bcf064af36336c10d2e21a2131e123ce0f924c9", + "sha256:98486337f7b4f3c324ab402e83453e25bb844f44418c066623db88e4c56b7c7b", + "sha256:98e4fe5db40db87ce1c65031463a760ec7906ab230ad2249b4572c2fc3ef1f9f", + "sha256:998a8080c4495e4f72132f3d66ff91f5997d799e86cec6ee05342f8f3cda7dca", + "sha256:9afe42102b40007f588666bc7de82451e10c6788f6f70984629db193849dced1", + "sha256:9e20da3957bdf7824afdd4b6eeb29510e83e026473e04952dca565170cd1ecc8", + "sha256:a017f813f24b9df929674d0332a374d40d7f0162b326562daae8066b502d0590", + "sha256:a429b99337062877d7875e4ff1a51fe788424d522bd64a8c0a20ef3021fdb6ed", + "sha256:a58ce66847711c4aa2ecfcfaff04cb0327f907fead8945ffc47d9407f41ff952", + "sha256:a78d8b634c9df7f8d175451cfeac3810a702ccb85f98ec95797fa98b942cea11", + "sha256:a89a8ce9e4e75aeb7fa5d8ad0f3fecdee813802592f4f46a15754dcb2fd6b061", + "sha256:a8eeec67590e94189f434c6d11c426892e396ae59e4801d17a93ac96b8c02a6c", + "sha256:aaeb25ccfb9b9014a10eaf70904ebf3f79faaa8e60e99e19eef9f478651b9b74", + "sha256:ad116dda078d0bc4886cb7840e19811562acdc7a8e296ea6ec37e70326c1b41c", + "sha256:af04ac89c738e0f0f1b913918024c3eab6e3ace989518ea838807177d38a2e94", + "sha256:af4a644bf890f56e41e74be7d34e9511e4954894d544ec6b8efe1e21a1a8da6c", + "sha256:b21747f79f360e790525e6f6438c7569ddbfb1b3197b9e65043f25c3c9b489d8", + "sha256:b229ce052ddf1a01c67d68166c19cb004fb3612424921b81c46e7ea7ccf7c3bf", + "sha256:b4de1da871b5c0fd5537b26a6fc6814c3cc05cabe0c941db6e9044ffbb12f04a", + "sha256:b80b4690bbff51a034bfde9c9f6bf9357f0a8c61f548942b80f7b66356508bf5", + "sha256:b876f2bc27ab5954e2fd88890c071bd0ed18b9c50f6ec3de3c50a5ece612f7a6", + "sha256:b8f107395f2f1d151181880b69a2869c69e87ec079c49c0016ab96860b6acbe5", + "sha256:b9b76e2afd585803c53c5b29e992ecd183f68285b62fe2668383a18e74abe7a3", + "sha256:c2b2f71c6ad6c2e4fc9ed9401080badd1469fa9889657ec3abea42a3d6b2e1ed", + "sha256:c3761f62fcfccf0864cc4665b6e7c3f0c626f0380b41b8bd1ce322103fa3ef87", + "sha256:c38dbf31c57032667dd5a2f0568ccde66e868e8f78d5a0d27dcc56d70f3fcd3b", + "sha256:ca9989d5d9b1b300bc18e1801c67b9f6d2c66b8fd9621b36072ed1df2c977f72", + "sha256:cbd7504a10b0955ea287114f003b7ad62330c9e65ba012c6223dba646f6ffd05", + "sha256:d167e4dbbdac48bd58893c7e446684ad5d425b407f9336e04ab52e8b9194e2ed", + "sha256:d2132377f9deef0c4db89e65e8bb28644ff75a18df5293e132a8d67748397b9f", + "sha256:da52d62a96e61c1c444f3998c434e8b263c384f6d68aca8274d2e08d1906325c", + "sha256:daa8efac2a1273eed2354397a51216ae1e198ecbce9036fba4e7610b308b6153", + "sha256:dc5695c321e518d9f03b7ea6abb5ea3af4567766f9852ad1560f501b17588c7b", + "sha256:de552f4a1916e520f2703ec474d2b4d3f86d41f353e7680b597512ffe7eac5d0", + "sha256:de609a6f1b682f70bb7163da745ee815d8f230d97276db049ab447767466a09d", + "sha256:e12bb09678f38b7597b8346983d2323a6482dcd59e423d9448108c1be37cac9d", + "sha256:e168afe6bf6ab7ab46c8c375606298784ecbe3ba31c0980b7dcbb9631dcba97e", + "sha256:e78868e98f34f34a88e23ee9ccaeeec460e4eaf6db16d51d7a9b883e5e785a5e", + "sha256:e860f065cc4ea6f256d6f411aba4b1251255366e48e972f8a347cf88077b24fd", + "sha256:ea3a6ac4d74820c98fcc9da4a57847ad2cc36475a8bd9683f32ab6d47a2bd682", + "sha256:ebf64e281a06c904a7636781d2e973d1f0926a5b8b480ac658dc0f556e7779f4", + "sha256:ed6378c9d66d0de903763e7706383d60c33829581f0adff47b6535f1802fa6db", + "sha256:ee1e4fc267b437bb89990b2f2abf6c25765b89b72dd4a11e21934df449e0c976", + "sha256:ee4eafd77cc98d355a0d02f263efc0d3ae3ce4a7c24740010a8b4012bbb24937", + "sha256:efec946f331349dfc4ae9d0e034c263ddde19414fe5128580f512619abed05f1", + "sha256:f414da5c51bf350e4b7960644617c130140423882305f7574b6cf65a3081cecb", + "sha256:f71009b0d5e94c0e86533c0b27ed7cacc1239cb51c178fd239c3cfefefb0400a", + "sha256:f983e4c2f603c95dde63df633eec42955508eefd8d0f0e6d236d31a044c882d7", + "sha256:faa5e8496c530f9c71f2b4e1c49758b06e5f4055e17144906245c99fa6d45356", + "sha256:fed5dfefdf384d6fe975cc026886aece4f292feaf69d0eeb716cfd3c5a4dd8be" + ], + "markers": "python_version >= '3.9'", + "version": "==0.21.0" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "version": "==1.16.0" + }, + "sqlparse": { + "hashes": [ + "sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4", + "sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e" + ], + "markers": "python_version >= '3.8'", + "version": "==0.5.1" + }, + "text-unidecode": { + "hashes": [ + "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8", + "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93" + ], + "version": "==1.3" + }, + "typing-extensions": { + "hashes": [ + "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", + "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8" + ], + "markers": "python_version >= '3.8'", + "version": "==4.12.2" + }, + "urllib3": { + "hashes": [ + "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e", + "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==1.26.20" + }, + "zipp": { + "hashes": [ + "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4", + "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931" + ], + "markers": "python_version >= '3.9'", + "version": "==3.21.0" + } + }, + "develop": { + "altair": { + "hashes": [ + "sha256:0ce8c2e66546cb327e5f2d7572ec0e7c6feece816203215613962f0ec1d76a82", + "sha256:0fb130b8297a569d08991fb6fe763582e7569f8a04643bbd9212436e3be04aef" + ], + "index": "pypi", + "markers": "python_version >= '3.8'", + "version": "==5.4.1" + }, + "anyio": { + "hashes": [ + "sha256:4c8bc31ccdb51c7f7bd251f51c609e038d63e34219b44aa86e47576389880b4c", + "sha256:6d170c36fba3bdd840c73d3868c1e777e33676a69c3a72cf0a0d5d6d8009b61d" + ], + "markers": "python_version >= '3.9'", + "version": "==4.6.2.post1" + }, + "appnope": { + "hashes": [ + "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", + "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c" + ], + "markers": "platform_system == 'Darwin'", + "version": "==0.1.4" + }, + "argon2-cffi": { + "hashes": [ + "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08", + "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea" + ], + "markers": "python_version >= '3.7'", + "version": "==23.1.0" + }, + "argon2-cffi-bindings": { + "hashes": [ + "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670", + "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f", + "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583", + "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194", + "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c", + "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a", + "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082", + "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5", + "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f", + "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7", + "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d", + "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f", + "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae", + "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3", + "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86", + "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367", + "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d", + "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93", + "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb", + "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e", + "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351" ], "markers": "python_version >= '3.6'", - "version": "==3.2.2" + "version": "==21.2.0" }, - "packaging": { + "arrow": { + "hashes": [ + "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80", + "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85" + ], + "markers": "python_version >= '3.8'", + "version": "==1.3.0" + }, + "asttokens": { + "hashes": [ + "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24", + "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0" + ], + "version": "==2.4.1" + }, + "async-lru": { "hashes": [ - "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", - "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" + "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627", + "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224" + ], + "markers": "python_version >= '3.8'", + "version": "==2.0.4" + }, + "attrs": { + "hashes": [ + "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", + "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2" + ], + "markers": "python_version >= '3.7'", + "version": "==24.2.0" + }, + "babel": { + "hashes": [ + "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b", + "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316" + ], + "markers": "python_version >= '3.8'", + "version": "==2.16.0" + }, + "beautifulsoup4": { + "hashes": [ + "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", + "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed" + ], + "markers": "python_full_version >= '3.6.0'", + "version": "==4.12.3" + }, + "bleach": { + "hashes": [ + "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e", + "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f" + ], + "markers": "python_version >= '3.9'", + "version": "==6.2.0" + }, + "certifi": { + "hashes": [ + "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", + "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9" ], "markers": "python_version >= '3.6'", - "version": "==21.3" + "version": "==2024.8.30" }, - "pandas": { + "cffi": { + "hashes": [ + "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8", + "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", + "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1", + "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15", + "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", + "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", + "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8", + "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36", + "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17", + "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", + "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc", + "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", + "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", + "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702", + "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", + "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", + "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", + "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6", + "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", + "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b", + "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e", + "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be", + "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c", + "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", + "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", + "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", + "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8", + "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1", + "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", + "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655", + "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67", + "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595", + "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0", + "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", + "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", + "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", + "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", + "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", + "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3", + "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16", + "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", + "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e", + "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", + "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964", + "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c", + "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576", + "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0", + "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3", + "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662", + "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", + "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", + "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", + "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", + "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", + "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", + "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14", + "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", + "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9", + "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7", + "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382", + "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a", + "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", + "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", + "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", + "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", + "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87", + "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b" + ], + "markers": "python_version >= '3.8'", + "version": "==1.17.1" + }, + "charset-normalizer": { "hashes": [ - "sha256:04e51b01d5192499390c0015630975f57836cc95c7411415b499b599b05c0c96", - "sha256:05c527c64ee02a47a24031c880ee0ded05af0623163494173204c5b72ddce658", - "sha256:0a78e05ec09731c5b3bd7a9805927ea631fe6f6cb06f0e7c63191a9a778d52b4", - "sha256:17da7035d9e6f9ea9cdc3a513161f8739b8f8489d31dc932bc5a29a27243f93d", - "sha256:249cec5f2a5b22096440bd85c33106b6102e0672204abd2d5c014106459804ee", - "sha256:2c25e5c16ee5c0feb6cf9d982b869eec94a22ddfda9aa2fbed00842cbb697624", - "sha256:32e3d9f65606b3f6e76555bfd1d0b68d94aff0929d82010b791b6254bf5a4b96", - "sha256:36aa1f8f680d7584e9b572c3203b20d22d697c31b71189322f16811d4ecfecd3", - "sha256:5b0c970e2215572197b42f1cff58a908d734503ea54b326412c70d4692256391", - "sha256:5cee0c74e93ed4f9d39007e439debcaadc519d7ea5c0afc3d590a3a7b2edf060", - "sha256:669c8605dba6c798c1863157aefde959c1796671ffb342b80fcb80a4c0bc4c26", - "sha256:66a1ad667b56e679e06ba73bb88c7309b3f48a4c279bd3afea29f65a766e9036", - "sha256:683779e5728ac9138406c59a11e09cd98c7d2c12f0a5fc2b9c5eecdbb4a00075", - "sha256:6bb391659a747cf4f181a227c3e64b6d197100d53da98dcd766cc158bdd9ec68", - "sha256:81f0674fa50b38b6793cd84fae5d67f58f74c2d974d2cb4e476d26eee33343d0", - "sha256:927e59c694e039c75d7023465d311277a1fc29ed7236b5746e9dddf180393113", - "sha256:932d2d7d3cab44cfa275601c982f30c2d874722ef6396bb539e41e4dc4618ed4", - "sha256:a52419d9ba5906db516109660b114faf791136c94c1a636ed6b29cbfff9187ee", - "sha256:b156a971bc451c68c9e1f97567c94fd44155f073e3bceb1b0d195fd98ed12048", - "sha256:bcf1a82b770b8f8c1e495b19a20d8296f875a796c4fe6e91da5ef107f18c5ecb", - "sha256:cb2a9cf1150302d69bb99861c5cddc9c25aceacb0a4ef5299785d0f5389a3209", - "sha256:d8c709f4700573deb2036d240d140934df7e852520f4a584b2a8d5443b71f54d", - "sha256:db45b94885000981522fb92349e6b76f5aee0924cc5315881239c7859883117d", - "sha256:ddf46b940ef815af4e542697eaf071f0531449407a7607dd731bf23d156e20a7", - "sha256:e675f8fe9aa6c418dc8d3aac0087b5294c1a4527f1eacf9fe5ea671685285454", - "sha256:eb7e8cf2cf11a2580088009b43de84cabbf6f5dae94ceb489f28dba01a17cb77", - "sha256:f340331a3f411910adfb4bbe46c2ed5872d9e473a783d7f14ecf49bc0869c594" + "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621", + "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", + "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", + "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912", + "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", + "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b", + "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d", + "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d", + "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95", + "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e", + "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", + "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", + "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab", + "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be", + "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", + "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907", + "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0", + "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2", + "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62", + "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62", + "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", + "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", + "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", + "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca", + "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455", + "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858", + "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", + "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", + "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", + "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", + "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", + "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea", + "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6", + "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", + "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749", + "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", + "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd", + "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99", + "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242", + "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee", + "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", + "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", + "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51", + "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", + "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8", + "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", + "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613", + "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742", + "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe", + "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3", + "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", + "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", + "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7", + "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", + "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", + "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", + "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417", + "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", + "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", + "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca", + "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa", + "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", + "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149", + "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41", + "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574", + "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0", + "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f", + "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", + "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654", + "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3", + "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19", + "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", + "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578", + "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", + "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", + "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51", + "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", + "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", + "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a", + "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", + "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade", + "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", + "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc", + "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6", + "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", + "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", + "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6", + "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2", + "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12", + "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf", + "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", + "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7", + "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", + "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", + "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b", + "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", + "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", + "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4", + "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", + "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", + "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a", + "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748", + "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b", + "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", + "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.4.0" + }, + "comm": { + "hashes": [ + "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e", + "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3" + ], + "markers": "python_version >= '3.8'", + "version": "==0.2.2" + }, + "debugpy": { + "hashes": [ + "sha256:09cc7b162586ea2171eea055985da2702b0723f6f907a423c9b2da5996ad67ba", + "sha256:0cc94186340be87b9ac5a707184ec8f36547fb66636d1029ff4f1cc020e53996", + "sha256:143ef07940aeb8e7316de48f5ed9447644da5203726fca378f3a6952a50a9eae", + "sha256:19ffbd84e757a6ca0113574d1bf5a2298b3947320a3e9d7d8dc3377f02d9f864", + "sha256:26b461123a030e82602a750fb24d7801776aa81cd78404e54ab60e8b5fecdad5", + "sha256:3a9c013077a3a0000e83d97cf9cc9328d2b0bbb31f56b0e99ea3662d29d7a6a2", + "sha256:4b93e4832fd4a759a0c465c967214ed0c8a6e8914bced63a28ddb0dd8c5f078b", + "sha256:535f4fb1c024ddca5913bb0eb17880c8f24ba28aa2c225059db145ee557035e9", + "sha256:53709d4ec586b525724819dc6af1a7703502f7e06f34ded7157f7b1f963bb854", + "sha256:5c0e5a38c7f9b481bf31277d2f74d2109292179081f11108e668195ef926c0f9", + "sha256:5c6e885dbf12015aed73770f29dec7023cb310d0dc2ba8bfbeb5c8e43f80edc9", + "sha256:64674e95916e53c2e9540a056e5f489e0ad4872645399d778f7c598eacb7b7f9", + "sha256:705cd123a773d184860ed8dae99becd879dfec361098edbefb5fc0d3683eb804", + "sha256:890fd16803f50aa9cb1a9b9b25b5ec321656dd6b78157c74283de241993d086f", + "sha256:90244598214bbe704aa47556ec591d2f9869ff9e042e301a2859c57106649add", + "sha256:a6531d952b565b7cb2fbd1ef5df3d333cf160b44f37547a4e7cf73666aca5d8d", + "sha256:b01f4a5e5c5fb1d34f4ccba99a20ed01eabc45a4684f4948b5db17a319dfb23f", + "sha256:c399023146e40ae373753a58d1be0a98bf6397fadc737b97ad612886b53df318", + "sha256:d4483836da2a533f4b1454dffc9f668096ac0433de855f0c22cdce8c9f7e10c4", + "sha256:e59b1607c51b71545cb3496876544f7186a7a27c00b436a62f285603cc68d1c6", + "sha256:e6355385db85cbd666be703a96ab7351bc9e6c61d694893206f8001e22aee091", + "sha256:ec684553aba5b4066d4de510859922419febc710df7bba04fe9e7ef3de15d34f", + "sha256:eea8821d998ebeb02f0625dd0d76839ddde8cbf8152ebbe289dd7acf2cdc6b98", + "sha256:f3cbf1833e644a3100eadb6120f25be8a532035e8245584c4f7532937edc652a", + "sha256:f95651bdcbfd3b27a408869a53fbefcc2bcae13b694daee5f1365b1b83a00113", + "sha256:ffe94dd5e9a6739a75f0b85316dc185560db3e97afa6b215628d1b6a17561cb2" ], "markers": "python_version >= '3.8'", + "version": "==1.8.8" + }, + "decorator": { + "hashes": [ + "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", + "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186" + ], + "markers": "python_version >= '3.5'", + "version": "==5.1.1" + }, + "defusedxml": { + "hashes": [ + "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", + "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==0.7.1" + }, + "exceptiongroup": { + "hashes": [ + "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b", + "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc" + ], + "markers": "python_version < '3.11'", + "version": "==1.2.2" + }, + "executing": { + "hashes": [ + "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf", + "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab" + ], + "markers": "python_version >= '3.8'", + "version": "==2.1.0" + }, + "fastjsonschema": { + "hashes": [ + "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23", + "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a" + ], + "version": "==2.20.0" + }, + "fqdn": { + "hashes": [ + "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", + "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014" + ], "version": "==1.5.1" }, - "parsedatetime": { + "h11": { "hashes": [ - "sha256:3d817c58fb9570d1eec1dd46fa9448cd644eeed4fb612684b02dfda3a79cb84b", - "sha256:9ee3529454bf35c40a77115f5a596771e59e1aee8c53306f346c461b8e913094" + "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d", + "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761" ], - "version": "==2.4" + "markers": "python_version >= '3.7'", + "version": "==0.14.0" }, - "pathspec": { + "httpcore": { + "hashes": [ + "sha256:27b59625743b85577a8c0e10e55b50b5368a4f2cfe8cc7bcfa9cf00829c2682f", + "sha256:73f6dbd6eb8c21bbf7ef8efad555481853f5f6acdeaff1edb0694289269ee17f" + ], + "markers": "python_version >= '3.8'", + "version": "==1.0.6" + }, + "httpx": { + "hashes": [ + "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0", + "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2" + ], + "markers": "python_version >= '3.8'", + "version": "==0.27.2" + }, + "idna": { + "hashes": [ + "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", + "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" + ], + "markers": "python_version >= '3.6'", + "version": "==3.10" + }, + "iniconfig": { "hashes": [ - "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a", - "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" + "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", + "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" ], "markers": "python_version >= '3.7'", - "version": "==0.9.0" + "version": "==2.0.0" }, - "pluggy": { + "ipykernel": { + "hashes": [ + "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5", + "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215" + ], + "markers": "python_version >= '3.8'", + "version": "==6.29.5" + }, + "ipython": { "hashes": [ - "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", - "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" + "sha256:0188a1bd83267192123ccea7f4a8ed0a78910535dbaa3f37671dca76ebd429c8", + "sha256:40b60e15b22591450eef73e40a027cf77bd652e757523eebc5bd7c7c498290eb" + ], + "markers": "python_version >= '3.10'", + "version": "==8.29.0" + }, + "isoduration": { + "hashes": [ + "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", + "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042" + ], + "version": "==20.11.0" + }, + "jedi": { + "hashes": [ + "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", + "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9" ], "markers": "python_version >= '3.6'", - "version": "==1.0.0" + "version": "==0.19.2" }, - "pyarrow": { + "jinja2": { "hashes": [ - "sha256:0238998dc692efcb4e41ae74738d7c1234723271ccf520bd8312dca07d49ef8d", - "sha256:02b820ecd1da02012092c180447de449fc688d0c3f9ff8526ca301cdd60dacd0", - "sha256:1c5a073a930c632058461547e0bc572da1e724b17b6b9eb31a97da13f50cb6e0", - "sha256:29eb3e086e2b26202f3a4678316b93cfb15d0e2ba20f3ec12db8fd9cc07cde63", - "sha256:2c715eca2092273dcccf6f08437371e04d112f9354245ba2fbe6c801879450b7", - "sha256:2e753f8fcf07d8e3a0efa0c8bd51fef5c90281ffd4c5637c08ce42cd0ac297de", - "sha256:3eef8a981f45d89de403e81fb83b8119c20824caddf1404274e41a5d66c73806", - "sha256:4eebdab05afa23d5d5274b24c1cbeb1ba017d67c280f7d39fd8a8f18cbad2ec9", - "sha256:5526a3bfb404ff6d31d62ea582cf2466c7378a474a99ee04d1a9b05de5264541", - "sha256:55328348b9139c2b47450d512d716c2248fd58e2f04e2fc23a65e18726666d42", - "sha256:767cafb14278165ad539a2918c14c1b73cf20689747c21375c38e3fe62884902", - "sha256:7fa56cbd415cef912677270b8e41baad70cde04c6d8a8336eeb2aba85aa93706", - "sha256:7fb02bebc13ab55573d1ae9bb5002a6d20ba767bf8569b52fce5301d42495ab7", - "sha256:81a60bb291a964f63b2717fb1b28f6615ffab7e8585322bfb8a6738e6b321282", - "sha256:8ad430cee28ebc4d6661fc7315747c7a18ae2a74e67498dcb039e1c762a2fb67", - "sha256:92f3977e901db1ef5cba30d6cc1d7942b8d94b910c60f89013e8f7bb86a86eef", - "sha256:9cef618159567d5f62040f2b79b1c7b38e3885f4ffad0ec97cd2d86f88b67cef", - "sha256:a5b390bdcfb8c5b900ef543f911cdfec63e88524fafbcc15f83767202a4a2491", - "sha256:d9eb04db626fa24fdfb83c00f76679ca0d98728cdbaa0481b6402bf793a290c0", - "sha256:da3e0f319509a5881867effd7024099fb06950a0768dad0d6873668bb88cfaba", - "sha256:f11a645a41ee531c3a5edda45dea07c42267f52571f818d388971d33fc7e2d4a", - "sha256:f241bd488c2705df930eedfe304ada71191dcf67d6b98ceda0cc934fd2a8388e", - "sha256:f59bcd5217a3ae1e17870792f82b2ff92df9f3862996e2c78e156c13e56ff62e", - "sha256:f8c46bde1030d704e2796182286d1c56846552c50a39ad5bf5a20c0d8159fc35", - "sha256:fc856628acd8d281652c15b6268ec7f27ebcb015abbe99d9baad17f02adc51f1", - "sha256:fe2ce795fa1d95e4e940fe5661c3c58aee7181c730f65ac5dd8794a77228de59" + "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", + "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d" ], "markers": "python_version >= '3.7'", - "version": "==9.0.0" + "version": "==3.1.4" }, - "pycparser": { + "json5": { + "hashes": [ + "sha256:1f82f36e615bc5b42f1bbd49dbc94b12563c56408c6ffa06414ea310890e9a6e", + "sha256:29c56f1accdd8bc2e037321237662034a7e07921e2b7223281a5ce2c46f0c4df" + ], + "markers": "python_full_version >= '3.8.0'", + "version": "==0.9.28" + }, + "jsonpointer": { + "hashes": [ + "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", + "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef" + ], + "version": "==3.0.0" + }, + "jsonschema": { + "hashes": [ + "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", + "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566" + ], + "markers": "python_version >= '3.8'", + "version": "==4.23.0" + }, + "jsonschema-specifications": { + "hashes": [ + "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272", + "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf" + ], + "markers": "python_version >= '3.9'", + "version": "==2024.10.1" + }, + "jupyter-client": { + "hashes": [ + "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419", + "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f" + ], + "markers": "python_version >= '3.8'", + "version": "==8.6.3" + }, + "jupyter-core": { + "hashes": [ + "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409", + "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9" + ], + "markers": "python_version >= '3.8'", + "version": "==5.7.2" + }, + "jupyter-events": { + "hashes": [ + "sha256:4b72130875e59d57716d327ea70d3ebc3af1944d3717e5a498b8a06c6c159960", + "sha256:670b8229d3cc882ec782144ed22e0d29e1c2d639263f92ca8383e66682845e22" + ], + "markers": "python_version >= '3.8'", + "version": "==0.10.0" + }, + "jupyter-lsp": { + "hashes": [ + "sha256:45fbddbd505f3fbfb0b6cb2f1bc5e15e83ab7c79cd6e89416b248cb3c00c11da", + "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001" + ], + "markers": "python_version >= '3.8'", + "version": "==2.2.5" + }, + "jupyter-server": { + "hashes": [ + "sha256:47ff506127c2f7851a17bf4713434208fc490955d0e8632e95014a9a9afbeefd", + "sha256:66095021aa9638ced276c248b1d81862e4c50f292d575920bbe960de1c56b12b" + ], + "markers": "python_version >= '3.8'", + "version": "==2.14.2" + }, + "jupyter-server-terminals": { + "hashes": [ + "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa", + "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269" + ], + "markers": "python_version >= '3.8'", + "version": "==0.5.3" + }, + "jupyterlab": { + "hashes": [ + "sha256:7c6835cbf8df0af0ec8a39332e85ff11693fb9a468205343b4fc0bfbc74817e5", + "sha256:f67e1095ad61ae04349024f0b40345062ab108a0c6998d9810fec6a3c1a70cd5" + ], + "index": "pypi", + "markers": "python_version >= '3.8'", + "version": "==4.3.0" + }, + "jupyterlab-pygments": { + "hashes": [ + "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d", + "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780" + ], + "markers": "python_version >= '3.8'", + "version": "==0.3.0" + }, + "jupyterlab-server": { + "hashes": [ + "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4", + "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4" + ], + "markers": "python_version >= '3.8'", + "version": "==2.27.3" + }, + "markupsafe": { "hashes": [ - "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", - "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" - ], - "version": "==2.21" - }, - "pyparsing": { - "hashes": [ - "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb", - "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc" - ], - "markers": "python_full_version >= '3.6.8'", - "version": "==3.0.9" - }, - "pyrsistent": { - "hashes": [ - "sha256:055ab45d5911d7cae397dc418808d8802fb95262751872c841c170b0dbf51eed", - "sha256:111156137b2e71f3a9936baf27cb322e8024dac3dc54ec7fb9f0bcf3249e68bb", - "sha256:187d5730b0507d9285a96fca9716310d572e5464cadd19f22b63a6976254d77a", - "sha256:21455e2b16000440e896ab99e8304617151981ed40c29e9507ef1c2e4314ee95", - "sha256:2aede922a488861de0ad00c7630a6e2d57e8023e4be72d9d7147a9fcd2d30712", - "sha256:3ba4134a3ff0fc7ad225b6b457d1309f4698108fb6b35532d015dca8f5abed73", - "sha256:456cb30ca8bff00596519f2c53e42c245c09e1a4543945703acd4312949bfd41", - "sha256:71d332b0320642b3261e9fee47ab9e65872c2bd90260e5d225dabeed93cbd42b", - "sha256:879b4c2f4d41585c42df4d7654ddffff1239dc4065bc88b745f0341828b83e78", - "sha256:9cd3e9978d12b5d99cbdc727a3022da0430ad007dacf33d0bf554b96427f33ab", - "sha256:a178209e2df710e3f142cbd05313ba0c5ebed0a55d78d9945ac7a4e09d923308", - "sha256:b39725209e06759217d1ac5fcdb510e98670af9e37223985f330b611f62e7425", - "sha256:bfa0351be89c9fcbcb8c9879b826f4353be10f58f8a677efab0c017bf7137ec2", - "sha256:bfd880614c6237243ff53a0539f1cb26987a6dc8ac6e66e0c5a40617296a045e", - "sha256:c43bec251bbd10e3cb58ced80609c5c1eb238da9ca78b964aea410fb820d00d6", - "sha256:d690b18ac4b3e3cab73b0b7aa7dbe65978a172ff94970ff98d82f2031f8971c2", - "sha256:d6982b5a0237e1b7d876b60265564648a69b14017f3b5f908c5be2de3f9abb7a", - "sha256:dec3eac7549869365fe263831f576c8457f6c833937c68542d08fde73457d291", - "sha256:e371b844cec09d8dc424d940e54bba8f67a03ebea20ff7b7b0d56f526c71d584", - "sha256:e5d8f84d81e3729c3b506657dddfe46e8ba9c330bf1858ee33108f8bb2adb38a", - "sha256:ea6b79a02a28550c98b6ca9c35b9f492beaa54d7c5c9e9949555893c8a9234d0", - "sha256:f1258f4e6c42ad0b20f9cfcc3ada5bd6b83374516cd01c0960e3cb75fdca6770" + "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", + "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", + "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0", + "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", + "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", + "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13", + "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", + "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", + "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", + "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", + "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0", + "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b", + "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579", + "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", + "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", + "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff", + "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", + "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", + "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", + "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb", + "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", + "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", + "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a", + "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", + "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a", + "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", + "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8", + "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", + "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", + "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144", + "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f", + "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", + "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", + "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", + "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", + "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158", + "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", + "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", + "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", + "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171", + "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", + "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", + "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", + "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d", + "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", + "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", + "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", + "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", + "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29", + "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", + "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", + "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c", + "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", + "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", + "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", + "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a", + "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178", + "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", + "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", + "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", + "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50" + ], + "markers": "python_version >= '3.9'", + "version": "==3.0.2" + }, + "matplotlib-inline": { + "hashes": [ + "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", + "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca" + ], + "markers": "python_version >= '3.8'", + "version": "==0.1.7" + }, + "mistune": { + "hashes": [ + "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205", + "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8" ], "markers": "python_version >= '3.7'", - "version": "==0.19.2" + "version": "==3.0.2" }, - "pytest": { + "narwhals": { + "hashes": [ + "sha256:cde49b59b4540885d822777b747ed3fad65632b3d34648040308afcf08e62547", + "sha256:db95cb5b5a6b99bad9fe7f2e2dacf937d57dee1c76c4544d4354a324084e36b5" + ], + "markers": "python_version >= '3.8'", + "version": "==1.13.3" + }, + "nbclient": { + "hashes": [ + "sha256:4b3f1b7dba531e498449c4db4f53da339c91d449dc11e9af3a43b4eb5c5abb09", + "sha256:f13e3529332a1f1f81d82a53210322476a168bb7090a0289c795fe9cc11c9d3f" + ], + "markers": "python_full_version >= '3.8.0'", + "version": "==0.10.0" + }, + "nbconvert": { + "hashes": [ + "sha256:05873c620fe520b6322bf8a5ad562692343fe3452abda5765c7a34b7d1aa3eb3", + "sha256:86ca91ba266b0a448dc96fa6c5b9d98affabde2867b363258703536807f9f7f4" + ], + "markers": "python_version >= '3.8'", + "version": "==7.16.4" + }, + "nbformat": { + "hashes": [ + "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", + "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b" + ], + "markers": "python_version >= '3.8'", + "version": "==5.10.4" + }, + "nest-asyncio": { + "hashes": [ + "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", + "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c" + ], + "markers": "python_version >= '3.5'", + "version": "==1.6.0" + }, + "notebook-shim": { "hashes": [ - "sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71", - "sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59" + "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef", + "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb" ], "markers": "python_version >= '3.7'", - "version": "==7.2.0" + "version": "==0.2.4" }, - "pytest-mock": { + "numpy": { + "hashes": [ + "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe", + "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0", + "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48", + "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a", + "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564", + "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958", + "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17", + "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0", + "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee", + "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b", + "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4", + "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4", + "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6", + "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4", + "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d", + "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f", + "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f", + "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f", + "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56", + "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9", + "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd", + "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23", + "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed", + "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a", + "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098", + "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1", + "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512", + "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f", + "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09", + "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f", + "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc", + "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8", + "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0", + "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761", + "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef", + "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5", + "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e", + "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b", + "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d", + "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43", + "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c", + "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41", + "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff", + "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408", + "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2", + "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9", + "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57", + "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb", + "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9", + "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3", + "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a", + "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0", + "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e", + "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598", + "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4" + ], + "markers": "python_version < '3.11'", + "version": "==2.1.3" + }, + "overrides": { + "hashes": [ + "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a", + "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49" + ], + "markers": "python_version >= '3.6'", + "version": "==7.7.0" + }, + "packaging": { + "hashes": [ + "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", + "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f" + ], + "markers": "python_version >= '3.8'", + "version": "==24.2" + }, + "pandas": { "hashes": [ - "sha256:f4c973eeae0282963eb293eb173ce91b091a79c1334455acfac9ddee8a1c784b", - "sha256:fbbdb085ef7c252a326fd8cdcac0aa3b1333d8811f131bdcc701002e1be7ed4f" + "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a", + "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d", + "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5", + "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4", + "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0", + "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32", + "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea", + "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28", + "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f", + "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348", + "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18", + "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468", + "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5", + "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e", + "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667", + "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645", + "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13", + "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30", + "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3", + "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d", + "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb", + "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3", + "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039", + "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8", + "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd", + "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761", + "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659", + "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57", + "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c", + "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c", + "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4", + "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a", + "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9", + "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42", + "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2", + "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39", + "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc", + "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698", + "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed", + "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015", + "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24", + "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319" ], "index": "pypi", - "version": "==3.10.0" + "markers": "python_version >= '3.9'", + "version": "==2.2.3" }, - "python-dateutil": { + "pandocfilters": { "hashes": [ - "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", - "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" + "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e", + "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.8.2" + "version": "==1.5.1" }, - "python-slugify": { + "parso": { "hashes": [ - "sha256:272d106cb31ab99b3496ba085e3fea0e9e76dcde967b5e9992500d1f785ce4e1", - "sha256:7b2c274c308b62f4269a9ba701aa69a797e9bca41aeee5b3a9e79e36b6656927" + "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18", + "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d" + ], + "markers": "python_version >= '3.6'", + "version": "==0.8.4" + }, + "pexpect": { + "hashes": [ + "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", + "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f" + ], + "markers": "sys_platform != 'win32' and sys_platform != 'emscripten'", + "version": "==4.9.0" + }, + "platformdirs": { + "hashes": [ + "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907", + "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb" + ], + "markers": "python_version >= '3.8'", + "version": "==4.3.6" + }, + "pluggy": { + "hashes": [ + "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", + "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669" + ], + "markers": "python_version >= '3.8'", + "version": "==1.5.0" + }, + "prometheus-client": { + "hashes": [ + "sha256:4fa6b4dd0ac16d58bb587c04b1caae65b8c5043e85f778f42f5f632f6af2e166", + "sha256:96c83c606b71ff2b0a433c98889d275f51ffec6c5e267de37c7a2b5c9aa9233e" + ], + "markers": "python_version >= '3.8'", + "version": "==0.21.0" + }, + "prompt-toolkit": { + "hashes": [ + "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90", + "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.0.48" + }, + "psutil": { + "hashes": [ + "sha256:000d1d1ebd634b4efb383f4034437384e44a6d455260aaee2eca1e9c1b55f047", + "sha256:045f00a43c737f960d273a83973b2511430d61f283a44c96bf13a6e829ba8fdc", + "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e", + "sha256:1209036fbd0421afde505a4879dee3b2fd7b1e14fee81c0069807adcbbcca747", + "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e", + "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a", + "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b", + "sha256:5cd2bcdc75b452ba2e10f0e8ecc0b57b827dd5d7aaffbc6821b2a9a242823a76", + "sha256:6d3fbbc8d23fcdcb500d2c9f94e07b1342df8ed71b948a2649b5cb060a7c94ca", + "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688", + "sha256:9118f27452b70bb1d9ab3198c1f626c2499384935aaf55388211ad982611407e", + "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38", + "sha256:a8506f6119cff7015678e2bce904a4da21025cc70ad283a53b099e7620061d85", + "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be", + "sha256:c0e0c00aa18ca2d3b2b991643b799a15fc8f0563d2ebb6040f64ce8dc027b942", + "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a", + "sha256:ff34df86226c0227c52f38b919213157588a678d049688eded74c76c8ba4a5d0" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==6.1.2" + "version": "==6.1.0" }, - "pytimeparse": { + "ptyprocess": { "hashes": [ - "sha256:04b7be6cc8bd9f5647a6325444926c3ac34ee6bc7e69da4367ba282f076036bd", - "sha256:e86136477be924d7e670646a98561957e8ca7308d44841e21f5ddea757556a0a" + "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", + "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220" ], - "version": "==1.1.8" + "markers": "os_name != 'nt'", + "version": "==0.7.0" + }, + "pure-eval": { + "hashes": [ + "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", + "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42" + ], + "version": "==0.2.3" + }, + "pyarrow": { + "hashes": [ + "sha256:00178509f379415a3fcf855af020e3340254f990a8534294ec3cf674d6e255fd", + "sha256:03f40b65a43be159d2f97fd64dc998f769d0995a50c00f07aab58b0b3da87e1f", + "sha256:082ba62bdcb939824ba1ce10b8acef5ab621da1f4c4805e07bfd153617ac19d4", + "sha256:09f30690b99ce34e0da64d20dab372ee54431745e4efb78ac938234a282d15f9", + "sha256:2333f93260674e185cfbf208d2da3007132572e56871f451ba1a556b45dae6e2", + "sha256:28f9c39a56d2c78bf6b87dcc699d520ab850919d4a8c7418cd20eda49874a2ea", + "sha256:2c664ab88b9766413197733c1720d3dcd4190e8fa3bbdc3710384630a0a7207b", + "sha256:2c992716cffb1088414f2b478f7af0175fd0a76fea80841b1706baa8fb0ebaad", + "sha256:2e549a748fa8b8715e734919923f69318c953e077e9c02140ada13e59d043310", + "sha256:320ae9bd45ad7ecc12ec858b3e8e462578de060832b98fc4d671dee9f10d9954", + "sha256:336addb8b6f5208be1b2398442c703a710b6b937b1a046065ee4db65e782ff5a", + "sha256:3ac24b2be732e78a5a3ac0b3aa870d73766dd00beba6e015ea2ea7394f8b4e55", + "sha256:45476490dd4adec5472c92b4d253e245258745d0ccaabe706f8d03288ed60a79", + "sha256:4c381857754da44326f3a49b8b199f7f87a51c2faacd5114352fc78de30d3aba", + "sha256:4d5ca5d707e158540312e09fd907f9f49bacbe779ab5236d9699ced14d2293b8", + "sha256:58a62549a3e0bc9e03df32f350e10e1efb94ec6cf63e3920c3385b26663948ce", + "sha256:5f0510608ccd6e7f02ca8596962afb8c6cc84c453e7be0da4d85f5f4f7b0328a", + "sha256:603cd8ad4976568954598ef0a6d4ed3dfb78aff3d57fa8d6271f470f0ce7d34f", + "sha256:606e9a3dcb0f52307c5040698ea962685fb1c852d72379ee9412be7de9c5f9e2", + "sha256:616ea2826c03c16e87f517c46296621a7c51e30400f6d0a61be645f203aa2b93", + "sha256:66dcc216ebae2eb4c37b223feaf82f15b69d502821dde2da138ec5a3716e7463", + "sha256:6dd1b52d0d58dd8f685ced9971eb49f697d753aa7912f0a8f50833c7a7426319", + "sha256:871b292d4b696b09120ed5bde894f79ee2a5f109cb84470546471df264cae136", + "sha256:8c70c1965cde991b711a98448ccda3486f2a336457cf4ec4dca257a926e149c9", + "sha256:8f40ec677e942374e3d7f2fad6a67a4c2811a8b975e8703c6fd26d3b168a90e2", + "sha256:907ee0aa8ca576f5e0cdc20b5aeb2ad4d3953a3b4769fc4b499e00ef0266f02f", + "sha256:a1824f5b029ddd289919f354bc285992cb4e32da518758c136271cf66046ef22", + "sha256:a6aa027b1a9d2970cf328ccd6dbe4a996bc13c39fd427f502782f5bdb9ca20f5", + "sha256:a71ab0589a63a3e987beb2bc172e05f000a5c5be2636b4b263c44034e215b5d7", + "sha256:b30a927c6dff89ee702686596f27c25160dd6c99be5bcc1513a763ae5b1bfc03", + "sha256:b46591222c864e7da7faa3b19455196416cd8355ff6c2cc2e65726a760a3c420", + "sha256:b5bd7fd32e3ace012d43925ea4fc8bd1b02cc6cc1e9813b518302950e89b5a22", + "sha256:bc1daf7c425f58527900876354390ee41b0ae962a73ad0959b9d829def583bb1", + "sha256:bc97316840a349485fbb137eb8d0f4d7057e1b2c1272b1a20eebbbe1848f5122", + "sha256:be08af84808dff63a76860847c48ec0416928a7b3a17c2f49a072cac7c45efbd", + "sha256:d5795e37c0a33baa618c5e054cd61f586cf76850a251e2b21355e4085def6280", + "sha256:d6331f280c6e4521c69b201a42dd978f60f7e129511a55da9e0bfe426b4ebb8d", + "sha256:dc892be34dbd058e8d189b47db1e33a227d965ea8805a235c8a7286f7fd17d3a", + "sha256:e7ab04f272f98ebffd2a0661e4e126036f6936391ba2889ed2d44c5006237802", + "sha256:eb7e3abcda7e1e6b83c2dc2909c8d045881017270a119cc6ee7fdcfe71d02df8", + "sha256:f1a198a50c409ab2d009fbf20956ace84567d67f2c5701511d4dd561fae6f32e", + "sha256:fe92efcdbfa0bcf2fa602e466d7f2905500f33f09eb90bf0bcf2e6ca41b574c8" + ], + "index": "pypi", + "markers": "python_version >= '3.9'", + "version": "==18.0.0" + }, + "pycparser": { + "hashes": [ + "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", + "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc" + ], + "markers": "python_version >= '3.8'", + "version": "==2.22" + }, + "pygments": { + "hashes": [ + "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", + "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a" + ], + "markers": "python_version >= '3.8'", + "version": "==2.18.0" + }, + "pytest": { + "hashes": [ + "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181", + "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2" + ], + "index": "pypi", + "markers": "python_version >= '3.8'", + "version": "==8.3.3" + }, + "pytest-mock": { + "hashes": [ + "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f", + "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0" + ], + "index": "pypi", + "markers": "python_version >= '3.8'", + "version": "==3.14.0" + }, + "python-dateutil": { + "hashes": [ + "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", + "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "version": "==2.9.0.post0" + }, + "python-json-logger": { + "hashes": [ + "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c", + "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd" + ], + "markers": "python_version >= '3.6'", + "version": "==2.0.7" }, "pytz": { "hashes": [ - "sha256:222439474e9c98fced559f1709d89e6c9cbf8d79c794ff3eb9f8800064291427", - "sha256:e89512406b793ca39f5971bc999cc538ce125c0e51c27941bef4568b460095e2" + "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", + "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725" ], - "version": "==2022.6" + "version": "==2024.2" }, "pyyaml": { "hashes": [ - "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf", - "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293", - "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b", - "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57", - "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b", - "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4", - "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07", - "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba", - "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9", - "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287", - "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513", - "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0", - "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782", - "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0", - "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92", - "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f", - "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2", - "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc", - "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1", - "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c", - "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86", - "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4", - "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c", - "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34", - "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b", - "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d", - "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c", - "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb", - "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7", - "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737", - "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3", - "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d", - "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358", - "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53", - "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78", - "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803", - "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a", - "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f", - "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174", - "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5" + "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff", + "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", + "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", + "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e", + "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", + "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", + "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", + "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", + "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", + "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", + "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a", + "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", + "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", + "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", + "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", + "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19", + "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", + "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a", + "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", + "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", + "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", + "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631", + "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d", + "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", + "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", + "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", + "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", + "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", + "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", + "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706", + "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", + "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", + "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", + "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083", + "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", + "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", + "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", + "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f", + "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725", + "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", + "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", + "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", + "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", + "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", + "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5", + "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d", + "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290", + "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", + "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", + "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", + "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", + "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12", + "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4" ], - "markers": "python_version >= '3.6'", - "version": "==6.0" + "markers": "python_version >= '3.8'", + "version": "==6.0.2" + }, + "pyzmq": { + "hashes": [ + "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6", + "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a", + "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9", + "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f", + "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37", + "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc", + "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed", + "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097", + "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d", + "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52", + "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6", + "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6", + "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2", + "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282", + "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3", + "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732", + "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5", + "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18", + "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306", + "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f", + "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3", + "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b", + "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277", + "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a", + "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797", + "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca", + "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c", + "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f", + "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5", + "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a", + "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44", + "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20", + "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4", + "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8", + "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780", + "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386", + "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5", + "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2", + "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0", + "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971", + "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b", + "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50", + "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c", + "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f", + "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231", + "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c", + "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08", + "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5", + "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6", + "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073", + "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e", + "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4", + "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317", + "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3", + "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072", + "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad", + "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a", + "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb", + "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd", + "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f", + "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef", + "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5", + "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187", + "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711", + "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988", + "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640", + "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c", + "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764", + "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1", + "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1", + "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289", + "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb", + "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a", + "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218", + "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c", + "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf", + "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7", + "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8", + "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726", + "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9", + "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93", + "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88", + "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115", + "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6", + "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672", + "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2", + "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea", + "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc", + "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b", + "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa", + "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003", + "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797", + "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940", + "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db", + "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc", + "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27", + "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3", + "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e", + "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98", + "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b", + "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629", + "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9", + "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6", + "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec", + "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951", + "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae", + "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4", + "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6", + "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919" + ], + "markers": "python_version >= '3.7'", + "version": "==26.2.0" + }, + "referencing": { + "hashes": [ + "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c", + "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de" + ], + "markers": "python_version >= '3.8'", + "version": "==0.35.1" }, "requests": { "hashes": [ - "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", - "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" + "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", + "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" ], - "markers": "python_version >= '3.7' and python_full_version < '4.0.0'", - "version": "==2.28.1" + "markers": "python_version >= '3.8'", + "version": "==2.32.3" + }, + "rfc3339-validator": { + "hashes": [ + "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", + "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==0.1.4" + }, + "rfc3986-validator": { + "hashes": [ + "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9", + "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==0.1.1" + }, + "rpds-py": { + "hashes": [ + "sha256:031819f906bb146561af051c7cef4ba2003d28cff07efacef59da973ff7969ba", + "sha256:0626238a43152918f9e72ede9a3b6ccc9e299adc8ade0d67c5e142d564c9a83d", + "sha256:085ed25baac88953d4283e5b5bd094b155075bb40d07c29c4f073e10623f9f2e", + "sha256:0a9e0759e7be10109645a9fddaaad0619d58c9bf30a3f248a2ea57a7c417173a", + "sha256:0c025820b78817db6a76413fff6866790786c38f95ea3f3d3c93dbb73b632202", + "sha256:1ff2eba7f6c0cb523d7e9cff0903f2fe1feff8f0b2ceb6bd71c0e20a4dcee271", + "sha256:20cc1ed0bcc86d8e1a7e968cce15be45178fd16e2ff656a243145e0b439bd250", + "sha256:241e6c125568493f553c3d0fdbb38c74babf54b45cef86439d4cd97ff8feb34d", + "sha256:2c51d99c30091f72a3c5d126fad26236c3f75716b8b5e5cf8effb18889ced928", + "sha256:2d6129137f43f7fa02d41542ffff4871d4aefa724a5fe38e2c31a4e0fd343fb0", + "sha256:30b912c965b2aa76ba5168fd610087bad7fcde47f0a8367ee8f1876086ee6d1d", + "sha256:30bdc973f10d28e0337f71d202ff29345320f8bc49a31c90e6c257e1ccef4333", + "sha256:320c808df533695326610a1b6a0a6e98f033e49de55d7dc36a13c8a30cfa756e", + "sha256:32eb88c30b6a4f0605508023b7141d043a79b14acb3b969aa0b4f99b25bc7d4a", + "sha256:3b766a9f57663396e4f34f5140b3595b233a7b146e94777b97a8413a1da1be18", + "sha256:3b929c2bb6e29ab31f12a1117c39f7e6d6450419ab7464a4ea9b0b417174f044", + "sha256:3e30a69a706e8ea20444b98a49f386c17b26f860aa9245329bab0851ed100677", + "sha256:3e53861b29a13d5b70116ea4230b5f0f3547b2c222c5daa090eb7c9c82d7f664", + "sha256:40c91c6e34cf016fa8e6b59d75e3dbe354830777fcfd74c58b279dceb7975b75", + "sha256:4991ca61656e3160cdaca4851151fd3f4a92e9eba5c7a530ab030d6aee96ec89", + "sha256:4ab2c2a26d2f69cdf833174f4d9d86118edc781ad9a8fa13970b527bf8236027", + "sha256:4e8921a259f54bfbc755c5bbd60c82bb2339ae0324163f32868f63f0ebb873d9", + "sha256:4eb2de8a147ffe0626bfdc275fc6563aa7bf4b6db59cf0d44f0ccd6ca625a24e", + "sha256:5145282a7cd2ac16ea0dc46b82167754d5e103a05614b724457cffe614f25bd8", + "sha256:520ed8b99b0bf86a176271f6fe23024323862ac674b1ce5b02a72bfeff3fff44", + "sha256:52c041802a6efa625ea18027a0723676a778869481d16803481ef6cc02ea8cb3", + "sha256:5555db3e618a77034954b9dc547eae94166391a98eb867905ec8fcbce1308d95", + "sha256:58a0e345be4b18e6b8501d3b0aa540dad90caeed814c515e5206bb2ec26736fd", + "sha256:590ef88db231c9c1eece44dcfefd7515d8bf0d986d64d0caf06a81998a9e8cab", + "sha256:5afb5efde74c54724e1a01118c6e5c15e54e642c42a1ba588ab1f03544ac8c7a", + "sha256:688c93b77e468d72579351a84b95f976bd7b3e84aa6686be6497045ba84be560", + "sha256:6b4ef7725386dc0762857097f6b7266a6cdd62bfd209664da6712cb26acef035", + "sha256:6bc0e697d4d79ab1aacbf20ee5f0df80359ecf55db33ff41481cf3e24f206919", + "sha256:6dcc4949be728ede49e6244eabd04064336012b37f5c2200e8ec8eb2988b209c", + "sha256:6f54e7106f0001244a5f4cf810ba8d3f9c542e2730821b16e969d6887b664266", + "sha256:808f1ac7cf3b44f81c9475475ceb221f982ef548e44e024ad5f9e7060649540e", + "sha256:8404b3717da03cbf773a1d275d01fec84ea007754ed380f63dfc24fb76ce4592", + "sha256:878f6fea96621fda5303a2867887686d7a198d9e0f8a40be100a63f5d60c88c9", + "sha256:8a7ff941004d74d55a47f916afc38494bd1cfd4b53c482b77c03147c91ac0ac3", + "sha256:95a5bad1ac8a5c77b4e658671642e4af3707f095d2b78a1fdd08af0dfb647624", + "sha256:97ef67d9bbc3e15584c2f3c74bcf064af36336c10d2e21a2131e123ce0f924c9", + "sha256:98486337f7b4f3c324ab402e83453e25bb844f44418c066623db88e4c56b7c7b", + "sha256:98e4fe5db40db87ce1c65031463a760ec7906ab230ad2249b4572c2fc3ef1f9f", + "sha256:998a8080c4495e4f72132f3d66ff91f5997d799e86cec6ee05342f8f3cda7dca", + "sha256:9afe42102b40007f588666bc7de82451e10c6788f6f70984629db193849dced1", + "sha256:9e20da3957bdf7824afdd4b6eeb29510e83e026473e04952dca565170cd1ecc8", + "sha256:a017f813f24b9df929674d0332a374d40d7f0162b326562daae8066b502d0590", + "sha256:a429b99337062877d7875e4ff1a51fe788424d522bd64a8c0a20ef3021fdb6ed", + "sha256:a58ce66847711c4aa2ecfcfaff04cb0327f907fead8945ffc47d9407f41ff952", + "sha256:a78d8b634c9df7f8d175451cfeac3810a702ccb85f98ec95797fa98b942cea11", + "sha256:a89a8ce9e4e75aeb7fa5d8ad0f3fecdee813802592f4f46a15754dcb2fd6b061", + "sha256:a8eeec67590e94189f434c6d11c426892e396ae59e4801d17a93ac96b8c02a6c", + "sha256:aaeb25ccfb9b9014a10eaf70904ebf3f79faaa8e60e99e19eef9f478651b9b74", + "sha256:ad116dda078d0bc4886cb7840e19811562acdc7a8e296ea6ec37e70326c1b41c", + "sha256:af04ac89c738e0f0f1b913918024c3eab6e3ace989518ea838807177d38a2e94", + "sha256:af4a644bf890f56e41e74be7d34e9511e4954894d544ec6b8efe1e21a1a8da6c", + "sha256:b21747f79f360e790525e6f6438c7569ddbfb1b3197b9e65043f25c3c9b489d8", + "sha256:b229ce052ddf1a01c67d68166c19cb004fb3612424921b81c46e7ea7ccf7c3bf", + "sha256:b4de1da871b5c0fd5537b26a6fc6814c3cc05cabe0c941db6e9044ffbb12f04a", + "sha256:b80b4690bbff51a034bfde9c9f6bf9357f0a8c61f548942b80f7b66356508bf5", + "sha256:b876f2bc27ab5954e2fd88890c071bd0ed18b9c50f6ec3de3c50a5ece612f7a6", + "sha256:b8f107395f2f1d151181880b69a2869c69e87ec079c49c0016ab96860b6acbe5", + "sha256:b9b76e2afd585803c53c5b29e992ecd183f68285b62fe2668383a18e74abe7a3", + "sha256:c2b2f71c6ad6c2e4fc9ed9401080badd1469fa9889657ec3abea42a3d6b2e1ed", + "sha256:c3761f62fcfccf0864cc4665b6e7c3f0c626f0380b41b8bd1ce322103fa3ef87", + "sha256:c38dbf31c57032667dd5a2f0568ccde66e868e8f78d5a0d27dcc56d70f3fcd3b", + "sha256:ca9989d5d9b1b300bc18e1801c67b9f6d2c66b8fd9621b36072ed1df2c977f72", + "sha256:cbd7504a10b0955ea287114f003b7ad62330c9e65ba012c6223dba646f6ffd05", + "sha256:d167e4dbbdac48bd58893c7e446684ad5d425b407f9336e04ab52e8b9194e2ed", + "sha256:d2132377f9deef0c4db89e65e8bb28644ff75a18df5293e132a8d67748397b9f", + "sha256:da52d62a96e61c1c444f3998c434e8b263c384f6d68aca8274d2e08d1906325c", + "sha256:daa8efac2a1273eed2354397a51216ae1e198ecbce9036fba4e7610b308b6153", + "sha256:dc5695c321e518d9f03b7ea6abb5ea3af4567766f9852ad1560f501b17588c7b", + "sha256:de552f4a1916e520f2703ec474d2b4d3f86d41f353e7680b597512ffe7eac5d0", + "sha256:de609a6f1b682f70bb7163da745ee815d8f230d97276db049ab447767466a09d", + "sha256:e12bb09678f38b7597b8346983d2323a6482dcd59e423d9448108c1be37cac9d", + "sha256:e168afe6bf6ab7ab46c8c375606298784ecbe3ba31c0980b7dcbb9631dcba97e", + "sha256:e78868e98f34f34a88e23ee9ccaeeec460e4eaf6db16d51d7a9b883e5e785a5e", + "sha256:e860f065cc4ea6f256d6f411aba4b1251255366e48e972f8a347cf88077b24fd", + "sha256:ea3a6ac4d74820c98fcc9da4a57847ad2cc36475a8bd9683f32ab6d47a2bd682", + "sha256:ebf64e281a06c904a7636781d2e973d1f0926a5b8b480ac658dc0f556e7779f4", + "sha256:ed6378c9d66d0de903763e7706383d60c33829581f0adff47b6535f1802fa6db", + "sha256:ee1e4fc267b437bb89990b2f2abf6c25765b89b72dd4a11e21934df449e0c976", + "sha256:ee4eafd77cc98d355a0d02f263efc0d3ae3ce4a7c24740010a8b4012bbb24937", + "sha256:efec946f331349dfc4ae9d0e034c263ddde19414fe5128580f512619abed05f1", + "sha256:f414da5c51bf350e4b7960644617c130140423882305f7574b6cf65a3081cecb", + "sha256:f71009b0d5e94c0e86533c0b27ed7cacc1239cb51c178fd239c3cfefefb0400a", + "sha256:f983e4c2f603c95dde63df633eec42955508eefd8d0f0e6d236d31a044c882d7", + "sha256:faa5e8496c530f9c71f2b4e1c49758b06e5f4055e17144906245c99fa6d45356", + "sha256:fed5dfefdf384d6fe975cc026886aece4f292feaf69d0eeb716cfd3c5a4dd8be" + ], + "markers": "python_version >= '3.9'", + "version": "==0.21.0" + }, + "send2trash": { + "hashes": [ + "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9", + "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==1.8.3" }, "setuptools": { "hashes": [ - "sha256:d0b9a8433464d5800cbe05094acf5c6d52a91bfac9b52bcfc4d41382be5d5d31", - "sha256:e197a19aa8ec9722928f2206f8de752def0e4c9fc6953527360d1c36d94ddb2f" + "sha256:1dc484f5cf56fd3fe7216d7b8df820802e7246cfb534a1db2aa64f14fcb9cdcb", + "sha256:b3c5d862f98500b06ffdf7cc4499b48c46c317d8d56cb30b5c8bce4d88f5c216" ], - "markers": "python_version >= '3.7'", - "version": "==65.5.1" + "markers": "python_version >= '3.9'", + "version": "==75.4.0" }, "six": { "hashes": [ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.16.0" }, - "sqlparams": { + "sniffio": { "hashes": [ - "sha256:79e4136cf4333ccbcd559793058740479df2386fbaedb0d03ff2b3c0e1c53b1a", - "sha256:bab69f000493013a1d563ffff2a22e2b18a69cf72fc1036431c2e59db3d4d9fb" + "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", + "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc" ], "markers": "python_version >= '3.7'", - "version": "==5.0.0" + "version": "==1.3.1" }, - "sqlparse": { + "soupsieve": { "hashes": [ - "sha256:0323c0ec29cd52bceabc1b4d9d579e311f3e4961b98d174201d5622a23b85e34", - "sha256:69ca804846bb114d2ec380e4360a8a340db83f0ccf3afceeb1404df028f57268" + "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", + "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9" ], - "markers": "python_version >= '3.5'", - "version": "==0.4.3" + "markers": "python_version >= '3.8'", + "version": "==2.6" }, - "text-unidecode": { + "stack-data": { "hashes": [ - "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8", - "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93" + "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", + "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695" ], - "version": "==1.3" + "version": "==0.6.3" }, - "thrift": { + "terminado": { "hashes": [ - "sha256:9af1c86bf73433afc6010ed376a6c6aca2b54099cc0d61895f640870a9ae7d89" + "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0", + "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e" ], - "version": "==0.13.0" + "markers": "python_version >= '3.8'", + "version": "==0.18.1" + }, + "tinycss2": { + "hashes": [ + "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7", + "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289" + ], + "markers": "python_version >= '3.8'", + "version": "==1.4.0" }, "tomli": { "hashes": [ - "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", - "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" + "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8", + "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391" ], "markers": "python_version < '3.11'", - "version": "==2.0.1" + "version": "==2.1.0" }, - "typing-extensions": { + "tornado": { "hashes": [ - "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa", - "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e" + "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8", + "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f", + "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4", + "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3", + "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14", + "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842", + "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9", + "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698", + "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7", + "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d", + "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4" ], - "markers": "python_version >= '3.7'", - "version": "==4.4.0" + "markers": "python_version >= '3.8'", + "version": "==6.4.1" }, - "urllib3": { + "traitlets": { "hashes": [ - "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e", - "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997" + "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", + "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_full_version < '4.0.0'", - "version": "==1.26.12" + "markers": "python_version >= '3.8'", + "version": "==5.14.3" }, - "werkzeug": { + "types-python-dateutil": { "hashes": [ - "sha256:7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f", - "sha256:f979ab81f58d7318e064e99c4506445d60135ac5cd2e177a2de0089bfd4c9bd5" + "sha256:250e1d8e80e7bbc3a6c99b907762711d1a1cdd00e978ad39cb5940f6f0a87f3d", + "sha256:58cb85449b2a56d6684e41aeefb4c4280631246a0da1a719bdbe6f3fb0317446" ], - "markers": "python_version >= '3.7'", - "version": "==2.2.2" - } - }, - "develop": { - "attrs": { + "markers": "python_version >= '3.8'", + "version": "==2.9.0.20241003" + }, + "typing-extensions": { "hashes": [ - "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6", - "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c" + "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", + "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8" ], - "markers": "python_version >= '3.5'", - "version": "==22.1.0" + "markers": "python_version >= '3.8'", + "version": "==4.12.2" }, - "exceptiongroup": { + "tzdata": { "hashes": [ - "sha256:a31cd183c3dea02e617aab5153588d5f7258a77b51f0ef41b3815ae8a0d0f695", - "sha256:c22f11ec6a10d2b453871c5c5fe887436c4d1961324ce9090f2ca6ddc4180c27" + "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc", + "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd" ], - "markers": "python_version < '3.11'", - "version": "==1.0.2" + "markers": "python_version >= '2'", + "version": "==2024.2" }, - "iniconfig": { + "uri-template": { "hashes": [ - "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", - "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32" + "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7", + "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363" ], - "version": "==1.1.1" + "version": "==1.3.0" }, - "packaging": { + "urllib3": { "hashes": [ - "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", - "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" + "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e", + "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32" ], - "markers": "python_version >= '3.6'", - "version": "==21.3" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==1.26.20" }, - "pluggy": { + "vl-convert-python": { "hashes": [ - "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", - "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" + "sha256:285bbadb1ce8a922c87f6e75a9544fe10a652d37bd4c1519fb93f90bab381588", + "sha256:51f99c58b1d0d74126455ece7d41972740cb4430b8dfdf7e0908270eed5be32d", + "sha256:8b50c492b640abb89a54a71e2c26f0f2d2c1cedc42030cc55bcc202670334724", + "sha256:90fba4356bd621bd31e72507a55e26dd13ebe79efa784715743116109afd0d47", + "sha256:962100d7670b9d35f9bb9745cdf590412f62f57c134b4a142340ba93a4dbddba", + "sha256:bc9e1f8ca0d8d3b3789c66e37cd6a8cf0a83406427d5143133346c2b5004485b" ], - "markers": "python_version >= '3.6'", - "version": "==1.0.0" + "index": "pypi", + "markers": "python_version >= '3.7'", + "version": "==1.7.0" }, - "pyparsing": { + "wcwidth": { "hashes": [ - "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb", - "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc" + "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", + "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5" ], - "markers": "python_full_version >= '3.6.8'", - "version": "==3.0.9" + "version": "==0.2.13" }, - "pytest": { + "webcolors": { "hashes": [ - "sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71", - "sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59" + "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9", + "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6" ], - "markers": "python_version >= '3.7'", - "version": "==7.2.0" + "version": "==24.11.1" }, - "pytest-mock": { + "webencodings": { "hashes": [ - "sha256:f4c973eeae0282963eb293eb173ce91b091a79c1334455acfac9ddee8a1c784b", - "sha256:fbbdb085ef7c252a326fd8cdcac0aa3b1333d8811f131bdcc701002e1be7ed4f" + "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", + "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923" ], - "index": "pypi", - "version": "==3.10.0" + "version": "==0.5.1" }, - "tomli": { + "websocket-client": { "hashes": [ - "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", - "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" + "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526", + "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da" ], - "markers": "python_version < '3.11'", - "version": "==2.0.1" + "markers": "python_version >= '3.8'", + "version": "==1.8.0" } } } diff --git a/dbt_project.yml b/dbt_project.yml deleted file mode 100644 index 1fb8ada90..000000000 --- a/dbt_project.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: 'jaffle_shop' - -config-version: 2 -version: '0.1' - -profile: 'jaffle_shop' - -macro-paths: ["jaffle_shop/macros"] -model-paths: ["jaffle_shop/models"] -seed-paths: ["jaffle_shop/seeds"] -snapshot-paths: ["jaffle_shop/snapshots"] - -target-path: "target" -clean-targets: - - "target" - - "dbt_modules" - - "logs" - -require-dbt-version: [">=1.0.0", "<2.0.0"] - -dispatch: - - macro_namespace: dbt_utils - search_order: ['dbt_project_evaluator', 'spark_utils', 'dbt_utils'] - -models: - jaffle_shop: - materialized: table - staging: - materialized: view diff --git a/jaffle_shop/dbt_project.yml b/jaffle_shop/dbt_project.yml new file mode 100644 index 000000000..8ee39b443 --- /dev/null +++ b/jaffle_shop/dbt_project.yml @@ -0,0 +1,62 @@ +name: 'jaffle_shop' + +config-version: 2 +version: '0.1' + +profile: 'jaffle_shop' + +macro-paths: ["macros"] +model-paths: ["models"] +seed-paths: ["seeds"] +snapshot-paths: ["snapshots"] + +target-path: "target" +clean-targets: + - "target" + - "dbt_modules" + - "logs" + +require-dbt-version: [">=1.0.0", "<2.0.0"] + +dispatch: + - macro_namespace: dbt_utils + search_order: ['dbt_project_evaluator', 'spark_utils', 'dbt_utils'] + # - macro_namespace: dbt + # search_order: ['dbt_project_evaluator', 'dbt'] + +models: + +file_format: delta + + jaffle_shop: + +pk_required: true + +desc_required: true + +no_hardcoded_dbs: true + + staging: + +materialized: view + + src_seed: + +materialized: view + + warehouse: + +materialized: table + + final: + +materialized: table + +seeds: + dbt_project_evaluator: + dbt_project_evaluator_exceptions: + +enabled: false + +vars: + dbt_project_evaluator: + model_types: ['staging', 'intermediate', 'warehouse', 'final', 'metrics'] + staging_folder_name: 'staging' + staging_prefixes: ['stg_'] + intermediate_folder_name: 'intermediate' + intermediate_prefixes: ['int_', 'inter_'] + warehouse_folder_name: 'warehouse' + warehouse_prefixes: ['wh_'] + final_folder_name: 'final' + final_prefixes: ['fnl_'] diff --git a/jaffle_shop/macros/sensitive/macros.md b/jaffle_shop/macros/sensitive/_macros.md similarity index 100% rename from jaffle_shop/macros/sensitive/macros.md rename to jaffle_shop/macros/sensitive/_macros.md diff --git a/jaffle_shop/macros/sensitive/macros.yml b/jaffle_shop/macros/sensitive/_macros.yml similarity index 100% rename from jaffle_shop/macros/sensitive/macros.yml rename to jaffle_shop/macros/sensitive/_macros.yml diff --git a/jaffle_shop/macros/sensitive/hash_of_column.sql b/jaffle_shop/macros/sensitive/hash_of_column.sql index af53dc504..90a8ce5da 100644 --- a/jaffle_shop/macros/sensitive/hash_of_column.sql +++ b/jaffle_shop/macros/sensitive/hash_of_column.sql @@ -1,13 +1,12 @@ {% macro hash_of_column(column) %} - SHA2( + SHA256( TRIM( LOWER( - CAST({{ column|lower }} AS {{ dbt_utils.type_string() }}) + CAST({{ column|lower }} AS {{ dbt.type_string() }}) || '{{ jaffle_shop.get_salt(column|lower) }}' ) - ), - 256 + ) ) AS {{column|lower}}_hash, {% endmacro %} diff --git a/jaffle_shop/models/customers.sql b/jaffle_shop/models/customers.sql deleted file mode 100644 index 016a004fe..000000000 --- a/jaffle_shop/models/customers.sql +++ /dev/null @@ -1,69 +0,0 @@ -with customers as ( - - select * from {{ ref('stg_customers') }} - -), - -orders as ( - - select * from {{ ref('stg_orders') }} - -), - -payments as ( - - select * from {{ ref('stg_payments') }} - -), - -customer_orders as ( - - select - customer_id, - - min(order_date) as first_order, - max(order_date) as most_recent_order, - count(order_id) as number_of_orders - from orders - - group by customer_id - -), - -customer_payments as ( - - select - orders.customer_id, - sum(amount) as total_amount - - from payments - - left join orders on - payments.order_id = orders.order_id - - group by orders.customer_id - -), - -final as ( - - select - customers.customer_id, - customers.first_name, - customers.last_name, - customer_orders.first_order, - customer_orders.most_recent_order, - customer_orders.number_of_orders, - customer_payments.total_amount as customer_lifetime_value - - from customers - - left join customer_orders - on customers.customer_id = customer_orders.customer_id - - left join customer_payments - on customers.customer_id = customer_payments.customer_id - -) - -select * from final diff --git a/jaffle_shop/models/final/_models.yml b/jaffle_shop/models/final/_models.yml new file mode 100644 index 000000000..911bdcf91 --- /dev/null +++ b/jaffle_shop/models/final/_models.yml @@ -0,0 +1,29 @@ +version: 2 + +models: + - name: fnl_sales_newcustomers + meta: + owner: 'nathan.lugg@kraken.tech' + description: A row per month with the number of customers that made their first order + columns: + - name: first_order_month + description: Primary key. The month we are counting the number of new customers in + tests: + - unique + - not_null + - name: num_new_customers + description: | + The number of new customers in the repsective month, where a new customer is + defined as a customer that made an order for the first time + - name: fnl_finance_returnsamout + meta: + owner: 'nathan.lugg@kraken.tech' + description: A row per customer (ID) and the amount (in AUD) of their returned orders + columns: + - name: customer_id + description: Primary key. The customer ID + tests: + - unique + - not_null + - name: total_returned_amount_aud + description: The total amount (in AUD) that the customer has returned diff --git a/jaffle_shop/models/final/fnl_finance_returnsamout.sql b/jaffle_shop/models/final/fnl_finance_returnsamout.sql new file mode 100644 index 000000000..dfb12a1cf --- /dev/null +++ b/jaffle_shop/models/final/fnl_finance_returnsamout.sql @@ -0,0 +1,16 @@ +WITH returned_ AS ( + SELECT + customer_id + , SUM(total_amount_aud) AS total_returned_amount_aud + FROM {{ ref('wh_orders') }} + WHERE status = 'returned' + GROUP BY customer_id +) + + +SELECT + customers_.customer_id + , COALESCE(returned_.total_returned_amount_aud, 0) AS total_returned_amount_aud +FROM {{ ref('wh_customers') }} AS customers_ +LEFT JOIN returned_ + ON customers_.customer_id = returned_.customer_id diff --git a/jaffle_shop/models/final/fnl_sales_newcustomers.sql b/jaffle_shop/models/final/fnl_sales_newcustomers.sql new file mode 100644 index 000000000..1cb6927fa --- /dev/null +++ b/jaffle_shop/models/final/fnl_sales_newcustomers.sql @@ -0,0 +1,14 @@ +WITH customers_ AS ( + SELECT + customer_id + , DATE_TRUNC('MONTH', first_order) AS first_order_month + FROM {{ ref('wh_customers') }} + WHERE first_order IS NOT NULL +) + + +SELECT + first_order_month + , COUNT(*) AS num_new_customers +FROM customers_ +GROUP BY first_order_month diff --git a/jaffle_shop/models/orders.sql b/jaffle_shop/models/orders.sql deleted file mode 100644 index cbb293491..000000000 --- a/jaffle_shop/models/orders.sql +++ /dev/null @@ -1,56 +0,0 @@ -{% set payment_methods = ['credit_card', 'coupon', 'bank_transfer', 'gift_card'] %} - -with orders as ( - - select * from {{ ref('stg_orders') }} - -), - -payments as ( - - select * from {{ ref('stg_payments') }} - -), - -order_payments as ( - - select - order_id, - - {% for payment_method in payment_methods -%} - sum(case when payment_method = '{{ payment_method }}' then amount else 0 end) as {{ payment_method }}_amount, - {% endfor -%} - - sum(amount) as total_amount - - from payments - - group by order_id - -), - -final as ( - - select - orders.order_id, - orders.customer_id, - orders.order_date, - orders.status, - - {% for payment_method in payment_methods -%} - - order_payments.{{ payment_method }}_amount, - - {% endfor -%} - - order_payments.total_amount as amount - - from orders - - - left join order_payments - on orders.order_id = order_payments.order_id - -) - -select * from final diff --git a/jaffle_shop/models/staging/schema.yml b/jaffle_shop/models/staging/schema.yml deleted file mode 100644 index c207e4cf5..000000000 --- a/jaffle_shop/models/staging/schema.yml +++ /dev/null @@ -1,31 +0,0 @@ -version: 2 - -models: - - name: stg_customers - columns: - - name: customer_id - tests: - - unique - - not_null - - - name: stg_orders - columns: - - name: order_id - tests: - - unique - - not_null - - name: status - tests: - - accepted_values: - values: ['placed', 'shipped', 'completed', 'return_pending', 'returned'] - - - name: stg_payments - columns: - - name: payment_id - tests: - - unique - - not_null - - name: payment_method - tests: - - accepted_values: - values: ['credit_card', 'coupon', 'bank_transfer', 'gift_card'] diff --git a/jaffle_shop/models/staging/src_seed/_models.yml b/jaffle_shop/models/staging/src_seed/_models.yml new file mode 100644 index 000000000..55045221e --- /dev/null +++ b/jaffle_shop/models/staging/src_seed/_models.yml @@ -0,0 +1,80 @@ +version: 2 + +models: + - name: stg_customers_pii + meta: + owner: 'nathan.lugg@kraken.tech' + sensitive: true + description: | + A table with a row per customer which simply contains their first_name, last_name, + and customer ID + columns: + - name: customer_id + description: Primary key + tests: + - unique + - not_null + - name: first_name + meta: + sensitive: true + - name: last_name + meta: + sensitive: true + + - name: stg_customers + meta: + owner: 'nathan.lugg@kraken.tech' + description: | + A non-sensitive version of `stg_customers_pii` where the first_name and last_name + have been replaced with hashes + columns: + - name: customer_id + description: Primary key + tests: + - unique + - not_null + - name: first_name_hash + - name: last_name_hash + + - name: stg_orders + description: | + A row per order, where an order consists of: + - customer_id + - order_date + - status + columns: + - name: order_id + description: Primary key + tests: + - unique + - not_null + - name: customer_id + description: Foreign key referring to customer_id in `stg_customers_pii`/`stg_customers` + - name: order_date + description: The date the order was placed + - name: status + description: Current status of the order + tests: + - accepted_values: + values: ['placed', 'shipped', 'completed', 'return_pending', 'returned'] + + - name: stg_payments + description: | + A row per payment, where a payment consists of: + - order_id + - payment_menthod + - amount_aud + columns: + - name: payment_id + description: Primary key + tests: + - unique + - not_null + - name: order_id + description: Foreign key referring to order_id in `stg_orders` + - name: payment_method + tests: + - accepted_values: + values: ['credit_card', 'coupon', 'bank_transfer', 'gift_card'] + - name: amount_aud + description: The amount, in dollars, of the order diff --git a/jaffle_shop/models/staging/src_seed/stg_customers.sql b/jaffle_shop/models/staging/src_seed/stg_customers.sql new file mode 100644 index 000000000..4538cbb8e --- /dev/null +++ b/jaffle_shop/models/staging/src_seed/stg_customers.sql @@ -0,0 +1,3 @@ +SELECT + {{ hash_sensitive_columns('stg_customers_pii') }} +FROM {{ ref('stg_customers_pii') }} diff --git a/jaffle_shop/models/staging/src_seed/stg_customers_pii.sql b/jaffle_shop/models/staging/src_seed/stg_customers_pii.sql new file mode 100644 index 000000000..890acaaee --- /dev/null +++ b/jaffle_shop/models/staging/src_seed/stg_customers_pii.sql @@ -0,0 +1,16 @@ +WITH source_ AS ( + SELECT * + FROM {{ ref('raw_customers') }} +) + +, renamed_ AS ( + SELECT + id AS customer_id + , first_name + , last_name + FROM source_ +) + + +SELECT * +FROM renamed_ diff --git a/jaffle_shop/models/staging/src_seed/stg_orders.sql b/jaffle_shop/models/staging/src_seed/stg_orders.sql new file mode 100644 index 000000000..86488458a --- /dev/null +++ b/jaffle_shop/models/staging/src_seed/stg_orders.sql @@ -0,0 +1,17 @@ +WITH source_ AS ( + SELECT * + FROM {{ ref('raw_orders') }} +) + +, renamed_ AS ( + SELECT + id AS order_id, + user_id AS customer_id, + order_date, + status + FROM source_ +) + + +SELECT * +FROM renamed_ diff --git a/jaffle_shop/models/staging/src_seed/stg_payments.sql b/jaffle_shop/models/staging/src_seed/stg_payments.sql new file mode 100644 index 000000000..8fd0b6cc8 --- /dev/null +++ b/jaffle_shop/models/staging/src_seed/stg_payments.sql @@ -0,0 +1,18 @@ +WITH source_ AS ( + SELECT * + FROM {{ ref('raw_payments') }} +) + +, renamed_ AS ( + select + id AS payment_id + , order_id + , payment_method + -- `amount` is currently stored in cents, so we convert it to dollars + , amount / 100 AS amount_aud + FROM source_ +) + + +SELECT * +FROM renamed_ diff --git a/jaffle_shop/models/staging/stg_customers.sql b/jaffle_shop/models/staging/stg_customers.sql deleted file mode 100644 index cad047269..000000000 --- a/jaffle_shop/models/staging/stg_customers.sql +++ /dev/null @@ -1,22 +0,0 @@ -with source as ( - - {#- - Normally we would select from the table here, but we are using seeds to load - our data in this project - #} - select * from {{ ref('raw_customers') }} - -), - -renamed as ( - - select - id as customer_id, - first_name, - last_name - - from source - -) - -select * from renamed diff --git a/jaffle_shop/models/staging/stg_orders.sql b/jaffle_shop/models/staging/stg_orders.sql deleted file mode 100644 index a654dcb94..000000000 --- a/jaffle_shop/models/staging/stg_orders.sql +++ /dev/null @@ -1,23 +0,0 @@ -with source as ( - - {#- - Normally we would select from the table here, but we are using seeds to load - our data in this project - #} - select * from {{ ref('raw_orders') }} - -), - -renamed as ( - - select - id as order_id, - user_id as customer_id, - order_date, - status - - from source - -) - -select * from renamed diff --git a/jaffle_shop/models/staging/stg_payments.sql b/jaffle_shop/models/staging/stg_payments.sql deleted file mode 100644 index 700cf7f4f..000000000 --- a/jaffle_shop/models/staging/stg_payments.sql +++ /dev/null @@ -1,25 +0,0 @@ -with source as ( - - {#- - Normally we would select from the table here, but we are using seeds to load - our data in this project - #} - select * from {{ ref('raw_payments') }} - -), - -renamed as ( - - select - id as payment_id, - order_id, - payment_method, - - -- `amount` is currently stored in cents, so we convert it to dollars - amount / 100 as amount - - from source - -) - -select * from renamed diff --git a/jaffle_shop/models/docs.md b/jaffle_shop/models/warehouse/_docs.md similarity index 100% rename from jaffle_shop/models/docs.md rename to jaffle_shop/models/warehouse/_docs.md diff --git a/jaffle_shop/models/schema.yml b/jaffle_shop/models/warehouse/_models.yml similarity index 82% rename from jaffle_shop/models/schema.yml rename to jaffle_shop/models/warehouse/_models.yml index 381349cfd..0ae49d2a0 100644 --- a/jaffle_shop/models/schema.yml +++ b/jaffle_shop/models/warehouse/_models.yml @@ -1,7 +1,7 @@ version: 2 models: - - name: customers + - name: wh_customers description: This table has basic information about a customer, as well as some derived facts based on a customer's orders columns: @@ -11,12 +11,6 @@ models: - unique - not_null - - name: first_name - description: Customer's first name. PII. - - - name: last_name - description: Customer's last name. PII. - - name: first_order description: Date (UTC) of a customer's first order @@ -26,10 +20,10 @@ models: - name: number_of_orders description: Count of the number of orders a customer has placed - - name: total_order_amount + - name: total_order_amount_aud description: Total value (AUD) of a customer's orders - - name: orders + - name: wh_orders description: This table has basic information about orders, as well as some derived facts based on payments columns: @@ -44,7 +38,7 @@ models: tests: - not_null - relationships: - to: ref('customers') + to: ref('wh_customers') field: customer_id - name: order_date @@ -56,27 +50,27 @@ models: - accepted_values: values: ['placed', 'shipped', 'completed', 'return_pending', 'returned'] - - name: amount + - name: total_amount_aud description: Total amount (AUD) of the order tests: - not_null - - name: credit_card_amount + - name: credit_card_amount_aud description: Amount of the order (AUD) paid for by credit card tests: - not_null - - name: coupon_amount + - name: coupon_amount_aud description: Amount of the order (AUD) paid for by coupon tests: - not_null - - name: bank_transfer_amount + - name: bank_transfer_amount_aud description: Amount of the order (AUD) paid for by bank transfer tests: - not_null - - name: gift_card_amount + - name: gift_card_amount_aud description: Amount of the order (AUD) paid for by gift card tests: - not_null diff --git a/jaffle_shop/models/warehouse/wh_customers.sql b/jaffle_shop/models/warehouse/wh_customers.sql new file mode 100644 index 000000000..704cea360 --- /dev/null +++ b/jaffle_shop/models/warehouse/wh_customers.sql @@ -0,0 +1,52 @@ +WITH customers_ AS ( + SELECT * + FROM {{ ref('stg_customers') }} +) + +, orders_ AS ( + SELECT * + FROM {{ ref('stg_orders') }} +) + +, payments_ AS ( + SELECT * + FROM {{ ref('stg_payments') }} +) + +, customer_orders_ AS ( + SELECT + customer_id + , min(order_date) AS first_order + , max(order_date) AS most_recent_order + , count(order_id) AS number_of_orders + FROM orders_ + GROUP BY customer_id +) + +, customer_payments_ AS ( + SELECT + orders_.customer_id + , SUM(payments_.amount_aud) AS total_amount_aud + FROM payments_ + LEFT JOIN orders_ + ON payments_.order_id = orders_.order_id + GROUP BY orders_.customer_id +) + +, final_ AS ( + SELECT + customers_.customer_id + , customer_orders_.first_order + , customer_orders_.most_recent_order + , customer_orders_.number_of_orders + , customer_payments_.total_amount_aud AS total_order_amount_aud + FROM customers_ + LEFT JOIN customer_orders_ + ON customers_.customer_id = customer_orders_.customer_id + LEFT JOIN customer_payments_ + ON customers_.customer_id = customer_payments_.customer_id +) + + +SELECT * +FROM final_ diff --git a/jaffle_shop/models/warehouse/wh_orders.sql b/jaffle_shop/models/warehouse/wh_orders.sql new file mode 100644 index 000000000..5bfe656d4 --- /dev/null +++ b/jaffle_shop/models/warehouse/wh_orders.sql @@ -0,0 +1,47 @@ +{% set payment_methods = ['credit_card', 'coupon', 'bank_transfer', 'gift_card'] %} + +WITH orders_ AS ( + SELECT * + FROM {{ ref('stg_orders') }} +) + +, payments_ AS ( + SELECT * + FROM {{ ref('stg_payments') }} +) + +, order_payments_ AS ( + SELECT + order_id + {% for payment_method in payment_methods -%} + , SUM( + CASE + WHEN payment_method = '{{ payment_method }}' + THEN amount_aud + ELSE 0 + END + ) AS {{ payment_method }}_amount_aud + {% endfor -%} + , SUM(amount_aud) AS total_amount_aud + FROM payments_ + GROUP BY order_id +) + +, final_ AS ( + select + orders_.order_id + , orders_.customer_id + , orders_.order_date + , orders_.status + {% for payment_method in payment_methods -%} + , order_payments_.{{ payment_method }}_amount_aud + {% endfor -%} + , order_payments_.total_amount_aud + FROM orders_ + LEFT JOIN order_payments_ + ON orders_.order_id = order_payments_.order_id +) + + +SELECT * +FROM final_ diff --git a/jaffle_shop/package-lock.yml b/jaffle_shop/package-lock.yml new file mode 100644 index 000000000..01c2e19ec --- /dev/null +++ b/jaffle_shop/package-lock.yml @@ -0,0 +1,10 @@ +packages: +- package: dbt-labs/dbt_utils + version: 1.3.0 +- package: dbt-labs/spark_utils + version: 0.3.0 +- package: dbt-labs/codegen + version: 0.12.1 +- package: dbt-labs/dbt_project_evaluator + version: 0.14.3 +sha1_hash: 59adf0a667e307048209cbea5ef70e871d6ec49a diff --git a/packages.yml b/jaffle_shop/packages.yml similarity index 62% rename from packages.yml rename to jaffle_shop/packages.yml index 81ec273e5..60d125387 100644 --- a/packages.yml +++ b/jaffle_shop/packages.yml @@ -1,9 +1,9 @@ packages: - package: dbt-labs/dbt_utils - version: 0.8.6 + version: '>=0.8.6' - package: dbt-labs/spark_utils - version: 0.3.0 + version: '>=0.3.0' - package: dbt-labs/codegen - version: 0.7.0 + version: '>=0.7.0' - package: dbt-labs/dbt_project_evaluator - version: 0.1.3 \ No newline at end of file + version: '>=0.1.3' \ No newline at end of file diff --git a/jaffle_shop/seeds/_seeds.yml b/jaffle_shop/seeds/_seeds.yml new file mode 100644 index 000000000..1b228de69 --- /dev/null +++ b/jaffle_shop/seeds/_seeds.yml @@ -0,0 +1,6 @@ +version: 2 + +seeds: + - name: raw_customers + - name: raw_orders + - name: raw_payments \ No newline at end of file diff --git a/jaffle_shop/seeds/dbt_project_evaluator_exceptions.csv b/jaffle_shop/seeds/dbt_project_evaluator_exceptions.csv new file mode 100644 index 000000000..fa604d678 --- /dev/null +++ b/jaffle_shop/seeds/dbt_project_evaluator_exceptions.csv @@ -0,0 +1,2 @@ +fct_name,column_name,id_to_exclude,comment +fct_staging_dependent_on_staging,parent,stg_customers_pii,Scrubbing pii permitted in staging layer. diff --git a/selectors.yml b/jaffle_shop/selectors.yml similarity index 100% rename from selectors.yml rename to jaffle_shop/selectors.yml diff --git a/package_projects/dbt_project_evaluator.yml b/package_projects/dbt_project_evaluator.yml deleted file mode 100644 index 12e86f3e4..000000000 --- a/package_projects/dbt_project_evaluator.yml +++ /dev/null @@ -1,87 +0,0 @@ -name: 'dbt_project_evaluator' -version: '1.0.0' -config-version: 2 - -require-dbt-version: [">=1.1.0", "<2.0.0"] - -model-paths: ["models"] -analysis-paths: ["analysis"] -test-paths: ["tests"] -seed-paths: ["seeds"] -macro-paths: ["macros"] -snapshot-paths: ["snapshots"] - -target-path: "target" # directory which will store compiled SQL files -clean-targets: # directories to be removed by `dbt clean` - - "target" - - "dbt_packages" - -dispatch: - - macro_namespace: dbt_utils - search_order: ['dbt_project_evaluator', 'spark_utils', 'dbt_utils'] - -models: - dbt_project_evaluator: - marts: - core: - int_all_graph_resources: - +materialized: table - int_direct_relationships: - # required for BigQuery and Redshift for performance/memory reasons - +materialized: "{{ 'table' if target.type in ['bigquery', 'redshift', 'databricks'] else 'view' }}" - int_all_dag_relationships: - # required for BigQuery, Redshift, and Databricks for performance/memory reasons - +materialized: "{{ 'table' if target.type in ['bigquery', 'redshift', 'databricks'] else 'view' }}" - dag: - +materialized: table - staging: - graph: - stg_nodes: - +materialized: table - stg_node_relationships: - +materialized: table - variables: - stg_naming_convention_folders: - # required for Redshift because listagg runs only on tables - +materialized: "{{ 'table' if target.type == 'redshift' else 'view' }}" - stg_naming_convention_prefixes: - # required for Redshift because listagg runs only on tables - +materialized: "{{ 'table' if target.type == 'redshift' else 'view' }}" - - -vars: - - # -- Tests and docs coverage variables -- - documentation_coverage_target: 100 - test_coverage_target: 100 - - # -- DAG variables -- - models_fanout_threshold: 3 - - # -- Naming conventions variables -- - # to add a new "layer", update the variable list_layers - # and create new variables with the names _folder_name and/or _prefixes - model_types: ['staging', 'intermediate', 'warehouse', 'final', 'tests'] - - staging_folder_name: 'staging' - intermediate_folder_name: 'intermediate' - warehouse_folder_name: 'warehouse' - final_folder_name: 'final' - tests_folder_name: 'tests' - - staging_prefixes: ['stg_'] - intermediate_prefixes: ['inter_'] - warehouse_prefixes: ['wh_'] - final_prefixes: ['fnl_'] - tests_prefixes: ['test_'] - - # -- Performance variables -- - chained_views_threshold: 5 - - # -- Warehouse specific variables -- - max_depth_dag: 9 - -seeds: - dbt_project_evaluator: - dbt_project_evaluator_exceptions: - +enabled: false \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..7f15492a5 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,2 @@ +[tool.pytest.ini_options] +addopts = "--ignore=dbt_packages" diff --git a/testing/profiles.yml b/testing/profiles.yml index 1701dc714..02f88967c 100644 --- a/testing/profiles.yml +++ b/testing/profiles.yml @@ -2,9 +2,6 @@ jaffle_shop: target: jaffle_shop outputs: jaffle_shop: - type: databricks - host: "{{ env_var('DATABRICKS_HOST') }}" - token: "{{ env_var('DATABRICKS_TOKEN') }}" - schema: "{{ env_var('DATABRICKS_TARGET') }}" - http_path: "/sql/1.0/endpoints/{{ env_var('DATABRICKS_ENDPOINT') }}" - threads: 300 + type: duckdb + path: dbt.duckdb + threads: 10 diff --git a/workspace.ipynb b/workspace.ipynb new file mode 100644 index 000000000..51bf0cb6c --- /dev/null +++ b/workspace.ipynb @@ -0,0 +1,139 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "RendererRegistry.enable('png')" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import altair as alt\n", + "import duckdb\n", + "\n", + "alt.renderers.enable(\"png\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "c = duckdb.connect(\"dbt.duckdb\", read_only=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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XV7vxXjlh27w0Ic+lKue09Oe9jQe+tCHctWL7mlPexoPfehDuepf9rSnPY2HPvShPAAAsm3+h/qSL/kSfn/3wVz1onuX13sxXvmhGzz0oQ/lquf0tKc9jYc+9KFc9aJ72tOexkMf+lCu+pc97WlP46EPfSgPAIBsm/+hvuRLvoTf330wV73o3uX1XoxXfugGD33oQ7nqOT3taU/joQ99KFe96J72tKfx0Ic+lKv+ZU972tN46EMfygMAINvmf6gv+ZIv4fd3H8xVL7p3eb0X45UfusFDH/pQrnpOT3va03joQx/KVS+6pz3taTz0oQ/lqn/Z0572NB760IfyAADItvlPcOutt/I1X/M17O7u8l7v9V689mu/NgDf8z3fw0//9E/z4Ac/mM/6rM/i+PHjvCBf8iVfwu/vPpirXnTv8novxis/dIOHPvShXPWcnva0p/HQhz6Uq150T3va03joQx/KVf+ypz3taTz0oQ/lAQCQbfOf4KVf+qX56q/+al76pV+a137t1+a7v/u7ufXWW/nu7/5uvvu7v5vf/u3f5mu+5mv4rd/6LV6QL/mSL+H3dx/MVS+6d3m9F+OVH7rBQx/6UK56Tk972tN46EMfylUvuqc97Wk89KEP5ap/2dOe9jQe+tCH8gAAyLb5D7a7u8tP//RP897v/d4AfPRHfzSv/dqvzfHjx3nwgx/Mgx/8YACOHz/O7u4uL8iXfMmX8Pu7D+aqF927vN6L8coP3eChD30oVz2npz3taTz0oQ/lqhfd0572NB760Idy1b/saU97Gg996EN5AABk2/wn+uu//mve+q3fmr/+67/m+PHj3O+zP/uz2d3d5au/+qt5Qb7kS76E3999MFe96N7l9V6MV37oBg996EO56jk97WlP46EPfShXveie9rSn8dCHPpSr/mVPe9rTeOhDH8oDACDb5j/JX//1X/PWb/3W/PRP/zQv/dIvzf0+5mM+hosXL/Ld3/3d3O/3f//3+YM/+AOe2+/vPpirXnRv/LI38CYvdyNXXXXVf72HPvShPAAAsm3+E/z1X/817/3e7813f/d389Iv/dLc733e532wzXd/93fzL/mSL/kSfn/3wVz1onuX13sxXvmhGzz0oQ/lquf0tKc9jYc+9KFc9aJ72tOexkMf+lCu+pc97WlP46EPfSgPAIBsm/9gu7u7POQhD+G7v/u7OX78OAAPetCD+O7v/m5+5md+hq/+6q/mfq/1Wq/FC/IlX/Il/P7ug7nqRfcur/divPJDN3joQx/KVc/paU97Gg996EO56kX3tKc9jYc+9KFc9S972tOexkMf+lAeAADZNv/Bbr31Vr77u7+bB3rt135tbr31Vm699VYe6LM/+7N5Qb7kS76E3999MFe96N7l9V6MV37oBg996EO56jk97WlP46EPfShXveie9rSn8dCHPpSr/mVPe9rTeOhDH8oDACDb5n+oL/mSL+H3dx/MVS+6d3m9F+OVH7rBQx/6UK56Tk972tN46EMfylUvuqc97Wk89KEP5ap/2dOe9jQe+tCH8gAAyLb5H+pLvuRL+P3dB3PVi+5dXu/FeOWHbvDQhz6Uq57T0572NB760Idy1YvuaU97Gg996EO56l/2tKc9jYc+9KE8AACybf6H+pIv+RJ+f/fBXPWie5fXezFe+aEbPPShD+Wq5/S0pz2Nhz70oVz1onva057GQx/6UK76lz3taU/joQ99KA8AgGyb/6G+5Eu+hN/ffTBXveje5fVejFd+6AYPfehDueo5Pe1pT+OhD30oV73onva0p/HQhz6Uq/5lT3va03joQx/KAwAg2+Z/qC/5ki/h93cfzFUvund5vRfjlR+6wUMf+lCuek5Pe9rTeOhDH8pVL7qnPe1pPPShD+Wqf9nTnvY0HvrQh/IAAMi2+R/qS77kS/j93Qdz1YvuXV7vxXjlh27w0Ic+lKue09Oe9jQe+tCHctWL7mlPexoPfehDuepf9rSnPY2HPvShPAAAsm3+h/qSL/kSfn/3wVz1onuX13sxXvmhGzz0oQ/lquf0tKc9jYc+9KFc9aJ72tOexkMf+lCu+pc97WlP46EPfSgPAIBsm/+hvuRLvoTf330wV73o3uX1XoxXfugGD33oQ7nqOT3taU/joQ99KFe96J72tKfx0Ic+lKv+ZU972tN46EMfygMAINvmf6gv+ZIv4fd3H8xVL7p3eb0X45UfusFDH/pQrnpOT3va03joQx/KVS+6pz3taTz0oQ/lqn/Z0572NB760IfyAADItvkf6ku+5Ev4/d0Hc9WL7l1e78V45Ydu8NCHPpSrntPTnvY0HvrQh3LVi+5pT3saD33oQ7nqX/a0pz2Nhz70oTwAALJt/of6ki/5En5/98Fc9aJ7l9d7MV75oRs89KEP5arn9LSnPY2HPvShXPWie9rTnsZDH/pQrvqXPe1pT+OhD30oDwCAbJv/ob7kS76E3999MFe96N7l9V6MV37oBg996EO56jk97WlP46EPfShXveie9rSn8dCHPpSr/mVPe9rTeOhDH8oDACDb5n+oL/mSL+H3dx/MVS+6d3m9F+OVH7rBQx/6UK56Tk972tN46EMfylUvuqc97Wk89KEP5ap/2dOe9jQe+tCH8gAAyLb5H+pLvuRL+P3dB3PVi+5dXu/FeOWHbvDQhz6Uq57T0572NB760Idy1YvuaU97Gg996EO56l/2tKc9jYc+9KE8AACybf6H+pIv+RJ+f/fBXPWie5fXezFe+aEbPPShD+Wq5/S0pz2Nhz70oVz1onva057GQx/6UK76lz3taU/joQ99KA8AgGyb/6G+5Eu+hN/ffTBXveje5fVejFd+6AYPfehDueo5Pe1pT+OhD30oV73onva0p/HQhz6Uq/5lT3va03joQx/KAwAg2+Z/qC/5ki/h93cfzFUvund5vRfjlR+6wUMf+lCuek5Pe9rTeOhDH8pVL7qnPe1pPPShD+Wqf9nTnvY0HvrQh/IAAMi2+U9w66238jVf8zXs7u7yXu/1Xrz2a782AD/90z/N93zP9/DSL/3SfNRHfRTHjx/nBfmSL/kSfn/3wVz1onuX13sxXvmhGzz0oQ/lquf0tKc9jYc+9KFc9aJ72tOexkMf+lCu+pc97WlP46EPfSgPAIBsm/8EL/3SL81Xf/VX89Iv/dK89mu/Nt/93d8NwHu/93vz27/923z1V381u7u7fPVXfzUvyJd8yZfw+7sP5qoX3bu83ovxyg/d4KEPfShXPaenPe1pPPShD+WqF93TnvY0HvrQh3LVv+xpT3saD33oQ3kAAGTb/Afb3d3lp3/6p3nv935vAD76oz+a137t1+av//qvefCDH8x7v/d7A/CQhzyEpz/96bwgX/IlX8Lv7z6Yq1507/J6L8YrP3SDhz70oVz1nJ72tKfx0Ic+lKtedE972tN46EMfylX/sqc97Wk89KEP5QEAkG3zn+iv//qveeu3fmv++q//mo/+6I/mvd/7vXnt135tACRhmxfkS77kS/j93Qdz1YvuXV7vxXjlh27w0Ic+lKue09Oe9jQe+tCHctWL7mlPexoPfehDuepf9rSnPY2HPvShPAAAsm3+k/z1X/81b/3Wb81P//RP89Iv/dJ89Ed/NG/91m/Na7/2awMgCdsA/P7v/z5/8Ad/wHP7/d0Hc9WL7o1f9gbe5OVu5Kqrrvqv99CHPpQHAEC2zX+Cv/7rv+a93/u9+e7v/m5e+qVfGoDP/uzP5sEPfjDv/d7vze7uLi/90i/NrbfeygvyJV/yJfz+7oO56kX3Lq/3YrzyQzd46EMfylXP6WlPexoPfehDuepF97SnPY2HPvShXPUve9rTnsZDH/pQHgAA2Tb/wXZ3d3nIQx7Cd3/3d3P8+HEAHvSgBwHwNm/zNnzXd30X3/M938OxY8f47M/+bF6QL/mSL+H3dx/MVS+6d3m9F+OVH7rBQx/6UK56Tk972tN46EMfylUvuqc97Wk89KEP5ap/2dOe9jQe+tCH8gAAyLb5D3brrbfy3d/93TzQa7/2a/Par/3a/PZv/za//du/zfHjx/noj/5oXpgv+ZIv4fd3H8xVL7p3eb0X45UfusFDH/pQrnpOT3va03joQx/KVS+6pz3taTz0oQ/lqn/Z0572NB760IfyAADItvkf6ku+5Ev4/d0Hc9WL7l1e78V45Ydu8NCHPpSrntPTnvY0HvrQh3LVi+5pT3saD33oQ7nqX/a0pz2Nhz70oTwAALJt/of6ki/5En5/98Fc9aJ7l9d7MV75oRs89KEP5arn9LSnPY2HPvShXPWie9rTnsZDH/pQrvqXPe1pT+OhD30oDwCAbJv/ob7kS76E3999MFe96N7l9V6MV37oBg996EO56jk97WlP46EPfShXveie9rSn8dCHPpSr/mVPe9rTeOhDH8oDACDb5n+oL/mSL+H3dx/MVS+6d3m9F+OVH7rBQx/6UK56Tk972tN46EMfylUvuqc97Wk89KEP5ap/2dOe9jQe+tCH8gAAyLb5H+pLvuRL+P3dB3PVi+5dXu/FeOWHbvDQhz6Uq57T0572NB760Idy1YvuaU97Gg996EO56l/2tKc9jYc+9KE8AACybf6H+pIv+RJ+f/fBXPWie5fXezFe+aEbPPShD+Wq5/S0pz2Nhz70oVz1onva057GQx/6UK76lz3taU/joQ99KA8AgGyb/6G+5Eu+hN/ffTBXveje5fVejFd+6AYPfehDueo5Pe1pT+OhD30oV73onva0p/HQhz6Uq/5lT3va03joQx/KAwAg2+Z/qC/5ki/h93cfzFUvund5vRfjlR+6wUMf+lCuek5Pe9rTeOhDH8pVL7qnPe1pPPShD+Wqf9nTnvY0HvrQh/IAAMi2+R/qS77kS/j93Qdz1YvuXV7vxXjlh27w0Ic+lKue09Oe9jQe+tCHctWL7mlPexoPfehDuepf9rSnPY2HPvShPAAAsm3+h/qSL/kSfn/3wVz1onuX13sxXvmhGzz0oQ/lquf0tKc9jYc+9KFc9aJ72tOexkMf+lCu+pc97WlP46EPfSgPAIBsm/+hvuRLvoTf330wV73o3uX1XoxXfugGD33oQ7nqOT3taU/joQ99KFe96J72tKfx0Ic+lKv+ZU972tN46EMfygMAINvmf6gv+ZIv4fd3H8xVL7p3eb0X45UfusFDH/pQrnpOT3va03joQx/KVS+6pz3taTz0oQ/lqn/Z0572NB760IfyAADItvkf6ku+5Ev4/d0Hc9WL7l1e78V45Ydu8NCHPpSrntPTnvY0HvrQh3LVi+5pT3saD33oQ7nqX/a0pz2Nhz70oTwAALJt/of6ki/5En5/98Fc9aJ7l9d7MV75oRs89KEP5arn9LSnPY2HPvShXPWie9rTnsZDH/pQrvqXPe1pT+OhD30oDwCAbJv/ob7kS76E3999MFe96N7l9V6MV37oBg996EO56jk97WlP46EPfShXveie9rSn8dCHPpSr/mVPe9rTeOhDH8oDACDb5n+oL/mSL+H3dx/MVS+6d3m9F+OVH7rBQx/6UK56Tk972tN46EMfylUvuqc97Wk89KEP5ap/2dOe9jQe+tCH8gAAyLb5H+pLvuRL+P3dB3PVi+5dXu/FeOWHbvDQhz6Uq57T0572NB760Idy1YvuaU97Gg996EO56l/2tKc9jYc+9KE8AACybf4TffZnfzaf/dmfzf1++qd/mu/5nu/htV/7tXmv93ovjh8/zgvyJV/yJfz+7oO56kX3Lq/3YrzyQzd46EMfylXP6WlPexoPfehDuepF97SnPY2HPvShXPUve9rTnsZDH/pQHgAA2Tb/ST7mYz6Gr/7qr8Y2AH/913/NR3/0R/PTP/3TfPd3fzd//dd/zXd/93fzgnzJl3wJv7/7YK560b3L670Yr/zQDR760Idy1XN62tOexkMf+lCuetE97WlP46EPfShX/cue9rSn8dCHPpQHAEC2zX+Cr/7qrwbgp3/6p/nt3/5tAH77t3+b7/7u7+a7v/u7+emf/mm++7u/m5/+6Z/mBfmSL/kSfn/3wVz1onuX13sxXvmhGzz0oQ/lquf0tKc9jYc+9KFc9aJ72tOexkMf+lCu+pc97WlP46EPfSgPAIBsm/9Er/3ar81v//Zvc7/XeZ3XAeDWW2/lu77ru3jt135tXpAv+ZIv4fd3H8xVL7p3eb0X45UfusFDH/pQrnpOT3va03joQx/KVS+6pz3taTz0oQ/lqn/Z0572NB760IfyAADItvlP9Nqv/dr89m//NgDf/d3fzW//9m/z3d/93fz2b/82n/M5n8Nv/dZvAfD7v//7/MEf/AHP7fd3H8xVL7o3ftkbAPjlv7yLq57tjV/2BgB++S/v4qoX3dd8wCtw1YvuoQ99KA8AgGyb/0Sv/dqvzW//9m8D8NEf/dG89Vu/Na/92q8NwEMe8hCe/vSn84J8yZd8Cb+/+2CuetG9y+u9GBcvXuSX//Iurnq2d3m9F+PixYv88l/exVUvuq/5gFfgoQ99KFf9y572tKfx0Ic+lAcAQLbNf6LXfu3X5rd/+7cB+Omf/mm+53u+h8/6rM/id37nd/ipn/opfvu3f5sX5Eu+5Ev4/d0Hc9WL7l1e78W4ePEiv/yXd3HVs73L670YFy9e5Jf/8i6uetF9zQe8Ag996EO56l/2tKc9jYc+9KE8AACybf4Tffd3fzfv/d7vzf1++qd/mr/+67/m+PHjvPd7vzfHjx/nBfmSL/kSfn/3wVz1onuX13sxLl68yC//5V1c9Wzv8novxsWLF/nlv7yLq150X/MBr8BDH/pQrvqXPe1pT+OhD30oDwCAbJv/ob7kS76E3999MFe96N7l9V6Mixcv8st/eRdXPdu7vN6LcfHiRX75L+/iqhfd13zAK/DQhz6Uq/5lT3va03joQx/KAwAg2+Z/qC/5ki/h93cfzFUvund5vRfj4sWL/PJf3sVVz/Yur/diXLx4kV/+y7u46kX3NR/wCjz0oQ/lqn/Z0572NB760IfyAADItvkf6ku+5Ev4/d0Hc9WL7l1e78W4ePEiv/yXd3HVs73L670YFy9e5Jf/8i6uetF9zQe8Ag996EO56l/2tKc9jYc+9KE8AACybf6H+pIv+RJ+f/fBXPWie5fXezEuXrzIL//lXVz1bO/yei/GxYsX+eW/vIurXnRf8wGvwEMf+lCu+pc97WlP46EPfSgPAIBsm/+hvuRLvoTf330wV73o3uX1XoyLFy/yy395F1c927u83otx8eJFfvkv7+KqF93XfMAr8NCHPpSr/mVPe9rTeOhDH8oDACDb5n+oL/mSL+H3dx/MVS+6d3m9F+PixYv88l/exVXP9i6v92JcvHiRX/7Lu7jqRfc1H/AKPPShD+Wqf9nTnvY0HvrQh/IAAMi2+R/qS77kS/j93Qdz1YvuXV7vxbh48SK//Jd3cdWzvcvrvRgXL17kl//yLq560X3NB7wCD33oQ7nqX/a0pz2Nhz70oTwAALJt/of6ki/5En5/98Fc9aJ7l9d7MS5evMgv/+VdXPVs7/J6L8bFixf55b+8i6tedF/zAa/AQx/6UK76lz3taU/joQ99KA8AgGyb/6G+5Eu+hN/ffTBXveje5fVejIsXL/LLf3kXVz3bu7zei3Hx4kV++S/v4qoX3dd8wCvw0Ic+lKv+ZU972tN46EMfygMAINvmf6gv+ZIv4fd3H8xVL7p3eb0X4+LFi/zyX97FVc/2Lq/3Yly8eJFf/su7uOpF9zUf8Ao89KEP5ap/2dOe9jQe+tCH8gAAyLb5H+pLvuRL+P3dB3PVi+5dXu/FuHjxIr/8l3dx1bO9y+u9GBcvXuSX//IurnrRfc0HvAIPfehDuepf9rSnPY2HPvShPAAAsm3+h/qSL/kSfn/3wVz1onuX13sxLl68yC//5V1c9Wzv8novxsWLF/nlv7yLq150X/MBr8BDH/pQrvqXPe1pT+OhD30oDwCAbJv/ob7kS76E3999MFe96N7l9V6Mixcv8st/eRdXPdu7vN6LcfHiRX75L+/iqhfd13zAK/DQhz6Uq/5lT3va03joQx/KAwAg2+Z/qC/5ki/h93cfzFUvund5vRfj4sWL/PJf3sVVz/Yur/diXLx4kV/+y7u46kX3NR/wCjz0oQ/lqn/Z0572NB760IfyAADItvkf6ku+5Ev4/d0Hc9WL7l1e78W4ePEiv/yXd3HVs73L670YFy9e5Jf/8i6uetF9zQe8Ag996EO56l/2tKc9jYc+9KE8AACybf6Vfud3fofXeq3X4j/bl3zJl/D7uw/mqhfdu7zei3Hx4kV++S/v4qpne5fXezEuXrzIL//lXVz1ovuaD3gFHvrQh3LVv+xpT3saD33oQ3kAAGTbvAhe53Veh+/6ru/icz7nc/ju7/5uXvqlX5rf+q3f4vjx4/xn+ZIv+RJ+f/fBXPWie5fXezEuXrzIL//lXVz1bO/yei/GxYsX+eW/vIurXnRf8wGvwEMf+lCu+pc97WlP46EPfSgPAIBsm3/Bd3/3d/PRH/3R/PZv/zYv8zIvw0d91Efx0z/903z0R380H/3RH80L89mf/dl89md/Nvf767/+a77ma76G48eP81mf9VkcP36cF+RLvuRL+P3dB3PVi+5dXu/FuHjxIr/8l3dx1bO9y+u9GBcvXuSX//IurnrRfc0HvAIPfehDuepf9rSnPY2HPvShPAAAsm3+BZ/92Z/Nb//2b/Pe7/3evM/7vA9/9Vd/xXd/93dz/PhxPvuzP5sX5GM+5mP46q/+amwDcOutt/LWb/3W/PZv/za//du/zXd/93fz0z/907wgX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAVeOhDH8pV/7KnPe1pPPShD+UBAJBt8y/46Z/+aT7mYz6G48ePc/HiRb77u7+bt3mbt+GrvuqreO/3fm+en6/+6q8G4Kd/+qf57d/+bQA++7M/mwc/+MG89Vu/NcePH+fWW2/lwQ9+MC/Il3zJl/D7uw/mqhfdu7zei3Hx4kV++S/v4qpne5fXezEuXrzIL//lXVz1ovuaD3gFHvrQh3LVv+xpT3saD33oQ3kAAGTbvAje+73fm7/+67/msz/7swH46q/+an77t3+bf8lrv/Zr89u//dsAvPd7vzfPeMYzsM2tt97KZ3/2Z/Pe7/3evCBf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zL/jt3/5tfuZnfoav+qqv4l/rtV/7tfnt3/5tAN76rd+al37pl+azP/uz2d3d5SEPeQgXL14E4Pd///f5gz/4A57b7+8+mKtedG/8sjcA8Mt/eRdXPdsbv+wNAPzyX97FVS+6r/mAV+CqF91DH/pQHgAA2Tb/gq/+6q/mYz7mY7DNv9Zrv/Zr89u//dsAfPZnfzYv/dIvzVu/9VsDIAnbvCBf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zL7j11lt5mZd5GR784Afz2q/92hw/fhyA13qt1+K1X/u1eWFe+7Vfm9/+7d8G4NZbb+Vt3uZt+Kmf+il+5md+hr/6q7/iu7/7u3lBvuRLvoTf330wV73o3uX1XoyLFy/yy395F1c927u83otx8eJFfvkv7+KqF93XfMAr8NCHPpSr/mVPe9rTeOhDH8oDACDb5l/w27/927zO67wOz+2zPuuz+OzP/mxemO/+7u/mvd/7vbnfX//1X/PTP/3THD9+nPd+7/fm+PHjvCBf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zP9SXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAUe+tCHctW/7GlPexoPfehDeQAAZNu8CH77t3+br/mar+Gv//qv+amf+in++q//mvd+7/fmP9OXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAUe+tCHctW/7GlPexoPfehDeQAAZNv8C2699VZe5mVehpd6qZfid37nd/ipn/op3uZt3obf+q3f4rVf+7X5z/IlX/Il/P7ug7nqRfcur/diXLx4kV/+y7u46tne5fVejIsXL/LLf3kXV73ovuYDXoGHPvShXPUve9rTnsZDH/pQHgAA2Tb/gq/+6q/mu7/7u/nrv/5rJGGb137t1+a1X/u1+ezP/mz+s3zJl3wJv7/7YK560b3L670YFy9e5Jf/8i6uerZ3eb0X4+LFi/zyX97FVS+6r/mAV+ChD30oV/3Lnva0p/HQhz6UBwBAts2/4Kd/+qd5n/d5H777u7+bt37rt+anf/qnee/3fm++67u+i7d+67fmP8uXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAUe+tCHctW/7GlPexoPfehDeQAAZNu8CF77tV+b3/md3+F+L/VSL8Vf//Vf85/pS77kS/j93Qdz1YvuXV7vxbh48SK//Jd3cdWzvcvrvRgXL17kl//yLq560X3NB7wCD33oQ7nqX/a0pz2Nhz70oTwAALJtXkS//du/zV//9V/z0i/90rz2a782/9m+5Eu+hN/ffTBXveje5fVejIsXL/LLf3kXVz3bu7zei3Hx4kV++S/v4qoX3dd8wCvw0Ic+lKv+ZU972tN46EMfygMAINvmRfDbv/3b/M7v/A4P9Fqv9Vq89mu/Nv9ZvuRLvoTf330wV73o3uX1XoyLFy/yy395F1c927u83otx8eJFfvkv7+KqF93XfMAr8NCHPpSr/mVPe9rTeOhDH8oDACDb5l/w27/927zO67wOz+2zPuuz+OzP/mz+s3zJl3wJv7/7YK560b3L670YFy9e5Jf/8i6uerZ3eb0X4+LFi/zyX97FVS+6r/mAV+ChD30oV/3Lnva0p/HQhz6UBwBAts2/4LM/+7P56Z/+af76r/+a/0pf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zL7j11lt57dd+bX76p3+al37pl+a/ypd8yZfw+7sP5qoX3bu83otx8eJFfvkv7+KqZ3uX13sxLl68yC//5V1c9aL7mg94BR760Idy1b/saU97Gg996EN5AABk2/wLbr31Vl7ndV6HW2+9lQf6rM/6LD77sz+b/yxf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zL/jsz/5svvqrv5qP/uiP5oFe+7Vfm9d+7dfmP8uXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAUe+tCHctW/7GlPexoPfehDeQAAZNv8C/76r/+a93mf9+Gv/uqv+K/0JV/yJfz+7oO56kX3Lq/3Yly8eJFf/su7uOrZ3uX1XoyLFy/yy395F1e96L7mA16Bhz70oVz1L3va057GQx/6UB4AANk2/4Jbb72V13md1+H48eMcP36c+73Xe70X7/3e781/li/5ki/h93cfzFUvund5vRfj4sWL/PJf3sVVz/Yur/diXLx4kV/+y7u46kX3NR/wCjz0oQ/lqn/Z0572NB760IfyAADItvkX/PZv/zav8zqvw3P7rM/6LD77sz+b/yxf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zP9SXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAUe+tCHctW/7GlPexoPfehDeQAAZNu8CH76p3+aj/mYj+HWW2/lwQ9+MF/1VV/FW7/1W/Mv+ezP/mw++7M/m+f2Pu/zPnzXd30XL8yXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAUe+tCHctW/7GlPexoPfehDeQAAZNv8C2699VZe5mVehpd6qZfitV/7tfnt3/5tfud3foenP/3pPPjBD+YF+ZiP+Ri++qu/Gts80Gd/9mfz1V/91ezu7vLCfMmXfAm/v/tgrnrRvcvrvRgXL17kl//yLq56tnd5vRfj4sWL/PJf3sVVL7qv+YBX4KEPfShX/cue9rSn8dCHPpQHAEC2zb/gu7/7u/nsz/5sbr31Vu730i/90rz3e783H/3RH83z89Vf/dUA/PRP/zS//du/zf3++q//ms/+7M9md3eX3/7t3+aF+ZIv+RJ+f/fBXPWie5fXezEuXrzIL//lXVz1bO/yei/GxYsX+eW/vIurXnRf8wGvwEMf+lCu+pc97WlP46EPfSgPAIBsm3/BV3/1V/M1X/M1/NVf/RXHjx9nd3eXl3mZl+GjPuqj+OiP/mhemNd+7dfmt3/7twHY3d3lrd/6rfnpn/5p3vqt35rf/u3f5oX5ki/5En5/98Fc9aJ7l9d7MS5evMgv/+VdXPVs7/J6L8bFixf55b+8i6tedF/zAa/AQx/6UK76lz3taU/joQ99KA8AgGybf8Hu7i4PfvCDkcRLv/RLc+utt3Lx4kX++q//mgc/+MG8MK/92q/Nb//2bwPw0R/90bz1W781r/3ar81rv/Zr89u//dvc7/d///f5gz/4A57b7+8+mKtedG/8sjcA8Mt/eRdXPdsbv+wNAPzyX97FVS+6r/mAV+CqF91DH/pQHgAA2TYvgr/+67/mq7/6q7n11ls5fvw4n/3Zn81Lv/RL8y957dd+bX77t38bgNd+7dfmfn/913/NS7/0S/Pbv/3bvCBf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zL7j11lv5nu/5Hj7rsz6L+333d383L/3SL81Lv/RL88K89mu/Nr/927/Nc3vt135tfvu3f5sX5ku+5Ev4/d0Hc9WL7l1e78W4ePEiv/yXd3HVs73L670YFy9e5Jf/8i6uetF9zQe8Ag996EO56l/2tKc9jYc+9KE8AACybV6AW2+9le/5nu/h1ltv5bu/+7v57M/+bO733d/93bzXe70Xn/3Zn80L893f/d2893u/N8/tu7/7u3nv935vXpgv+ZIv4fd3H8xVL7p3eb0X4+LFi/zyX97FVc/2Lq/3Yly8eJFf/su7uOpF9zUf8Ao89KEP5ap/2dOe9jQe+tCH8gAAyLZ5IV77tV+b3/md3+H5+a3f+i1e+7Vfm/8sX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAVeOhDH8pV/7KnPe1pPPShD+UBAJBt8y/467/+az76oz+a3/7t3+a/0pd8yZfw+7sP5qoX3bu83otx8eJFfvkv7+KqZ3uX13sxLl68yC//5V1c9aL7mg94BR760Idy1b/saU97Gg996EN5AABk27wIbr31Vh784Adz66238j3f8z281mu9Fq/92q/Nf6Yv+ZIv4fd3H8xVL7p3eb0X4+LFi/zyX97FVc/2Lq/3Yly8eJFf/su7uOpF9zUf8Ao89KEP5ap/2dOe9jQe+tCH8gAAyLb5F9x66628zMu8DD/1Uz/F+7zP+3DrrbcC8PSnP50HP/jB/Gf5ki/5En5/98Fc9aJ7l9d7MS5evMgv/+VdXPVs7/J6L8bFixf55b+8i6tedF/zAa/AQx/6UK76lz3taU/joQ99KA8AgGybf8FXf/VX893f/d189Vd/Na/zOq/Dd33Xd/HTP/3TvPRLvzSf/dmfzX+WL/mSL+H3dx/MVS+6d3m9F+PixYv88l/exVXP9i6v92JcvHiRX/7Lu7jqRfc1H/AKPPShD+Wqf9nTnvY0HvrQh/IAAMi2+Rd89md/Nr/927/NW7/1W/MxH/MxXLx4kY/+6I/mwQ9+MJ/92Z/Nf5Yv+ZIv4fd3H8xVL7p3eb0X4+LFi/zyX97FVc/2Lq/3Yly8eJFf/su7uOpF9zUf8Ao89KEP5ap/2dOe9jQe+tCH8gAAyLb5F/z1X/81L/MyL8Px48d5qZd6Kd77vd+b93mf9+Gv/uqveOmXfmn+s3zJl3wJv7/7YK560b3L670YFy9e5Jf/8i6uerZ3eb0X4+LFi/zyX97FVS+6r/mAV+ChD30oV/3Lnva0p/HQhz6UBwBAts2L4Kd/+qf567/+az76oz+aW2+9lb/+67/mvd/7vfnP9CVf8iX8/u6DuepF9y6v92JcvHiRX/7Lu7jq2d7l9V6Mixcv8st/eRdXvei+5gNegYc+9KFc9S972tOexkMf+lAeAADZNv+C3d1d/uZv/obn9qAHPYgHP/jB/Gf5ki/5En5/98Fc9aJ7l9d7MS5evMgv/+VdXPVs7/J6L8bFixf55b+8i6tedF/zAa/AQx/6UK76lz3taU/joQ99KA8AgGybf8Fv//Zv8zqv8zo8t8/6rM/isz/7s/nP8iVf8iX8/u6DuepF9y6v92JcvHiRX/7Lu7jq2d7l9V6Mixcv8st/eRdXvei+5gNegYc+9KFc9S972tOexkMf+lAeAADZNv+C3d1d/vqv/5r7/fVf/zVf/dVfzW//9m/z4Ac/mP8sX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAVeOhDH8pV/7KnPe1pPPShD+UBAJBt82/w2q/92rz3e7837/3e781/li/5ki/h93cfzFUvund5vRfj4sWL/PJf3sVVz/Yur/diXLx4kV/+y7u46kX3NR/wCjz0oQ/lqn/Z0572NB760IfyAADItvkX3HrrrXzP93wP99vd3eW7v/u7+azP+iw++qM/mv8sX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAVeOhDH8pV/7KnPe1pPPShD+UBAJBt8y/47d/+bV7ndV6HB3qt13otfvqnf5rjx4/zn+VLvuRL+P3dB3PVi+5dXu/FuHjxIr/8l3dx1bO9y+u9GBcvXuSX//IurnrRfc0HvAIPfehDuepf9rSnPY2HPvShPAAAsm3+h/qSL/kSfn/3wVz1onuX13sxLl68yC//5V1c9Wzv8novxsWLF/nlv7yLq150X/MBr8BDH/pQrvqXPe1pT+OhD30oDwCAbJsXwXd/93cD8N7v/d589Ed/NA95yEP4qI/6KP4zfcmXfAm/v/tgrnrRvcvrvRgXL17kl//yLq56tnd5vRfj4sWL/PJf3sVVL7qv+YBX4KEPfShX/cue9rSn8dCHPpQHAEC2zb/gr//6r3mZl3kZvuu7vov3fu/35rM/+7P5nM/5HH7rt36L137t1+Y/y5d8yZfw+7sP5qoX3bu83otx8eJFfvkv7+KqZ3uX13sxLl68yC//5V1c9aL7mg94BR760Idy1b/saU97Gg996EN5AABk2/wLPvuzP5vf/u3f5rd/+7e532u/9mvz2q/92nz2Z382L8xnf/Zn89mf/dnc73u+53v46Z/+aR784AfzWZ/1WRw/fpwX5Eu+5Ev4/d0Hc9WL7l1e78W4ePEiv/yXd3HVs73L670YFy9e5Jf/8i6uetF9zQe8Ag996EO56l/2tKc9jYc+9KE8AACybf4FP/3TP837vM/78N3f/d086EEP4hnPeAbv/d7vzVd91Vfx3u/93rwgH/MxH8NXf/VXYxuAn/7pn+a7v/u7+e7v/m5++7d/m6/5mq/ht37rt3hBvuRLvoTf330wV73o3uX1XoyLFy/yy395F1c927u83otx8eJFfvkv7+KqF93XfMAr8NCHPpSr/mVPe9rTeOhDH8oDACDb5kXw2q/92vzO7/wO93upl3op/vqv/5oX5Ku/+qsB+Omf/ml++7d/G4Df/u3f5sEPfjAPfvCDATh+/Di7u7u8IF/yJV/C7+8+mKtedO/yei/GxYsX+eW/vIurnu1dXu/FuHjxIr/8l3dx1Yvuaz7gFXjoQx/KVf+ypz3taTz0oQ/lAQCQbfMi+u3f/m3++q//mpd+6ZfmtV/7tQG49dZbAXjwgx/M8/Par/3a/PZv/zbP7bM/+7PZ3d3lq7/6q3lBvuRLvoTf330wV73o3uX1XoyLFy/yy395F1c927u83otx8eJFfvkv7+KqF93XfMAr8NCHPpSr/mVPe9rTeOhDH8oDACDb5t/hsz/7swH47M/+bJ6f137t1+a3f/u3eaCP+ZiP4eLFi3z3d3839/v93/99/uAP/oDn9vu7D+aqF90bv+wNAPzyX97FVc/2xi97AwC//Jd3cdWL7ms+4BW46kX30Ic+lAcAQLbNv8Nnf/ZnA/DZn/3ZPD+v/dqvzW//9m9zv/d5n/fBNt/93d/Nv+RLvuRL+P3dB3PVi+5dXu/FuHjxIr/8l3dx1bO9y+u9GBcvXuSX//IurnrRfc0HvAIPfehDuepf9rSnPY2HPvShPAAAsm3+HT77sz8bgM/+7M/m+Xnt135tfvu3fxuAz/7sz+ZnfuZn+Oqv/mru91qv9Vq8IF/yJV/C7+8+mKtedO/yei/GxYsX+eW/vIurnu1dXu/FuHjxIr/8l3dx1Yvuaz7gFXjoQx/KVf+ypz3taTz0oQ/lAQCQbfPv8Nmf/dkAfPZnfzbPz3d/93fz3u/93gB893d/N7feeisP9Nmf/dm8IF/yJV/C7+8+mKtedO/yei/GxYsX+eW/vIurnu1dXu/FuHjxIr/8l3dx1Yvuaz7gFXjoQx/KVf+ypz3taTz0oQ/lAQCQbfPv8Nmf/dkAfPZnfzb/0b7kS76E3999MFe96N7l9V6Mixcv8st/eRdXPdu7vN6LcfHiRX75L+/iqhfd13zAK/DQhz6Uq/5lT3va03joQx/KAwAg2+bf4bM/+7MB+OzP/mz+o33Jl3wJv7/7YK560b3L670YFy9e5Jf/8i6uerZ3eb0X4+LFi/zyX97FVS+6r/mAV+ChD30oV/3Lnva0p/HQhz6UBwBAts2/4Ld/+7f5mq/5Gt76rd+at3qrt+L48eP8V/iSL/kSfn/3wVz1onuX13sxLl68yC//5V1c9Wzv8novxsWLF/nlv7yLq150X/MBr8BDH/pQrvqXPe1pT+OhD30oDwCAbJt/wa233sp7v/d78zu/8zsAvPZrvzZv/dZvzVu91Vvx4Ac/mP8sX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAVeOhDH8pV/7KnPe1pPPShD+UBAJBt8yLa3d3lq7/6q/mar/kadnd3+azP+iw++7M/m/8sX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAVeOhDH8pV/7KnPe1pPPShD+UBAJBt8y+49dZb+ZiP+Rh++7d/m93dXV7qpV6K137t1+ajP/qjefCDH8x/li/5ki/h93cfzFUvund5vRfj4sWL/PJf3sVVz/Yur/diXLx4kV/+y7u46kX3NR/wCjz0oQ/lqn/Z0572NB760IfyAADItvkX/PZv/zav8zqvA8BHf/RH89Zv/da81mu9Fv/ZvuRLvoTf330wV73o3uX1XoyLFy/yy395F1c927u83otx8eJFfvkv7+KqF93XfMAr8NCHPpSr/mVPe9rTeOhDH8oDACDb5kXw13/91/z0T/80v/3bv83v/M7vAPBd3/VdvPd7vzf/Wb7kS76E3999MFe96N7l9V6Mixcv8st/eRdXPdu7vN6LcfHiRX75L+/iqhfd13zAK/DQhz6Uq/5lT3va03joQx/KAwAg2+ZF8Nd//df8zu/8Dj/90z/Nb//2b3Ps2DG++qu/mvd+7/fmP8uXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAUe+tCHctW/7GlPexoPfehDeQAAZNv8C377t3+b13md1+HYsWO89Vu/NW/91m/NW7/1W/Of7Uu+5Ev4/d0Hc9WL7l1e78W4ePEiv/yXd3HVs73L670YFy9e5Jf/8i6uetF9zQe8Ag996EO56l/2tKc9jYc+9KE8AACybf4Ft956K7feeiuv/dqvzX+lL/mSL+H3dx/MVS+6d3m9F+PixYv88l/exVXP9i6v92JcvHiRX/7Lu7jqRfc1H/AKPPShD+Wqf9nTnvY0HvrQh/IAAMi2eRH89E//NJ/zOZ/DX//1X/Nbv/Vb/MzP/Axf9VVfxX+mL/mSL+H3dx/MVS+6d3m9F+PixYv88l/exVXP9i6v92JcvHiRX/7Lu7jqRfc1H/AKPPShD+Wqf9nTnvY0HvrQh/IAAMi2+RfceuutPOQhD+G93uu9+J7v+R5+67d+i9d5ndfhp37qp3jrt35r/rN8yZd8Cb+/+2CuetG9y+u9GBcvXuSX//Iurnq2d3m9F+PixYv88l/exVUvuq/5gFfgoQ99KFf9y572tKfx0Ic+lAcAQLbNv+Crv/qr+emf/ml++7d/G0nY5rVf+7V57dd+bT77sz+b/yxf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zL/jpn/5p3ud93oev/uqv5r3f+7356Z/+ad77vd+b7/qu7+Kt3/qt+c/yJV/yJfz+7oO56kX3Lq/3Yly8eJFf/su7uOrZ3uX1XoyLFy/yy395F1e96L7mA16Bhz70oVz1L3va057GQx/6UB4AANk2L4L3fu/35nu+53u431u91Vvx0z/90/xn+pIv+RJ+f/fBXPWie5fXezEuXrzIL//lXVz1bO/yei/GxYsX+eW/vIurXnRf8wGvwEMf+lCu+pc97WlP46EPfSgPAIBsmxfRX//1X7O7u8vx48d56Zd+af6zfcmXfAm/v/tgrnrRvcvrvRgXL17kl//yLq56tnd5vRfj4sWL/PJf3sVVL7qv+YBX4KEPfShX/cue9rSn8dCHPpQHAEC2zYvge77ne7j11lt5oNd6rdfitV/7tXlhPvuzP5vP/uzP5n4//dM/zfd8z/fw0i/90nzUR30Ux48f5wX5ki/5En5/98Fc9aJ7l9d7MS5evMgv/+VdXPVs7/J6L8bFixf55b+8i6tedF/zAa/AQx/6UK76lz3taU/joQ99KA8AgGybf8Fv//Zv8zqv8zo8t8/6rM/isz/7s3lBPuZjPoav/uqvxjYAf/3Xf817v/d789u//dt89Vd/Nbu7u3z1V381L8iXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAUe+tCHctW/7GlPexoPfehDeQAAZNv8C776q7+a7/7u7+av//qveVF99Vd/NQA//dM/zW//9m8D8Nmf/dk8+MEP5r3f+70BeMhDHsLTn/50XpAv+ZIv4fd3H8xVL7p3eb0X4+LFi/zyX97FVc/2Lq/3Yly8eJFf/su7uOpF9zUf8Ao89KEP5ap/2dOe9jQe+tCH8gAAyLb5F9x666289Vu/Nb/927/N8ePH+dd47dd+bX77t38bgPd+7/fmvd/7vXnt135tACRhmxfkS77kS/j93Qdz1YvuXV7vxbh48SK//Jd3cdWzvcvrvRgXL17kl//yLq560X3NB7wCD33oQ7nqX/a0pz2Nhz70oTwAALJt/gV//dd/zdu8zdtw66238kCf9VmfxWd/9mfzwrz2a782v/3bvw3AR3/0R/PWb/3WvPZrvzYAkrANwO///u/zB3/wBzy33999MFe96N74ZW8A4Jf/8i6uerY3ftkbAPjlv7yLq150X/MBr8BVL7qHPvShPAAAsm3+BX/913/NR3/0R/Pc3vu935v3fu/35oV57dd+bX77t38bgM/+7M/mwQ9+MO/93u/N7u4uL/3SL82tt97KC/IlX/Il/P7ug7nqRfcur/diXLx4kV/+y7u46tne5fVejIsXL/LLf3kXV73ovuYDXoGHPvShXPUve9rTnsZDH/pQHgAA2Tb/Dt/93d8NwHu/93vz/Lz2a782v/3bvw3Arbfeytu8zdvwXd/1XXzP93wPx44d47M/+7N5Qb7kS76E3999MFe96N7l9V6Mixcv8st/eRdXPdu7vN6LcfHiRX75L+/iqhfd13zAK/DQhz6Uq/5lT3va03joQx/KAwAg2+bf4bM/+7MB+OzP/myen+/+7u/mvd/7vbnfb//2b/Pbv/3bHD9+nI/+6I/mhfmSL/kSfn/3wVz1onuX13sxLl68yC//5V1c9Wzv8novxsWLF/nlv7yLq150X/MBr8BDH/pQrvqXPe1pT+OhD30oDwCAbJt/h8/+7M8G4LM/+7P5j/YlX/Il/P7ug7nqRfcur/diXLx4kV/+y7u46tne5fVejIsXL/LLf3kXV73ovuYDXoGHPvShXPUve9rTnsZDH/pQHgAA2Tb/Dp/92Z8NwGd/9mfzH+1LvuRL+P3dB3PVi+5dXu/FuHjxIr/8l3dx1bO9y+u9GBcvXuSX//IurnrRfc0HvAIPfehDuepf9rSnPY2HPvShPAAAsm3+HT77sz8bgM/+7M/mP9qXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAUe+tCHctW/7GlPexoPfehDeQAAZNv8O3z2Z382AJ/92Z/Nf7Qv+ZIv4fd3H8xVL7p3eb0X4+LFi/zyX97FVc/2Lq/3Yly8eJFf/su7uOpF9zUf8Ao89KEP5ap/2dOe9jQe+tCH8gAAyLb5d/jt3/5tAF77tV+b/2hf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zIviYj/kY/vqv/5oHeq/3ei/e+73fm/8sX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAVeOhDH8pV/7KnPe1pPPShD+UBAJBt8y/47u/+bt7nfd6H13qt1+KB3vu935v3fu/35j/Ll3zJl/D7uw/mqhfdu7zei3Hx4kV++S/v4qpne5fXezEuXrzIL//lXVz1ovuaD3gFHvrQh3LVv+xpT3saD33oQ3kAAGTb/Au++qu/mp/+6Z/mt3/7t/mv9CVf8iX8/u6DuepF9y6v92JcvHiRX/7Lu7jq2d7l9V6Mixcv8st/eRdXvei+5gNegYc+9KFc9S972tOexkMf+lAeAADZNv+C3d1dXvu1X5u3eZu34bVf+7W534Me9CAe/OAH85/lS77kS/j93Qdz1YvuXV7vxbh48SK//Jd3cdWzvcvrvRgXL17kl//yLq560X3NB7wCD33oQ7nqX/a0pz2Nhz70oTwAALJt/gW//du/zeu8zuvw3D7rsz6Lz/7sz+Y/y5d8yZfw+7sP5qoX3bu83otx8eJFfvkv7+KqZ3uX13sxLl68yC//5V1c9aL7mg94BR760Idy1b/saU97Gg996EN5AABk2/wLvvqrv5qv/uqv5ru/+7t5oAc/+ME8+MEP5j/Ll3zJl/D7uw/mqhfdu7zei3Hx4kV++S/v4qpne5fXezEuXrzIL//lXVz1ovuaD3gFHvrQh3LVv+xpT3saD33oQ3kAAGTb/AtuvfVW3vqt35rf/u3f5vjx4/xX+ZIv+RJ+f/fBXPWie5fXezEuXrzIL//lXVz1bO/yei/GxYsX+eW/vIurXnRf8wGvwEMf+lCu+pc97WlP46EPfSgPAIBsm3/BX//1X/M6r/M67O7u8kCf9VmfxWd/9mfzn+VLvuRL+P3dB3PVi+5dXu/FuHjxIr/8l3dx1bO9y+u9GBcvXuSX//IurnrRfc0HvAIPfehDuepf9rSnPY2HPvShPAAAsm3+BX/913/NR3/0R/Pc3vu935v3fu/35j/Ll3zJl/D7uw/mqhfdu7zei3Hx4kV++S/v4qpne5fXezEuXrzIL//lXVz1ovuaD3gFHvrQh3LVv+xpT3saD33oQ3kAAGTb/A/1JV/yJfz+7oO56kX3Lq/3Yly8eJFf/su7uOrZ3uX1XoyLFy/yy395F1e96L7mA16Bhz70oVz1L3va057GQx/6UB4AANk2/4Lf/u3f5nVe53V4bp/1WZ/FZ3/2Z/Of5Uu+5Ev4/d0Hc9WL7l1e78W4ePEiv/yXd3HVs73L670YFy9e5Jf/8i6uetF9zQe8Ag996EO56l/2tKc9jYc+9KE8AACybf4Ft956K9/93d/N/f76r/+a3/md3+GnfuqneO3Xfm3+s3zJl3wJv7/7YK560b3L670YFy9e5Jf/8i6uerZ3eb0X4+LFi/zyX97FVS+6r/mAV+ChD30oV/3Lnva0p/HQhz6UBwBAts2/wWu/9mvz2Z/92bz2a782/xo//dM/zfd8z/fw2q/92rzXe70Xx48f5wX5ki/5En5/98Fc9aJ7l9d7MS5evMgv/+VdXPVs7/J6L8bFixf55b+8i6tedF/zAa/AQx/6UK76lz3taU/joQ99KA8AgGybf8Hu7i5/8zd/w/12d3f56I/+aN7rvd6Lz/7sz+ZF9dd//dd89Ed/ND/90z/Nd3/3d/PXf/3XfPd3fzcvyJd8yZfw+7sP5qoX3bu83otx8eJFfvkv7+KqZ3uX13sxLl68yC//5V1c9aL7mg94BR760Idy1b/saU97Gg996EN5AABk2/wLfvu3f5vXeZ3X4YGOHTvGX//1X/PgBz+YF9Vv//Zv893f/d1893d/Nz/90z/Nd3/3d/PTP/3TvCBf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zL9jd3eWv//qveaCXfumX5vjx4/xrvc7rvA4At956K9/1Xd/Fa7/2a/OCfMmXfAm/v/tgrnrRvcvrvRgXL17kl//yLq56tnd5vRfj4sWL/PJf3sVVL7qv+YBX4KEPfShX/cue9rSn8dCHPpQHAEC2zYtgd3eXv/mbv+GBHvSgB/HgBz+YF9V3f/d389u//dt893d/N7/927/N53zO5/Bbv/VbAPz+7/8+f/AHf8Bz+/3dB3PVi+6NX/YGAH75L+/iqmd745e9AYBf/su7uOpF9zUf8Apc9aJ76EMfygMAINvmX3DrrbfyMi/zMuzu7vJAn/VZn8Vnf/Zn86L66I/+aN76rd+a137t1wbgIQ95CE9/+tN5Qb7kS76E3999MFe96N7l9V6Mixcv8st/eRdXPdu7vN6LcfHiRX75L+/iqhfd13zAK/DQhz6Uq/5lT3va03joQx/KAwAg2+Zf8Nmf/dl89Vd/Nd/93d/N8ePHud+DH/xgHvzgB/Oi+umf/mm+53u+h8/6rM/id37nd/ipn/opfvu3f5sX5Eu+5Ev4/d0Hc9WL7l1e78W4ePEiv/yXd3HVs73L670YFy9e5Jf/8i6uetF9zQe8Ag996EO56l/2tKc9jYc+9KE8AACybf4Ff/3Xf837vM/78Fd/9Vf8e/30T/80f/3Xf83x48d57/d+b44fP84L8iVf8iX8/u6DuepF9y6v92JcvHiRX/7Lu7jq2d7l9V6Mixcv8st/eRdXvei+5gNegYc+9KFc9S972tOexkMf+lAeAADZNv+CW2+9ldd5ndfhpV/6pXnpl35p7vdar/VavPZrvzb/Wb7kS76E3999MFe96N7l9V6Mixcv8st/eRdXPdu7vN6LcfHiRX75L+/iqhfd13zAK/DQhz6Uq/5lT3va03joQx/KAwAg2+Zf8Nu//du8zuu8Ds/tsz7rs/jsz/5s/rN8yZd8Cb+/+2CuetG9y+u9GBcvXuSX//Iurnq2d3m9F+PixYv88l/exVUvuq/5gFfgoQ99KFf9y572tKfx0Ic+lAcAQLbN/1Bf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zP9SXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAUe+tCHctW/7GlPexoPfehDeQAAZNv8D/UlX/Il/P7ug7nqRfcur/diXLx4kV/+y7u46tne5fVejIsXL/LLf3kXV73ovuYDXoGHPvShXPUve9rTnsZDH/pQHgAA2Tb/Q33Jl3wJv7/7YK560b3L670YFy9e5Jf/8i6uerZ3eb0X4+LFi/zyX97FVS+6r/mAV+ChD30oV/3Lnva0p/HQhz6UBwBAts3/UF/yJV/C7+8+mKtedO/yei/GxYsX+eW/vIurnu1dXu/FuHjxIr/8l3dx1Yvuaz7gFXjoQx/KVf+ypz3taTz0oQ/lAQCQbfM/1Jd8yZfw+7sP5qoX3bu83otx8eJFfvkv7+KqZ3uX13sxLl68yC//5V1c9aL7mg94BR760Idy1b/saU97Gg996EN5AABk2/wP9SVf8iX8/u6DuepF9y6v92JcvHiRX/7Lu7jq2d7l9V6Mixcv8st/eRdXvei+5gNegYc+9KFc9S972tOexkMf+lAeAADZNv9DfcmXfAm/v/tgrnrRvcvrvRgXL17kl//yLq56tnd5vRfj4sWL/PJf3sVVL7qv+YBX4KEPfShX/cue9rSn8dCHPpQHAEC2zf9QX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAVeOhDH8pV/7KnPe1pPPShD+UBAJBt8z/Ul3zJl/D7uw/mqhfdu7zei3Hx4kV++S/v4qpne5fXezEuXrzIL//lXVz1ovuaD3gFHvrQh3LVv+xpT3saD33oQ3kAAGTb/A/1JV/yJfz+7oO56kX3Lq/3Yly8eJFf/su7uOrZ3uX1XoyLFy/yy395F1e96L7mA16Bhz70oVz1L3va057GQx/6UB4AANk2/0N9yZd8Cb+/+2CuetG9y+u9GBcvXuSX//Iurnq2d3m9F+PixYv88l/exVUvuq/5gFfgoQ99KFf9y572tKfx0Ic+lAcAQLbN/1Bf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zP9SXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAUe+tCHctW/7GlPexoPfehDeQAAZNv8D/UlX/Il/P7ug7nqRfcur/diXLx4kV/+y7u46tne5fVejIsXL/LLf3kXV73ovuYDXoGHPvShXPUve9rTnsZDH/pQHgAA2Tb/hf76r/+ar/mar+H48eN81md9FsePH+cF+ZIv+RJ+f/fBXPWie5fXezEuXrzIL//lXVz1bO/yei/GxYsX+eW/vIurXnRf8wGvwEMf+lCu+pc97WlP46EPfSgPAIBsm/8it956K2/91m/Nb//2b/Pbv/3bfPd3fzc//dM/zQvyJV/yJfz+7oO56kX3Lq/3Yly8eJFf/su7uOrZ3uX1XoyLFy/yy395F1e96L7mA16Bhz70oVz1L3va057GQx/6UB4AANk2/0U++7M/mwc/+MG89Vu/NcePH+fWW2/lwQ9+MC/Il3zJl/D7uw/mqhfdu7zei3Hx4kV++S/v4qpne5fXezEuXrzIL//lXVz1ovuaD3gFHvrQh3LVv+xpT3saD33oQ3kAAGTb/Bd57/d+b57xjGdgm1tvvZXP/uzP5r3f+715Qb7kS76E3999MFe96N7l9V6Mixcv8st/eRdXPdu7vN6LcfHiRX75L+/iqhfd13zAK/DQhz6Uq/5lT3va03joQx/KAwAg2+a/yFu/9Vvz0i/90nz2Z382u7u7POQhD+HixYsA/P7v/z5/8Ad/wHP7/d0Hc9WL7o1f9gYAfvkv7+KqZ3vjl70BgF/+y7u46kX3NR/wClz1onvoQx/KAwAg2+a/yGd/9mfz0i/90rz1W781AJKwzQvyJV/yJfz+7oO56kX3Lq/3Yly8eJFf/su7uOrZ3uX1XoyLFy/yy395F1e96L7mA16Bhz70oVz1L3va057GQx/6UB4AANk2/0VuvfVW3uZt3oaf+qmf4md+5mf4q7/6K777u7+bF+RLvuRL+P3dB3PVi+5dXu/FuHjxIr/8l3dx1bO9y+u9GBcvXuSX//IurnrRfc0HvAIPfehDuepf9rSnPY2HPvShPAAAsm3+C/31X/81P/3TP83x48d57/d+b44fP84L8iVf8iX8/u6DuepF9y6v92JcvHiRX/7Lu7jq2d7l9V6Mixcv8st/eRdXvei+5gNegYc+9KFc9S972tOexkMf+lAeAADZNv9DfcmXfAm/v/tgrnrRvcvrvRgXL17kl//yLq56tnd5vRfj4sWL/PJf3sVVL7qv+YBX4KEPfShX/cue9rSn8dCHPpQHAEC2zf9QX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAVeOhDH8pV/7KnPe1pPPShD+UBAJBt8z/Ul3zJl/D7uw/mqhfdu7zei3Hx4kV++S/v4qpne5fXezEuXrzIL//lXVz1ovuaD3gFHvrQh3LVv+xpT3saD33oQ3kAAGTb/A/1JV/yJfz+7oO56kX3Lq/3Yly8eJFf/su7uOrZ3uX1XoyLFy/yy395F1e96L7mA16Bhz70oVz1L3va057GQx/6UB4AANk2/0N9yZd8Cb+/+2CuetG9y+u9GBcvXuSX//Iurnq2d3m9F+PixYv88l/exVUvuq/5gFfgoQ99KFf9y572tKfx0Ic+lAcAQLbN/1Bf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3zP9SXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAUe+tCHctW/7GlPexoPfehDeQAAZNv8D/UlX/Il/P7ug7nqRfcur/diXLx4kV/+y7u46tne5fVejIsXL/LLf3kXV73ovuYDXoGHPvShXPUve9rTnsZDH/pQHgAA2Tb/Q33Jl3wJv7/7YK560b3L670YFy9e5Jf/8i6uerZ3eb0X4+LFi/zyX97FVS+6r/mAV+ChD30oV/3Lnva0p/HQhz6UBwBAts3/UF/yJV/C7+8+mKtedO/yei/GxYsX+eW/vIurnu1dXu/FuHjxIr/8l3dx1Yvuaz7gFXjoQx/KVf+ypz3taTz0oQ/lAQCQbfM/1Jd8yZfw+7sP5qoX3bu83otx8eJFfvkv7+KqZ3uX13sxLl68yC//5V1c9aL7mg94BR760Idy1b/saU97Gg996EN5AABk2/wP9SVf8iX8/u6DuepF9y6v92JcvHiRX/7Lu7jq2d7l9V6Mixcv8st/eRdXvei+5gNegYc+9KFc9S972tOexkMf+lAeAADZNv9DfcmXfAm/v/tgrnrRvcvrvRgXL17kl//yLq56tnd5vRfj4sWL/PJf3sVVL7qv+YBX4KEPfShX/cue9rSn8dCHPpQHAEC2zf9QX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAVeOhDH8pV/7KnPe1pPPShD+UBAJBt8z/Ul3zJl/D7uw/mqhfdu7zei3Hx4kV++S/v4qpne5fXezEuXrzIL//lXVz1ovuaD3gFHvrQh3LVv+xpT3saD33oQ3kAAGTb/A/1JV/yJfz+7oO56kX3Lq/3Yly8eJFf/su7uOrZ3uX1XoyLFy/yy395F1e96L7mA16Bhz70oVz1L3va057GQx/6UB4AANk2/0N9yZd8Cb+/+2CuetG9y+u9GBcvXuSX//Iurnq2d3m9F+PixYv88l/exVUvuq/5gFfgoQ99KFf9y572tKfx0Ic+lAcAQLbNf4P3eZ/34bu+67t4Yb7kS76E3999MFe96N7l9V6Mixcv8st/eRdXPdu7vN6LcfHiRX75L+/iqhfd13zAK/DQhz6Uq/5lT3va03joQx/KAwAg2+a/2Gd/9mfz1V/91ezu7vLCfMmXfAm/v/tgrnrRvcvrvRgXL17kl//yLq56tnd5vRfj4sWL/PJf3sVVL7qv+YBX4KEPfShX/cue9rSn8dCHPpQHAEC2zX+hv/7rv+azP/uz2d3d5bd/+7d5Yb7kS76E3999MFe96N7l9V6Mixcv8st/eRdXPdu7vN6LcfHiRX75L+/iqhfd13zAK/DQhz6Uq/5lT3va03joQx/KAwAg2+a/yO7uLm/91m/NT//0T/PWb/3W/PZv/zYvzJd8yZfw+7sP5qoX3bu83otx8eJFfvkv7+KqZ3uX13sxLl68yC//5V1c9aL7mg94BR760Idy1b/saU97Gg996EN5AABk2/wX+eiP/mje+q3fmtd+7dfmtV/7tfnt3/5t7vf7v//7/MEf/AHP7fd3H8xVL7o3ftkbAPjlv7yLq57tjV/2BgB++S/v4qoX3dd8wCtw1YvuoQ99KA8AgGyb/yKv/dqvzf3++q//mpd+6Zfmt3/7t3lBvuRLvoTf330wV73o3uX1XoyLFy/yy395F1c927u83otx8eJFfvkv7+KqF93XfMAr8NCHPpSr/mVPe9rTeOhDH8oDACDb5r/Ba7/2a/Pbv/3bvDBf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BV46EMfylX/sqc97Wk89KEP5QEAkG3z3+C7v/u7ee/3fm9emC/5ki/h93cfzFUvund5vRfj4sWL/PJf3sVVz/Yur/diXLx4kV/+y7u46kX3NR/wCjz0oQ/lqn/Z0572NB760IfyAADItvkf6ku+5Ev4/d0Hc9WL7l1e78W4ePEiv/yXd3HVs73L670YFy9e5Jf/8i6uetF9zQe8Ag996EO56l/2tKc9jYc+9KE8AACybf6H+pIv+RJ+f/fBXPWie5fXezEuXrzIL//lXVz1bO/yei/GxYsX+eW/vIurXnRf8wGvwEMf+lCu+pc97WlP46EPfSgPAIBsm/+hvuRLvoTf330wV73o3uX1XoyLFy/yy395F1c927u83otx8eJFfvkv7+KqF93XfMAr8NCHPpSr/mVPe9rTeOhDH8oDACDb5n+oL/mSL+H3dx/MVS+6d3m9F+PixYv88l/exVXP9i6v92JcvHiRX/7Lu7jqRfc1H/AKPPShD+Wqf9nTnvY0HvrQh/IAAMi2+R/qS77kS/j93Qdz1YvuXV7vxbh48SK//Jd3cdWzvcvrvRgXL17kl//yLq560X3NB7wCD33oQ7nqX/a0pz2Nhz70oTwAALJt/of6ki/5En5/98Fc9aJ7l9d7MS5evMgv/+VdXPVs7/J6L8bFixf55b+8i6tedF/zAa/AQx/6UK76lz3taU/joQ99KA8AgGyb/6G+5Eu+hN/ffTBXveje5fVejIsXL/LLf3kXVz3bu7zei3Hx4kV++S/v4qoX3dd8wCvw0Ic+lKv+ZU972tN46EMfygMAINvmf6gv+ZIv4fd3H8xVL7p3eb0X4+LFi/zyX97FVc/2Lq/3Yly8eJFf/su7uOpF9zUf8Ao89KEP5ap/2dOe9jQe+tCH8gAAyLb5H+pLvuRL+P3dB3PVi+5dXu/FuHjxIr/8l3dx1bO9y+u9GBcvXuSX//IurnrRfc0HvAIPfehDuepf9rSnPY2HPvShPAAAsm3+h/qSL/kSfn/3wVz1onuX13sxLl68yC//5V1c9Wzv8novxsWLF/nlv7yLq150X/MBr8BDH/pQrvqXPe1pT+OhD30oDwCAbJv/ob7kS76E3999MFe96N7l9V6Mixcv8st/eRdXPdu7vN6LcfHiRX75L+/iqhfd13zAK/DQhz6Uq/5lT3va03joQx/KAwAg2+Z/qC/5ki/h93cfzFUvund5vRfj4sWL/PJf3sVVz/Yur/diXLx4kV/+y7u46kX3NR/wCjz0oQ/lqn/Z0572NB760IfyAADItvkf6ku+5Ev4/d0Hc9WL7l1e78W4ePEiv/yXd3HVs73L670YFy9e5Jf/8i6uetF9zQe8Ag996EO56l/2tKc9jYc+9KE8AACybf6H+pIv+RJ+f/fBXPWie5fXezEuXrzIL//lXVz1bO/yei/GxYsX+eW/vIurXnRf8wGvwEMf+lCu+pc97WlP46EPfSgPAIBsm/+hvuRLvoTf330wV73o3uX1XoyLFy/yy395F1c927u83otx8eJFfvkv7+KqF93XfMAr8NCHPpSr/mVPe9rTeOhDH8oDACDb5n+oL/mSL+H3dx/MVS+6d3m9F+PixYv88l/exVXP9i6v92JcvHiRX/7Lu7jqRfc1H/AKPPShD+Wqf9nTnvY0HvrQh/IAAMi2+R/qS77kS/j93Qdz1YvuXV7vxbh48SK//Jd3cdWzvcvrvRgXL17kl//yLq560X3NB7wCD33oQ7nqX/a0pz2Nhz70oTwAALJt/gt9z/d8Dz/90z/Ngx/8YD7rsz6L48eP84J8yZd8Cb+/+2CuetG9y+u9GBcvXuSX//Iurnq2d3m9F+PixYv88l/exVUvuq/5gFfgoQ99KFf9y572tKfx0Ic+lAcAQLbNf5Gf/umf5ru/+7v57u/+bn77t3+br/mar+G3fuu3eEG+5Eu+hN/ffTBXveje5fVejIsXL/LLf3kXVz3bu7zei3Hx4kV++S/v4qoX3dd8wCvw0Ic+lKv+ZU972tN46EMfygMAINvmv8hv//Zv8+AHP5gHP/jBABw/fpzd3V1ekC/5ki/h93cfzFUvund5vRfj4sWL/PJf3sVVz/Yur/diXLx4kV/+y7u46kX3NR/wCjz0oQ/lqn/Z0572NB760IfyAADItvlv8Nmf/dns7u7y1V/91bwgX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAVeOhDH8pV/7KnPe1pPPShD+UBAJBt81/sYz7mY7h48SLf/d3fzf1+//d/nz/4gz/guf3+7oO56kX3xi97AwC//Jd3cdWzvfHL3gDAL//lXVz1ovuaD3gFPurb/oyr/mVf8wGvwEMf+lAeAADZNv+F3ud93gfbfPd3fzf/ki/5ki/h93cfzFUvund5vRfj4sWL/PJf3sVVz/Yur/diXLx4kV/+y7u46kX3NR/wCnzUt/0ZV/3LvuYDXoGHPvShPAAAsm3+i3z2Z382P/MzP8NXf/VXc7/Xeq3X4gX5ki/5En5/98Fc9aJ7l9d7MS5evMgv/+VdXPVs7/J6L8bFixf55b+8i6tedF/zAa/AR33bn3HVv+xrPuAVeOhDH8oDACDb5r/Id3/3d3PrrbfyQJ/92Z/NC/IlX/Il/P7ug7nqRfcur/diXLx4kV/+y7u46tne5fVejIsXL/LLf3kXV73ovuYDXoGP+rY/46p/2dd8wCvw0Ic+lAcAQLbN/1Bf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BX4qG/7M676l33NB7wCD33oQ3kAAGTb/A/1JV/yJfz+7oO56kX3Lq/3Yly8eJFf/su7uOrZ3uX1XoyLFy/yy395F1e96L7mA16Bj/q2P+Oqf9nXfMAr8NCHPpQHAEC2zf9QX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAV+Khv+zOu+pd9zQe8Ag996EN5AABk2/wP9SVf8iX8/u6DuepF9y6v92JcvHiRX/7Lu7jq2d7l9V6Mixcv8st/eRdXvei+5gNegY/6tj/jqn/Z13zAK/DQhz6UBwBAts3/UF/yJV/C7+8+mKtedO/yei/GxYsX+eW/vIurnu1dXu/FuHjxIr/8l3dx1Yvuaz7gFfiob/szrvqXfc0HvAIPfehDeQAAZNv8D/UlX/Il/P7ug7nqRfcur/diXLx4kV/+y7u46tne5fVejIsXL/LLf3kXV73ovuYDXoGP+rY/46p/2dd8wCvw0Ic+lAcAQLbN/1Bf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BX4qG/7M676l33NB7wCD33oQ3kAAGTb/A/1JV/yJfz+7oO56kX3Lq/3Yly8eJFf/su7uOrZ3uX1XoyLFy/yy395F1e96L7mA16Bj/q2P+Oqf9nXfMAr8NCHPpQHAEC2zf9QX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAV+Khv+zOu+pd9zQe8Ag996EN5AABk2/wP9SVf8iX8/u6DuepF9y6v92JcvHiRX/7Lu7jq2d7l9V6Mixcv8st/eRdXvei+5gNegY/6tj/jqn/Z13zAK/DQhz6UBwBAts3/UF/yJV/C7+8+mKtedO/yei/GxYsX+eW/vIurnu1dXu/FuHjxIr/8l3dx1Yvuaz7gFfiob/szrvqXfc0HvAIPfehDeQAAZNv8D/UlX/Il/P7ug7nqRfcur/diXLx4kV/+y7u46tne5fVejIsXL/LLf3kXV73ovuYDXoGP+rY/46p/2dd8wCvw0Ic+lAcAQLbN/1Bf8iVfwu/vPpirXnTv8novxsWLF/nlv7yLq57tXV7vxbh48SK//Jd3cdWL7ms+4BX4qG/7M676l33NB7wCD33oQ3kAAGTb/A/1JV/yJfz+7oO56kX3Lq/3Yly8eJFf/su7uOrZ3uX1XoyLFy/yy395F1e96L7mA16Bj/q2P+Oqf9nXfMAr8NCHPpQHAEC2zf9QX/IlX8Lv7z6Yq1507/J6L8bFixf55b+8i6ue7V1e78W4ePEiv/yXd3HVi+5rPuAV+Khv+zOu+pd9zQe8Ag996EN5AABk2/wP9SVf8iX8/u6DuepF9y6v92JcvHiRX/7Lu7jq2d7l9V6Mixcv8st/eRdXvei+5gNegY/6tj/jqn/Z13zAK/DQhz6UBwBAts3/UF/yJV/C7+8+mKtedO/yei/GxYsX+eW/vIurnu1dXu/FuHjxIr/8l3dx1Yvuaz7gFfiob/szrvqXfc0HvAIPfehDeQAAZNv8F/rpn/5pvud7voeXfumX5qM+6qM4fvw4L8iXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAU+6tv+jKv+ZV/zAa/AQx/6UB4AANk2/0X++q//mvd+7/fmt3/7t/nqr/5qdnd3+eqv/mpekC/5ki/h93cfzFUvund5vRfj4sWL/PJf3sVVz/Yur/diXLx4kV/+y7u46kX3NR/wCnzUt/0ZV/3LvuYDXoGHPvShPAAAsm3+i3z2Z382D37wg3nv935vAB7ykIfw9Kc/nRfkS77kS/j93Qdz1YvuXV7vxbh48SK//Jd3cdWzvcvrvRgXL17kl//yLq560X3NB7wCH/Vtf8ZV/7Kv+YBX4KEPfSgPAIBsm/8i7/3e7817v/d789qv/doASMI2L8iXfMmX8Pu7D+aqF927vN6LcfHiRX75L+/iqmd7l9d7MS5evMgv/+VdXPWi+5oPeAU+6tv+jKv+ZV/zAa/AQx/6UB4AANk2/0U++qM/mrd+67fmtV/7tQGQhG0Afv/3f58/+IM/4IG6rmMcR6666qqr/qc7c+YM7/u+78sDACDb5r/IZ3/2Z/PgBz+Y937v92Z3d5eXfumX5tZbb+UF+ZIv+RI+6ZM+iav+db7kS76ET/qkT+Kq5/QlX/IlfNInfRJXvei+5Eu+hE/6pE/iqn/Zl3zJl/BJn/RJPAAAsm3+i9x66628zdu8Dd/1Xd/F93zP93Ds2DE++7M/mxfkS77kS/ikT/okrvrX+ZIv+RI+6ZM+iaue05d8yZfwSZ/0SVz1ovuSL/kSPumTPomr/mVf8iVfwid90ifxAADItvkv9Nu//dv89m//NsePH+ejP/qjeWG+5Eu+hE/6pE/iqn+dL/mSL+GTPumTuOo5fcmXfAmf9EmfxFUvui/5ki/hkz7pk7jqX/YlX/IlfNInfRIPAIBsm/+hvuRLvoRP+qRP4qp/nS/5ki/hkz7pk7jqOX3Jl3wJn/RJn8RVL7ov+ZIv4ZM+6ZO46l/2JV/yJXzSJ30SDwCAbJv/oX7/93+fV3/1V+eqf53f//3f59Vf/dW56jn9/u//Pq/+6q/OVS+63//93+fVX/3Vuepf9vu///u8+qu/Og8AgGybq6666qqr/qMBINvmqquuuuqq/2gAyLb5X+Cv//qv+e7v/m6++qu/mn+rW2+9la/5mq9hd3eXt3qrt+Kt3/qtAfjpn/5pvud7voeXfumX5qM+6qM4fvw49/vu7/5uXvqlX5qXfumXBuC3f/u3+Z7v+R6OHz/OZ33WZ3H8+HH+Pf76r/+aj/mYj+GB3uu93ov3fu/35vn56I/+aL76q7+aF+Z7vud7+Omf/mle+qVfmo/6qI/i+PHj7O7u8jmf8znceuutfNRHfRSv/dqvzf12d3f57M/+bL76q78agN3dXb7ne76H3/7t3+a93uu9eOu3fmv+q333d3833/M938N3fdd38eAHP5j7vc3bvA1v9VZvxXu/93vzr/U93/M9/PRP/zSv/dqvzXu913tx/Phxdnd3+ZzP+RxuvfVWPuqjPorXfu3X5n67u7t89md/Nl/91V8NwO7uLt/zPd/Db//2b/Ne7/VevPVbvzX/U9166628z/u8Dz/1Uz/F8ePH+bfY3d3la77ma/jrv/5r3vqt35r3eq/3AuCv//qv+Zqv+RoAvuqrvorjx49zv5/+6Z9md3eX937v9wbgr//6r/mar/kaAD7rsz6LBz/4wfxrfPRHfzSXLl3iu77ru7jfX//1X/MxH/MxfNVXfRUv/dIvzb/FX//1X/M1X/M1ALzXe70Xr/3arw3AT//0T/M1X/M1vPVbvzUf9VEfxQN99md/Np/92Z/N/X76p3+a7/me7+G1X/u1ea/3ei+OHz/OcwFAts3/Ar/927/NZ3/2Z/Pbv/3b/Fu99Eu/NF/91V/NS7/0S/Par/3afPd3fzfHjx/nrd/6rfnt3/5tvvqrv5rd3V2++qu/GoCv+Zqv4aM/+qP5rd/6LV77tV+b3d1dXvu1X5vf/u3f5rd/+7f57u/+bn76p3+af4/f/u3f5qM/+qP56q/+au734Ac/mAc/+ME8P6/92q/Nb//2b/OCfPd3fze//du/zVd/9Vfz0z/90/z0T/80P/3TP817v/d789qv/dq89mu/Nm/91m/NT//0T/PgBz+YW2+9lbd5m7fh2LFj/PZv/zYA7/3e781Lv/RL897v/d689Vu/NV/91V/NS7/0S/Nf6bM/+7P56q/+aj77sz+bj/7ojwbgr//6r3mZl3kZPuuzPovP/uzP5l/ju7/7u/nt3/5tvvqrv5qf/umf5qd/+qf56Z/+ad76rd+at37rt+a1X/u1eeu3fmt++qd/mgc/+MHceuutvM3bvA3Hjh3jt3/7twF47/d+b176pV+a937v9+at3/qt+eqv/mpe+qVfmv+JPvuzP5vf/u3f5q3f+q356I/+aP4t3vqt35r3fu/35rVf+7V57/d+b976rd+at37rt+a1X/u1+emf/mn++q//mq/5mq/ht37rtwD46Z/+ad7nfd6Hj/qoj+KzP/uzAXjwgx/MT//0TwPwNm/zNjz96U/nX+O1X/u1+eu//mv++q//mgc/+MEAfPRHfzTf/d3fzU//9E/z2q/92vxr7e7u8tIv/dL89m//NgBv/dZvzU//9E9z66238tVf/dV893d/Nx/90R/NS7/0S/PRH/3RAHzMx3wMX/3VX41tAP76r/+aj/7oj+anf/qn+e7v/m7++q//mu/+7u/muQAg2+Z/gd/+7d/msz/7s/nt3/5t/vqv/5rP+ZzPYXd3lwc/+MF813d9F3/913/Nb//2b/M7v/M77O7u8lEf9VG89Vu/Nffb3d3lp3/6p3nv935vAD76oz+aBz/4wezu7nL8+HE++qM/GoATJ05w8eJFvvqrv5rd3V1++7d/m8/+7M/mtV/7tfnrv/5r3ud93oe/+qu/Ynd3l5d+6Zfm1ltv5d/jt3/7t/nsz/5sfvu3f5vn9jVf8zX89E//NMePH+ervuqrePCDH8xrv/Zr8zZv8zb89E//NK/92q/NZ33WZ/FAP/3TP81Lv/RL8+AHP5jd3V1e+7Vfm7/+67/mwQ9+MLfeeisAn/3Zn83x48f56I/+aF77tV+bt37rt+anf/qn+e3f/m0A3vqt35r3fu/35q3f+q356I/+aF77tV+bt37rt+a/0md/9mdz66238jd/8zf81V/9FQAf/dEfza233spLv/RL89mf/dn89E//NF/zNV8DwHu913vx3u/93nz3d383f/3Xf83f/M3f8FM/9VMcP34cgJ/+6Z/mpV/6pXnwgx/M7u4ur/3ar81f//Vf8+AHP5hbb70VgM/+7M/mwQ9+MO/93u/Na7/2a/PWb/3W/PRP/zS//du/DcBbv/Vb897v/d689Vu/NR/90R/Na7/2a/PWb/3W/E/0kIc8hJ/6qZ/ibd7mbXj6058OwHd/93cD8D3f8z0cP36c7/qu7+L48eO8zuu8Di/90i+Nbb76q7+a+332Z382n/3Znw3Ad3/3d3Prrbfy0i/90vz2b/82X/3VXw3AS7/0S/Pbv/3b/PVf/zXf/d3fzfHjxzl+/Dif/dmfDcBDHvIQnv70pwNw4sQJLl68yL/Ga7/2a/PgBz+Yl37pl+ajP/qjAXjt135tAD77sz+bl37pl+ZjPuZjuPXWWwH4qq/6KgB++qd/ms/+7M8G4Ku/+qt57dd+bV76pV8agFtvvZXf/u3f5r3f+70BeO3Xfm0++7M/m+/+7u/mrd/6rXnrt35rbr31Vt77vd+b3/7t3+arv/qrAfjpn/5pfvu3fxuA3/7t3+a7v/u7+e7v/m5++qd/mu/+7u/mp3/6p3kuAMi2+V/gt3/7t/nsz/5sfvu3f5vXfu3X5qd/+qc5fvw4b/3Wb81Hf/RHA/De7/3e/PVf/zW33norb/M2b8PTn/50np+//uu/5q3f+q3567/+a776q7+a137t1+a1X/u1ATh+/Di7u7vc77Vf+7X57M/+bF77tV8bgLd+67fmGc94Bru7u3zVV30Vb/3Wb82/x2//9m/zPu/zPrz3e7839/usz/osfvqnf5rv/u7v5qd/+qf567/+a97nfd6Hv/qrv+K1X/u1eeu3fms++qM/mrd+67fmrd/6rXnv935vnp/3eZ/34UEPehDv/d7vzXu/93vz27/92wB89md/NgCf/dmfDcBv//Zv89mf/dn89m//NgC//du/zfu8z/vw4Ac/GIDf+q3f4r/aZ3/2ZwPw0z/90/z0T/80D37wg3nt135tXvu1XxuA937v9+ajP/qj+emf/ml2d3d56Zd+aW699VY++7M/m7/+67/msz/7s3npl35pnp/3eZ/34UEPehDv/d7vzXu/93vz27/92wB89md/NgCf/dmfDcBv//Zv89mf/dn89m//NgC//du/zfu8z/vw4Ac/mGPHjvHTP/3T/E/00z/90/z0T/803/3d381bv/Vb89Ef/dG89mu/Np/92Z/Nb//2b/Pbv/3b/PZv/zaf8zmfw2/91m8hiZ/6qZ/iwQ9+MC/90i/Nc9vd3eVlXuZl+Kmf+il++qd/GoDP/uzPBuC1X/u1+ezP/mxe+7VfG4DP/uzPBuCzP/uzAfjqr/5qvuZrvgaAj/qoj+KjP/qj+dd47dd+bT76oz+az/mcz+Gv/uqv+Ou//mu++7u/m7/+67/msz/7s9nd3eWv//qv+ezP/mx++qd/mq/+6q/mt3/7t3npl35pfvu3f5vjx4/z4Ac/mFtvvZXn56//+q957/d+b/76r/+a137t1+azP/uzee3Xfm0AHvKQh/D0pz+d+732a782v/3bv839Xud1XgeAW2+9le/6ru/itV/7tXkuAMi2+V/gt3/7t/nsz/5sfvu3f5tbb72Vn/mZn+HWW2/lp3/6p/mu7/ouAL77u7+b7/7u7wZAErZ5bn/913/NW7/1W/PTP/3TvPRLvzSf/dmfzWu/9mvz2q/92gCcOHGCixcvcr/Xfu3X5rM/+7N57dd+bX77t3+bz/7sz+anf/qnufXWW3nrt35r/vqv/5rjx4/zb/Xbv/3bfPRHfzRf/dVfzf1e+7Vfm4/+6I/m0qVLPPjBDwbgu7/7u3n605/Oa7/2a/Pbv/3bAPz2b/82X/3VX81P//RP89ze533eB9t893d/N7u7u7z1W781v/3bvw3AZ3/2ZwPw2Z/92QD89m//Np/92Z/Nb//2bwPwOq/zOnzUR30Ub/3Wb817v/d789Iv/dJ89Ed/NP+VPvuzPxuA48ePA/DgBz+Yv/7rv+Z+n/3Zn81f//Vf8zM/8zPceuut/PRP/zQXL17ksz/7s3nt135tXvu1X5vn533e532wzXd/93ezu7vLW7/1W/Pbv/3bAHz2Z382AJ/92Z8NwG//9m/z2Z/92fz2b/82AK/zOq/DR33UR/HWb/3WvPd7vzev/dqvzXu/93vzP817v/d7c+nSJV76pV+a3/7t3+ZBD3oQ3/3d381nf/Zn8+AHP5j3fu/3BuD48ePs7u4iCds8P7u7u7zO67wOH/VRH8V7v/d789mf/dkAfPZnfzYAr/3ar81nf/Zn89qv/doAfPZnfzYAn/3Zn82tt97KW7/1W/Pbv/3b7O7u8tZv/db89E//NA9+8IN5Ub32a782n/3Zn81Xf/VX89Vf/dV89Vd/Ne/93u/NR3/0R/PZn/3ZvPZrvzbf8z3fw6233spf//Vfc/HiRX77t3+bj/7oj+alX/qlOX78OL/927/NV3/1V/Pcfvu3f5uP/uiP5ru/+7t56Zd+aV77tV+bz/7sz+a1X/u1AXjpl35p/vqv/5r7vfZrvza//du/DcB3f/d389u//dt893d/N7/927/N53zO5/Bbv/VbPBcAZNv8D3Xrrbfy0z/903z0R380v/3bv81nf/Zn89u//ds8+MEP5qu/+qt56Zd+ab77u7+b137t1wbgt3/7t/nsz/5sACRhmwf667/+a977vd+b7/7u7+alX/qlAfjqr/5qAD76oz8agAc/+MHceuut3O+1X/u1+ezP/mxe+7Vfm8/+7M8G4LM/+7MBeO3Xfm2++qu/mpd+6Zfm3+q3f/u3+ezP/mx++7d/mwf66I/+aI4fP85rv/ZrA7C7u8tbv/Vb89qv/dr89E//NMePH+e3f/u3+emf/mm++qu/mgd6n/d5H44dO8ZXf/VXc7+HPOQhPP3pTwfgoz/6o3npl35p3vu93xuA3/7t3+azP/uz+e3f/m0AJGEbgN/+7d/mq7/6q/npn/5p/it99md/NgAf/dEfzeu8zuvwUi/1Unz2Z3823/3d3w3Aa7/2a/PRH/3RfPVXfzUv/dIvzeu8zuvwV3/1V3z2Z382r/3ar81rv/Zr89ze533eh2PHjvHVX/3V3O8hD3kIT3/60wH46I/+aF76pV+a937v9wbgt3/7t/nsz/5sfvu3fxsASdgG4Ld/+7f56q/+an76p3+a/0l2d3d56Zd+ab77u7+b+731W781t956K1/91V/N8ePH+eiP/mgAJGEbSdjmuf31X/81b/3Wb813f/d389qv/doA/PZv/zY//dM/zVd/9VcD8JCHPISnP/3p3O+zP/uzAfjsz/5sfvu3f5vf/u3f5rM/+7MB+OzP/mxe+7Vfm9d+7dfmRfXar/3afPZnfza33noru7u7/PRP/zS//du/zWu/9mvz2Z/92fz0T/80u7u7vPd7vzfHjx/noz/6o/nt3/5tbr31Vj76oz+a48eP89Ef/dG89Eu/NA/03d/93Xz1V381v/3bv83x48cBeO/3fm/e+q3fmrd+67fm1ltv5b3f+7357d/+be732q/92vz2b/82AB/90R/NW7/1W/Par/3aADzkIQ/h6U9/Os8FANk2/0Pt7u7y0i/90nzN13wNP/3TP82DHvQgPvqjP5qXeZmX4bd+67e49dZbee/3fm8++7M/mwc/+MH89m//Np/92Z8NgCRsc7/d3V0e8pCH8N3f/d0cP34cgAc96EEAvM3bvA3f9V3fxc/8zM9gm8/+7M/mfq/92q/NZ3/2Z/Par/3a/PVf/zXv8z7vw3d913fxjGc8g8/6rM/ir//6r/n3+O3f/m0++7M/m9/+7d/mgX77t3+bj/mYj+G7vuu7eMYznsFnfdZn8dd//de89mu/Ng95yEP4qI/6KD7mYz6Gz/qsz+K1X/u1ud9nf/Zn8zd/8zd89Ed/NPd7rdd6Ld77vd+bl3mZl+G1Xuu1eO/3fm9++7d/m+PHjwPw27/923z2Z382v/3bvw3Aa7/2a/M2b/M2vNZrvRaf8zmfw3u913vx1m/91vxX+uzP/mwAPvuzP5u3fuu3Znd3l9/+7d/msz/7swF48IMfzM/8zM/wXd/1XXzP93wPH/3RH41tPvuzP5vXfu3X5rVf+7V5oM/+7M/mb/7mb/joj/5o7vdar/VavPd7vzcv8zIvw0u91Evx0R/90fz2b/82x48fB+C3f/u3+ezP/mx++7d/G4DXfu3X5m3e5m14rdd6LT7ncz6H93qv9+Kt3/qt+Z/kq7/6q7n11lv56q/+au730R/90Rw/fhyAn/mZn+Grvuqr+J3f+R2e/vSn893f/d1IwjbP7WVe5mV47/d+b176pV8agAc96EE8+MEP5sEPfjDf/d3fzd/8zd/wW7/1W/z0T/809/vsz/5sAD77sz+bW2+9lbd+67fmq7/6qwF47/d+b377t3+bBz/4wbyoXvu1X5vP/uzP5qVf+qV5yEMewnu913vx1V/91bz2a782n/3Zn81Xf/VX89qv/dq893u/Nx/zMR/D05/+dH77t38bgJd+6Zfm+PHj/PZv/zYPdOutt/IyL/MyfPd3fzfHjx8H4KVe6qX467/+a77ma76Gz/qsz+JrvuZreK3Xei3e+73fm/u99mu/Nr/9278NwE//9E/zPd/zPXzWZ30Wv/M7v8NP/dRP8du//ds8FwBk2/wP9tu//dv89m//NsePH+ejP/qjAfjt3/5tfvu3f5vjx4/z0i/90gA8+MEP5tZbb+W1X/u1Afjsz/5sPvuzP5v73XrrrXz3d383D/Tar/3avPZrvzZ//dd/zU//9E9z/PhxPvqjP5oH+u7v/m5e+7Vfmwc/+MEA/PZv/za//du/DcBHf/RHc/z4cf49br31Vn77t3+b937v9+a5/fZv/za//du/DcBHf/RHc/z4cb77u7+b48eP89d//de89Eu/NG/91m/NA333d383t956Kw/02Z/92QB89Vd/Nbu7u7z1W781L/3SL839br31Vn77t3+b937v9wZgd3eX7/7u72Z3d5eXfumX5q3f+q35r/bbv/3bALz2a782v/3bvw3Aa7/2a/Pbv/3bALz2a782X/3VX83u7i4PfvCDOX78OC/90i/NrbfeyoMf/GAe/OAH80Df/d3fza233soDffZnfza7u7t8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C3Prrbfy3d/93bz3e783D37wg/nu7/5uAN77vd+bW2+9le/+7u/mvd/7vXnwgx/Mrbfeynd/93cD8OAHP5j3fu/3BuC3f/u3+e3f/m0++7M/G4DP/uzP5rVf+7V57dd+bf76r/+an/7pn+bBD34wr/3ar813f/d3897v/d48+MEP5rd/+7f57d/+bT77sz+bB7r11lt5yEMewl/91V/x0i/90gB893d/N+/zPu/DT/3UT/HWb/3W3O+rv/qr2d3d5fjx47z3e783x48f59Zbb+W7v/u7AXjrt35rfvqnf5r3fu/35tZbb+W3f/u3+ezP/myen9/+7d/mt3/7t/nsz/5sbr31Vr77u7+b137t1+a1X/u1+e7v/m4A3vu93xuA3/7t3+a3f/u3AXjv935vHvzgBwPw2Z/92bz2a782r/3ar82tt97Kd3/3d/Pe7/3ePPjBD+arv/qr2d3d5bVf+7UB+O3f/m0++7M/G4DP/uzP5rVf+7V57dd+bb77u7+bz/7sz+bWW2/lqhcKANk2V/2/tLu7y9/8zd/w/LzWa70W/5V+53d+h+fnpV7qpTh+/Dj/07z1W781D37wg/nqr/5qPudzPoef/umf5uLFi9x66638X/fWb/3WvPRLvzSf/dmfzVUvFACyba76f+mv//qv+eiP/mien9/+7d/mv9Jrv/Zr8/x89Vd/NS/90i/N/zS33norH/3RH81P//RP89qv/doAfPVXfzUv/dIvzf9lu7u7vPd7vzff/d3fzfHjx7nqhQJAts1VV1111VX/0QCQbXPVVVddddV/NABk21x11VVXXfUfDQDZNlddddVVV/1HA+AfAdeV6LEbqm5mAAAAAElFTkSuQmCC", + "text/plain": [ + "alt.Chart(...)" + ] + }, + "execution_count": 3, + "metadata": { + "image/png": { + "height": 347, + "width": 345 + } + }, + "output_type": "execute_result" + } + ], + "source": [ + "t = c.sql(\n", + " \"\"\"\n", + " SELECT *\n", + " FROM fnl_sales_newcustomers\n", + " ORDER BY first_order_month\n", + " \"\"\"\n", + ")\n", + "\n", + "(\n", + " alt.Chart(t)\n", + " .mark_bar()\n", + " .encode(\n", + " x=alt.X(\"yearmonth(first_order_month):T\"),\n", + " y=alt.Y(\"num_new_customers:Q\"),\n", + " )\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "alt.Chart(...)" + ] + }, + "execution_count": 4, + "metadata": { + "image/png": { + "height": 122, + "width": 345 + } + }, + "output_type": "execute_result" + } + ], + "source": [ + "t = c.sql(\n", + " \"\"\"\n", + " SELECT *\n", + " FROM fnl_finance_returnsamout\n", + " WHERE total_returned_amount_aud > 0\n", + " \"\"\"\n", + ")\n", + "\n", + "(\n", + " alt.Chart(t)\n", + " .mark_bar()\n", + " .encode(\n", + " x=alt.X(\"total_returned_amount_aud:Q\"),\n", + " y=alt.Y(\"customer_id:O\", sort=alt.Sort(\"-x\")),\n", + " )\n", + ")" + ] + } + ], + "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.10.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}