diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..63b750a --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,29 @@ +FROM python:3.11-slim-buster + + +ENV PYTHONDONTWRITEBYTECODE=1 + +ENV PYTHONUNBUFFERED=1 + +ENV PYDEVD_DISABLE_FILE_VALIDATION=1 + +WORKDIR /app + +COPY Pipfile Pipfile.lock ./ + +RUN python -m pip install --upgrade pip + +RUN pip install flask-migrate + +RUN pip install --no-cache-dir pipenv + +RUN pipenv install --dev --system --deploy --clear + +RUN pip uninstall pipenv -y + +RUN apt-get update && apt-get install ffmpeg libsm6 libxext6 -y + +COPY . ./ + +CMD [ "python3", "-m", "debugpy", "--listen", "0.0.0.0:5678", "-m", "flask", "run", "--host=0.0.0.0" ] + diff --git a/backend/Pipfile b/backend/Pipfile new file mode 100644 index 0000000..b716cc7 --- /dev/null +++ b/backend/Pipfile @@ -0,0 +1,101 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +alembic = "==1.9.4" +aniso8601 = "==8.0.0" +asgiref = "==3.6.0" +attrs = "==22.2.0" +bcrypt = "==3.1.7" +bidict = "==0.22.1" +blinker = "==1.5" +boto3 = "==1.26.91" +botocore = "==1.29.91" +caer = "==2.0.8" +certifi = "==2022.12.7" +cffi = "==1.15.1" +charset-normalizer = "==3.0.1" +click = "==7.1.2" +config = "==0.5.1" +contourpy = "==1.0.7" +cryptography = "==39.0.2" +cycler = "==0.11.0" +datetime = "==5.1" +depthai = "*" +distlib = "==0.3.6" +exceptiongroup = "==1.1.0" +filelock = "==3.9.0" +flask = "==1.1.2" +flask-bcrypt = "==1.0.1" +flask-cors = "==3.0.10" +flask-mail = "==0.9.1" +flask-migrate = "==4.0.4" +flask-restful = "==0.3.9" +flask-socketio = "==5.3.3" +flask-sqlalchemy = "==2.4.3" +fonttools = "==4.38.0" +gevent = "==22.10.2" +greenlet = "==2.0.2" +idna = "==3.4" +imutils = "==0.5.4" +iniconfig = "==2.0.0" +itsdangerous = "==1.1.0" +jinja2 = "==2.11.2" +jmespath = "==1.0.1" +joblib = "==1.2.0" +kiwisolver = "==1.4.4" +mako = "==1.2.4" +markupsafe = "==1.1.1" +mypy = "==0.991" +mypy-extensions = "==0.4.3" +packaging = "==23.0" +pbr = "==5.11.1" +pillow = "==9.4.0" +platformdirs = "==2.6.2" +pluggy = "==1.0.0" +protobuf = "==4.21.12" +pyignite = "==0.6.1" +pyjwt = "==2.6.0" +pylogix = "==0.8.7" +pyparsing = "==3.0.9" +pytest = "==7.2.2" +python-dateutil = "==2.8.2" +python-dotenv = "==1.0.0" +python-engineio = "==4.4.0" +python-http-client = "==3.3.7" +pytz = "==2020.1" +requests = "==2.28.2" +sendgrid = "==6.8.0" +six = "==1.15.0" +smtpapi = "==0.3.1" +sqlalchemy = "==1.3.18" +sqlparse = "==0.4.3" +starkbank-ecdsa = "==2.2.0" +stevedore = "==4.1.1" +threadpoolctl = "==3.1.0" +tomli = "==2.0.1" +twilio = "==7.17.0" +typing-extensions = "==4.4.0" +urllib3 = "==1.26.14" +websocket = "==0.2.1" +werkzeug = "==1.0.1" +"zope.event" = "==4.6" +"zope.interface" = "==6.0" +flask-login = "==0.4.1" +oauthlib = "==3.0.1" +pyopenssl = "*" +marshmallow = "==3.19.0" +psycopg2-binary = "*" +flask-pymongo = "*" +pipenv = "*" +pip = "*" +opencv-python = "*" +keyboard = "==0.13.5" + +[dev-packages] +debugpy = "==1.6.7" + +[requires] +python_version = "3.11" diff --git a/backend/Pipfile.lock b/backend/Pipfile.lock new file mode 100644 index 0000000..606642e --- /dev/null +++ b/backend/Pipfile.lock @@ -0,0 +1,3125 @@ +{ + "_meta": { + "hash": { + "sha256": "ea67b812258887b7ad472ae868d64901ca07bb2dc5030de801593ba0556018bf" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.11" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "alembic": { + "hashes": [ + "sha256:4d3bd32ecdbb7bbfb48a9fe9e6d6fd6a831a1b59d03e26e292210237373e7db5", + "sha256:6f1c2207369bf4f49f952057a33bb017fbe5c148c2a773b46906b806ea6e825f" + ], + "index": "pypi", + "version": "==1.9.4" + }, + "aniso8601": { + "hashes": [ + "sha256:529dcb1f5f26ee0df6c0a1ee84b7b27197c3c50fc3a6321d66c544689237d072", + "sha256:c033f63d028b9a58e3ab0c2c7d0532ab4bfa7452bfc788fbfe3ddabd327b181a" + ], + "index": "pypi", + "version": "==8.0.0" + }, + "asgiref": { + "hashes": [ + "sha256:71e68008da809b957b7ee4b43dbccff33d1b23519fb8344e33f049897077afac", + "sha256:9567dfe7bd8d3c8c892227827c41cce860b368104c3431da67a0c5a65a949506" + ], + "index": "pypi", + "version": "==3.6.0" + }, + "attrs": { + "hashes": [ + "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836", + "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99" + ], + "index": "pypi", + "version": "==22.2.0" + }, + "bcrypt": { + "hashes": [ + "sha256:0258f143f3de96b7c14f762c770f5fc56ccd72f8a1857a451c1cd9a655d9ac89", + "sha256:0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42", + "sha256:19a4b72a6ae5bb467fea018b825f0a7d917789bcfe893e53f15c92805d187294", + "sha256:436a487dec749bca7e6e72498a75a5fa2433bda13bac91d023e18df9089ae0b8", + "sha256:5432dd7b34107ae8ed6c10a71b4397f1c853bd39a4d6ffa7e35f40584cffd161", + "sha256:6305557019906466fc42dbc53b46da004e72fd7a551c044a827e572c82191752", + "sha256:69361315039878c0680be456640f8705d76cb4a3a3fe1e057e0f261b74be4b31", + "sha256:6fe49a60b25b584e2f4ef175b29d3a83ba63b3a4df1b4c0605b826668d1b6be5", + "sha256:74a015102e877d0ccd02cdeaa18b32aa7273746914a6c5d0456dd442cb65b99c", + "sha256:763669a367869786bb4c8fcf731f4175775a5b43f070f50f46f0b59da45375d0", + "sha256:8b10acde4e1919d6015e1df86d4c217d3b5b01bb7744c36113ea43d529e1c3de", + "sha256:9fe92406c857409b70a38729dbdf6578caf9228de0aef5bc44f859ffe971a39e", + "sha256:a190f2a5dbbdbff4b74e3103cef44344bc30e61255beb27310e2aec407766052", + "sha256:a595c12c618119255c90deb4b046e1ca3bcfad64667c43d1166f2b04bc72db09", + "sha256:c9457fa5c121e94a58d6505cadca8bed1c64444b83b3204928a866ca2e599105", + "sha256:cb93f6b2ab0f6853550b74e051d297c27a638719753eb9ff66d1e4072be67133", + "sha256:ce4e4f0deb51d38b1611a27f330426154f2980e66582dc5f438aad38b5f24fc1", + "sha256:d7bdc26475679dd073ba0ed2766445bb5b20ca4793ca0db32b399dccc6bc84b7", + "sha256:ff032765bb8716d9387fd5376d987a937254b0619eff0972779515b5c98820bc" + ], + "index": "pypi", + "version": "==3.1.7" + }, + "bidict": { + "hashes": [ + "sha256:1e0f7f74e4860e6d0943a05d4134c63a2fad86f3d4732fb265bd79e4e856d81d", + "sha256:6ef212238eb884b664f28da76f33f1d28b260f665fc737b413b287d5487d1e7b" + ], + "index": "pypi", + "version": "==0.22.1" + }, + "blinker": { + "hashes": [ + "sha256:1eb563df6fdbc39eeddc177d953203f99f097e9bf0e2b8f9f3cf18b6ca425e36", + "sha256:923e5e2f69c155f2cc42dafbbd70e16e3fde24d2d4aa2ab72fbe386238892462" + ], + "index": "pypi", + "version": "==1.5" + }, + "boto3": { + "hashes": [ + "sha256:278d896e9090a976f41ec68da5c572bc4e5b7cb1e515f1898fee8cb2fadfb50d", + "sha256:3ce2225a61832d69831d669d912424ea3863268ca1cfa2a82203bb90952acefa" + ], + "index": "pypi", + "version": "==1.26.91" + }, + "botocore": { + "hashes": [ + "sha256:4ed6a488aee1b42367eace71f7d0993dda05b02eebd7dcdd78db5c9ce3d80da5", + "sha256:a8a800a2a945da807758cace539fc5b5ec1d5082ce363799d3a3870c2c4ed6fc" + ], + "index": "pypi", + "version": "==1.29.91" + }, + "caer": { + "hashes": [ + "sha256:18eef7a6b4cfe203a3fe46b4fcb51abac58fd03cffb1b49c046a768b3437a00c", + "sha256:c5da1019ce15658d53f1787c637fa80b766b09656291c128e6f7cdb0598aef69" + ], + "index": "pypi", + "version": "==2.0.8" + }, + "certifi": { + "hashes": [ + "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", + "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" + ], + "index": "pypi", + "version": "==2022.12.7" + }, + "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" + ], + "index": "pypi", + "version": "==1.15.1" + }, + "charset-normalizer": { + "hashes": [ + "sha256:00d3ffdaafe92a5dc603cb9bd5111aaa36dfa187c8285c543be562e61b755f6b", + "sha256:024e606be3ed92216e2b6952ed859d86b4cfa52cd5bc5f050e7dc28f9b43ec42", + "sha256:0298eafff88c99982a4cf66ba2efa1128e4ddaca0b05eec4c456bbc7db691d8d", + "sha256:02a51034802cbf38db3f89c66fb5d2ec57e6fe7ef2f4a44d070a593c3688667b", + "sha256:083c8d17153ecb403e5e1eb76a7ef4babfc2c48d58899c98fcaa04833e7a2f9a", + "sha256:0a11e971ed097d24c534c037d298ad32c6ce81a45736d31e0ff0ad37ab437d59", + "sha256:0bf2dae5291758b6f84cf923bfaa285632816007db0330002fa1de38bfcb7154", + "sha256:0c0a590235ccd933d9892c627dec5bc7511ce6ad6c1011fdf5b11363022746c1", + "sha256:0f438ae3532723fb6ead77e7c604be7c8374094ef4ee2c5e03a3a17f1fca256c", + "sha256:109487860ef6a328f3eec66f2bf78b0b72400280d8f8ea05f69c51644ba6521a", + "sha256:11b53acf2411c3b09e6af37e4b9005cba376c872503c8f28218c7243582df45d", + "sha256:12db3b2c533c23ab812c2b25934f60383361f8a376ae272665f8e48b88e8e1c6", + "sha256:14e76c0f23218b8f46c4d87018ca2e441535aed3632ca134b10239dfb6dadd6b", + "sha256:16a8663d6e281208d78806dbe14ee9903715361cf81f6d4309944e4d1e59ac5b", + "sha256:292d5e8ba896bbfd6334b096e34bffb56161c81408d6d036a7dfa6929cff8783", + "sha256:2c03cc56021a4bd59be889c2b9257dae13bf55041a3372d3295416f86b295fb5", + "sha256:2e396d70bc4ef5325b72b593a72c8979999aa52fb8bcf03f701c1b03e1166918", + "sha256:2edb64ee7bf1ed524a1da60cdcd2e1f6e2b4f66ef7c077680739f1641f62f555", + "sha256:31a9ddf4718d10ae04d9b18801bd776693487cbb57d74cc3458a7673f6f34639", + "sha256:356541bf4381fa35856dafa6a965916e54bed415ad8a24ee6de6e37deccf2786", + "sha256:358a7c4cb8ba9b46c453b1dd8d9e431452d5249072e4f56cfda3149f6ab1405e", + "sha256:37f8febc8ec50c14f3ec9637505f28e58d4f66752207ea177c1d67df25da5aed", + "sha256:39049da0ffb96c8cbb65cbf5c5f3ca3168990adf3551bd1dee10c48fce8ae820", + "sha256:39cf9ed17fe3b1bc81f33c9ceb6ce67683ee7526e65fde1447c772afc54a1bb8", + "sha256:3ae1de54a77dc0d6d5fcf623290af4266412a7c4be0b1ff7444394f03f5c54e3", + "sha256:3b590df687e3c5ee0deef9fc8c547d81986d9a1b56073d82de008744452d6541", + "sha256:3e45867f1f2ab0711d60c6c71746ac53537f1684baa699f4f668d4c6f6ce8e14", + "sha256:3fc1c4a2ffd64890aebdb3f97e1278b0cc72579a08ca4de8cd2c04799a3a22be", + "sha256:4457ea6774b5611f4bed5eaa5df55f70abde42364d498c5134b7ef4c6958e20e", + "sha256:44ba614de5361b3e5278e1241fda3dc1838deed864b50a10d7ce92983797fa76", + "sha256:4a8fcf28c05c1f6d7e177a9a46a1c52798bfe2ad80681d275b10dcf317deaf0b", + "sha256:4b0d02d7102dd0f997580b51edc4cebcf2ab6397a7edf89f1c73b586c614272c", + "sha256:502218f52498a36d6bf5ea77081844017bf7982cdbe521ad85e64cabee1b608b", + "sha256:503e65837c71b875ecdd733877d852adbc465bd82c768a067badd953bf1bc5a3", + "sha256:5995f0164fa7df59db4746112fec3f49c461dd6b31b841873443bdb077c13cfc", + "sha256:59e5686dd847347e55dffcc191a96622f016bc0ad89105e24c14e0d6305acbc6", + "sha256:601f36512f9e28f029d9481bdaf8e89e5148ac5d89cffd3b05cd533eeb423b59", + "sha256:608862a7bf6957f2333fc54ab4399e405baad0163dc9f8d99cb236816db169d4", + "sha256:62595ab75873d50d57323a91dd03e6966eb79c41fa834b7a1661ed043b2d404d", + "sha256:70990b9c51340e4044cfc394a81f614f3f90d41397104d226f21e66de668730d", + "sha256:71140351489970dfe5e60fc621ada3e0f41104a5eddaca47a7acb3c1b851d6d3", + "sha256:72966d1b297c741541ca8cf1223ff262a6febe52481af742036a0b296e35fa5a", + "sha256:74292fc76c905c0ef095fe11e188a32ebd03bc38f3f3e9bcb85e4e6db177b7ea", + "sha256:761e8904c07ad053d285670f36dd94e1b6ab7f16ce62b9805c475b7aa1cffde6", + "sha256:772b87914ff1152b92a197ef4ea40efe27a378606c39446ded52c8f80f79702e", + "sha256:79909e27e8e4fcc9db4addea88aa63f6423ebb171db091fb4373e3312cb6d603", + "sha256:7e189e2e1d3ed2f4aebabd2d5b0f931e883676e51c7624826e0a4e5fe8a0bf24", + "sha256:7eb33a30d75562222b64f569c642ff3dc6689e09adda43a082208397f016c39a", + "sha256:81d6741ab457d14fdedc215516665050f3822d3e56508921cc7239f8c8e66a58", + "sha256:8499ca8f4502af841f68135133d8258f7b32a53a1d594aa98cc52013fff55678", + "sha256:84c3990934bae40ea69a82034912ffe5a62c60bbf6ec5bc9691419641d7d5c9a", + "sha256:87701167f2a5c930b403e9756fab1d31d4d4da52856143b609e30a1ce7160f3c", + "sha256:88600c72ef7587fe1708fd242b385b6ed4b8904976d5da0893e31df8b3480cb6", + "sha256:8ac7b6a045b814cf0c47f3623d21ebd88b3e8cf216a14790b455ea7ff0135d18", + "sha256:8b8af03d2e37866d023ad0ddea594edefc31e827fee64f8de5611a1dbc373174", + "sha256:8c7fe7afa480e3e82eed58e0ca89f751cd14d767638e2550c77a92a9e749c317", + "sha256:8eade758719add78ec36dc13201483f8e9b5d940329285edcd5f70c0a9edbd7f", + "sha256:911d8a40b2bef5b8bbae2e36a0b103f142ac53557ab421dc16ac4aafee6f53dc", + "sha256:93ad6d87ac18e2a90b0fe89df7c65263b9a99a0eb98f0a3d2e079f12a0735837", + "sha256:95dea361dd73757c6f1c0a1480ac499952c16ac83f7f5f4f84f0658a01b8ef41", + "sha256:9ab77acb98eba3fd2a85cd160851816bfce6871d944d885febf012713f06659c", + "sha256:9cb3032517f1627cc012dbc80a8ec976ae76d93ea2b5feaa9d2a5b8882597579", + "sha256:9cf4e8ad252f7c38dd1f676b46514f92dc0ebeb0db5552f5f403509705e24753", + "sha256:9d9153257a3f70d5f69edf2325357251ed20f772b12e593f3b3377b5f78e7ef8", + "sha256:a152f5f33d64a6be73f1d30c9cc82dfc73cec6477ec268e7c6e4c7d23c2d2291", + "sha256:a16418ecf1329f71df119e8a65f3aa68004a3f9383821edcb20f0702934d8087", + "sha256:a60332922359f920193b1d4826953c507a877b523b2395ad7bc716ddd386d866", + "sha256:a8d0fc946c784ff7f7c3742310cc8a57c5c6dc31631269876a88b809dbeff3d3", + "sha256:ab5de034a886f616a5668aa5d098af2b5385ed70142090e2a31bcbd0af0fdb3d", + "sha256:c22d3fe05ce11d3671297dc8973267daa0f938b93ec716e12e0f6dee81591dc1", + "sha256:c2ac1b08635a8cd4e0cbeaf6f5e922085908d48eb05d44c5ae9eabab148512ca", + "sha256:c512accbd6ff0270939b9ac214b84fb5ada5f0409c44298361b2f5e13f9aed9e", + "sha256:c75ffc45f25324e68ab238cb4b5c0a38cd1c3d7f1fb1f72b5541de469e2247db", + "sha256:c95a03c79bbe30eec3ec2b7f076074f4281526724c8685a42872974ef4d36b72", + "sha256:cadaeaba78750d58d3cc6ac4d1fd867da6fc73c88156b7a3212a3cd4819d679d", + "sha256:cd6056167405314a4dc3c173943f11249fa0f1b204f8b51ed4bde1a9cd1834dc", + "sha256:db72b07027db150f468fbada4d85b3b2729a3db39178abf5c543b784c1254539", + "sha256:df2c707231459e8a4028eabcd3cfc827befd635b3ef72eada84ab13b52e1574d", + "sha256:e62164b50f84e20601c1ff8eb55620d2ad25fb81b59e3cd776a1902527a788af", + "sha256:e696f0dd336161fca9adbb846875d40752e6eba585843c768935ba5c9960722b", + "sha256:eaa379fcd227ca235d04152ca6704c7cb55564116f8bc52545ff357628e10602", + "sha256:ebea339af930f8ca5d7a699b921106c6e29c617fe9606fa7baa043c1cdae326f", + "sha256:f4c39b0e3eac288fedc2b43055cfc2ca7a60362d0e5e87a637beac5d801ef478", + "sha256:f5057856d21e7586765171eac8b9fc3f7d44ef39425f85dbcccb13b3ebea806c", + "sha256:f6f45710b4459401609ebebdbcfb34515da4fc2aa886f95107f556ac69a9147e", + "sha256:f97e83fa6c25693c7a35de154681fcc257c1c41b38beb0304b9c4d2d9e164479", + "sha256:f9d0c5c045a3ca9bedfc35dca8526798eb91a07aa7a2c0fee134c6c6f321cbd7", + "sha256:ff6f3db31555657f3163b15a6b7c6938d08df7adbfc9dd13d9d19edad678f1e8" + ], + "index": "pypi", + "version": "==3.0.1" + }, + "click": { + "hashes": [ + "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", + "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" + ], + "index": "pypi", + "version": "==7.1.2" + }, + "config": { + "hashes": [ + "sha256:2dd4a03aa383d30711d5a3325a1858de225328d61950a85be5b74c100f63016d", + "sha256:79ffa009ff2663cc8ca29e56bcec031c044609d4bafaa4f884132a413101ce84" + ], + "index": "pypi", + "version": "==0.5.1" + }, + "contourpy": { + "hashes": [ + "sha256:031154ed61f7328ad7f97662e48660a150ef84ee1bc8876b6472af88bf5a9b98", + "sha256:0f9d350b639db6c2c233d92c7f213d94d2e444d8e8fc5ca44c9706cf72193772", + "sha256:130230b7e49825c98edf0b428b7aa1125503d91732735ef897786fe5452b1ec2", + "sha256:152fd8f730c31fd67fe0ffebe1df38ab6a669403da93df218801a893645c6ccc", + "sha256:1c71fdd8f1c0f84ffd58fca37d00ca4ebaa9e502fb49825484da075ac0b0b803", + "sha256:24847601071f740837aefb730e01bd169fbcaa610209779a78db7ebb6e6a7051", + "sha256:2e9ebb4425fc1b658e13bace354c48a933b842d53c458f02c86f371cecbedecc", + "sha256:30676ca45084ee61e9c3da589042c24a57592e375d4b138bd84d8709893a1ba4", + "sha256:31a55dccc8426e71817e3fe09b37d6d48ae40aae4ecbc8c7ad59d6893569c436", + "sha256:366a0cf0fc079af5204801786ad7a1c007714ee3909e364dbac1729f5b0849e5", + "sha256:38e2e577f0f092b8e6774459317c05a69935a1755ecfb621c0a98f0e3c09c9a5", + "sha256:3c184ad2433635f216645fdf0493011a4667e8d46b34082f5a3de702b6ec42e3", + "sha256:3caea6365b13119626ee996711ab63e0c9d7496f65641f4459c60a009a1f3e80", + "sha256:3e927b3868bd1e12acee7cc8f3747d815b4ab3e445a28d2e5373a7f4a6e76ba1", + "sha256:4ee3ee247f795a69e53cd91d927146fb16c4e803c7ac86c84104940c7d2cabf0", + "sha256:54d43960d809c4c12508a60b66cb936e7ed57d51fb5e30b513934a4a23874fae", + "sha256:57119b0116e3f408acbdccf9eb6ef19d7fe7baf0d1e9aaa5381489bc1aa56556", + "sha256:58569c491e7f7e874f11519ef46737cea1d6eda1b514e4eb5ac7dab6aa864d02", + "sha256:5a011cf354107b47c58ea932d13b04d93c6d1d69b8b6dce885e642531f847566", + "sha256:5caeacc68642e5f19d707471890f037a13007feba8427eb7f2a60811a1fc1350", + "sha256:5dd34c1ae752515318224cba7fc62b53130c45ac6a1040c8b7c1a223c46e8967", + "sha256:60835badb5ed5f4e194a6f21c09283dd6e007664a86101431bf870d9e86266c4", + "sha256:62398c80ef57589bdbe1eb8537127321c1abcfdf8c5f14f479dbbe27d0322e66", + "sha256:6381fa66866b0ea35e15d197fc06ac3840a9b2643a6475c8fff267db8b9f1e69", + "sha256:64757f6460fc55d7e16ed4f1de193f362104285c667c112b50a804d482777edd", + "sha256:69f8ff4db108815addd900a74df665e135dbbd6547a8a69333a68e1f6e368ac2", + "sha256:6c180d89a28787e4b73b07e9b0e2dac7741261dbdca95f2b489c4f8f887dd810", + "sha256:71b0bf0c30d432278793d2141362ac853859e87de0a7dee24a1cea35231f0d50", + "sha256:769eef00437edf115e24d87f8926955f00f7704bede656ce605097584f9966dc", + "sha256:7f6979d20ee5693a1057ab53e043adffa1e7418d734c1532e2d9e915b08d8ec2", + "sha256:87f4d8941a9564cda3f7fa6a6cd9b32ec575830780677932abdec7bcb61717b0", + "sha256:89ba9bb365446a22411f0673abf6ee1fea3b2cf47b37533b970904880ceb72f3", + "sha256:8acf74b5d383414401926c1598ed77825cd530ac7b463ebc2e4f46638f56cce6", + "sha256:9056c5310eb1daa33fc234ef39ebfb8c8e2533f088bbf0bc7350f70a29bde1ac", + "sha256:95c3acddf921944f241b6773b767f1cbce71d03307270e2d769fd584d5d1092d", + "sha256:9e20e5a1908e18aaa60d9077a6d8753090e3f85ca25da6e25d30dc0a9e84c2c6", + "sha256:a1e97b86f73715e8670ef45292d7cc033548266f07d54e2183ecb3c87598888f", + "sha256:a877ada905f7d69b2a31796c4b66e31a8068b37aa9b78832d41c82fc3e056ddd", + "sha256:a9d7587d2fdc820cc9177139b56795c39fb8560f540bba9ceea215f1f66e1566", + "sha256:abf298af1e7ad44eeb93501e40eb5a67abbf93b5d90e468d01fc0c4451971afa", + "sha256:ae90d5a8590e5310c32a7630b4b8618cef7563cebf649011da80874d0aa8f414", + "sha256:b6d0f9e1d39dbfb3977f9dd79f156c86eb03e57a7face96f199e02b18e58d32a", + "sha256:b8d587cc39057d0afd4166083d289bdeff221ac6d3ee5046aef2d480dc4b503c", + "sha256:c5210e5d5117e9aec8c47d9156d1d3835570dd909a899171b9535cb4a3f32693", + "sha256:cc331c13902d0f50845099434cd936d49d7a2ca76cb654b39691974cb1e4812d", + "sha256:ce41676b3d0dd16dbcfabcc1dc46090aaf4688fd6e819ef343dbda5a57ef0161", + "sha256:d8165a088d31798b59e91117d1f5fc3df8168d8b48c4acc10fc0df0d0bdbcc5e", + "sha256:e7281244c99fd7c6f27c1c6bfafba878517b0b62925a09b586d88ce750a016d2", + "sha256:e96a08b62bb8de960d3a6afbc5ed8421bf1a2d9c85cc4ea73f4bc81b4910500f", + "sha256:ed33433fc3820263a6368e532f19ddb4c5990855e4886088ad84fd7c4e561c71", + "sha256:efb8f6d08ca7998cf59eaf50c9d60717f29a1a0a09caa46460d33b2924839dbd", + "sha256:efe99298ba37e37787f6a2ea868265465410822f7bea163edcc1bd3903354ea9", + "sha256:f99e9486bf1bb979d95d5cffed40689cb595abb2b841f2991fc894b3452290e8", + "sha256:fc1464c97579da9f3ab16763c32e5c5d5bb5fa1ec7ce509a4ca6108b61b84fab", + "sha256:fd7dc0e6812b799a34f6d12fcb1000539098c249c8da54f3566c6a6461d0dbad" + ], + "index": "pypi", + "version": "==1.0.7" + }, + "cryptography": { + "hashes": [ + "sha256:103e8f7155f3ce2ffa0049fe60169878d47a4364b277906386f8de21c9234aa1", + "sha256:23df8ca3f24699167daf3e23e51f7ba7334d504af63a94af468f468b975b7dd7", + "sha256:2725672bb53bb92dc7b4150d233cd4b8c59615cd8288d495eaa86db00d4e5c06", + "sha256:30b1d1bfd00f6fc80d11300a29f1d8ab2b8d9febb6ed4a38a76880ec564fae84", + "sha256:35d658536b0a4117c885728d1a7032bdc9a5974722ae298d6c533755a6ee3915", + "sha256:50cadb9b2f961757e712a9737ef33d89b8190c3ea34d0fb6675e00edbe35d074", + "sha256:5f8c682e736513db7d04349b4f6693690170f95aac449c56f97415c6980edef5", + "sha256:6236a9610c912b129610eb1a274bdc1350b5df834d124fa84729ebeaf7da42c3", + "sha256:788b3921d763ee35dfdb04248d0e3de11e3ca8eb22e2e48fef880c42e1f3c8f9", + "sha256:8bc0008ef798231fac03fe7d26e82d601d15bd16f3afaad1c6113771566570f3", + "sha256:8f35c17bd4faed2bc7797d2a66cbb4f986242ce2e30340ab832e5d99ae60e011", + "sha256:b49a88ff802e1993b7f749b1eeb31134f03c8d5c956e3c125c75558955cda536", + "sha256:bc0521cce2c1d541634b19f3ac661d7a64f9555135e9d8af3980965be717fd4a", + "sha256:bc5b871e977c8ee5a1bbc42fa8d19bcc08baf0c51cbf1586b0e87a2694dde42f", + "sha256:c43ac224aabcbf83a947eeb8b17eaf1547bce3767ee2d70093b461f31729a480", + "sha256:d15809e0dbdad486f4ad0979753518f47980020b7a34e9fc56e8be4f60702fac", + "sha256:d7d84a512a59f4412ca8549b01f94be4161c94efc598bf09d027d67826beddc0", + "sha256:e029b844c21116564b8b61216befabca4b500e6816fa9f0ba49527653cae2108", + "sha256:e8a0772016feeb106efd28d4a328e77dc2edae84dfbac06061319fdb669ff828", + "sha256:e944fe07b6f229f4c1a06a7ef906a19652bdd9fd54c761b0ff87e83ae7a30354", + "sha256:eb40fe69cfc6f5cdab9a5ebd022131ba21453cf7b8a7fd3631f45bbf52bed612", + "sha256:fa507318e427169ade4e9eccef39e9011cdc19534f55ca2f36ec3f388c1f70f3", + "sha256:ffd394c7896ed7821a6d13b24657c6a34b6e2650bd84ae063cf11ccffa4f1a97" + ], + "index": "pypi", + "version": "==39.0.2" + }, + "cycler": { + "hashes": [ + "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3", + "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f" + ], + "index": "pypi", + "version": "==0.11.0" + }, + "datetime": { + "hashes": [ + "sha256:97f5ec489e75e26c2e7b4e4b37dc001389814dca1f14ec046c7f9270cf3cee9e", + "sha256:a4191a3193c1ca4dbbaad5c958f940b9256864ba2613a53038d1613d3f63262d" + ], + "index": "pypi", + "version": "==5.1" + }, + "depthai": { + "hashes": [ + "sha256:0268010dde3d2c3102325aeaa9d1c2ef704a043d9f7b7d89cf3d6aed23c9ad1e", + "sha256:184d12e7e07b4b1546ea0e2c7d5ce078e6417bb7b86340172876f341c6c8b220", + "sha256:22b36b012005d4fb11a8da5ec3c41a8d36dc860df016d2dab78923df8a4c3eb1", + "sha256:2503f3466f331019f4267648dcb29cc0683712146037050515f3a72053bdd7af", + "sha256:292e2845cd0b291a72552c72a442027acb703e0abb004023126e8522a296a767", + "sha256:2aad04ebf034d9c88276b2de04ba5bd87d9964e256ce170be34929a1eca00ea2", + "sha256:2d4cacb84e426e2b1d19f5b889c03df9937cdc6ce61100f2353da15d298ff9a4", + "sha256:32da9b01f5267ce91ea84f052ab89c2215e9ad2303df3f6a8217f2d6693fc4ff", + "sha256:3567d344987fa93a3582644afafeb9f2b98225060939a940df339d7f37de108e", + "sha256:3fc5c923e4496849f2cc7e3f9fadab7067a12b1156a19986ee6aa40c2138a399", + "sha256:547bcd167dc3749008c59dc337895359f3791c70ff1a47ae63fbd88709e69386", + "sha256:57b6bb88e4d2cdecab6c8609020863f041af5055a86a4c9172e415128384a805", + "sha256:66e523eb24f8c147b079487169e273cae8b1c53dcd8e904204ecd7c2ed5dc555", + "sha256:6a878d8c9f7afd3458af9b266fa4b0e28ed712a9a50ce1c09656e61f33839b8d", + "sha256:7da6ed8fe3550ec4d410c36a1a4413e57125cc6e719bccc4980764e82af48368", + "sha256:7ddf92c96b05823b5fec60294b64d702566d789d1ec4a1c507e39b3a6288de84", + "sha256:80aa5f14946aa44263a9c2535f1c3f811854ceb30088bb5de49571bc418cb15f", + "sha256:842b622443e9b1fb3e199cc7fc39c9f381a59fac374f7497017d1c96dd4a4996", + "sha256:8f9026798187189d41d4356a84c59805956211622ee0492c0a8d904c352f98ae", + "sha256:95790a4bb662d6f071c241d808a86a937df13dd9e0afcd64e64dd17601f594fc", + "sha256:9626cfe89ebe0c7dac1211d1477b37cefbe2fddc36db2233160839ba675b2ba7", + "sha256:9c63797d815a95e8d5a17dc579feb5473a316e44c9f3a46a512589f9674f9d09", + "sha256:9e12978d0baa3f6e2afe1370cfc6b3039cc834a18d9024dd53ed9824e5ef5bfd", + "sha256:9f8e2e1bb9b6f914a8a4468e18bd03b8706ce85c2cc298fa54ad5fdfcb5d2515", + "sha256:a63209a742ccf2588253ef4f9b8f6b1342f354eb8f50821e791fb00cd9bfde99", + "sha256:ab082d078651e53dcd8d9d6fd304c695e949a7498b1240c3548d2642db476421", + "sha256:b6df2ce0b07cd3076e6c31b1008faa7b75c99efde191da4bccf70c4e083362f8", + "sha256:bf43bf996cb87b2d8b93d63371c8587d16f27d5698cbbd6c10d05f662531d756", + "sha256:c0c7145927bf9ebb9facca28f128be202f2dcf18b355beb7a4ecd13fe41700c3", + "sha256:cb9c25c78c978a04c962460d732f86b3cbd2bb8577e980e8bdeff602715af0a9", + "sha256:e3510066cbca45b495e7577fcea8d43218a82f8901bf97340fa5b69c7ffa5f1f", + "sha256:e8730eeaa05bce91420be722c059d6d8666ef1208856bc5d5141034ac41a706f", + "sha256:f25f93a9aee2bf0f9ff41d29b38b1ef49562164d81bef2f8283d8ed269011084", + "sha256:f6a59b089ee57f4feff3ddc507f84723ba093d9c31dedf85ecfcc7c88efd9d76", + "sha256:fbeee9049734332a4b2db9d0c3cc6ae8f9c7f8b17407691e1ec9e99d3b45a125", + "sha256:fc86d4d9b90942442eff05ac28e38706e7df10fc759552afd5abeb5bd355fe19" + ], + "index": "pypi", + "version": "==2.21.2.0" + }, + "distlib": { + "hashes": [ + "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46", + "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e" + ], + "index": "pypi", + "version": "==0.3.6" + }, + "dnspython": { + "hashes": [ + "sha256:224e32b03eb46be70e12ef6d64e0be123a64e621ab4c0822ff6d450d52a540b9", + "sha256:89141536394f909066cabd112e3e1a37e4e654db00a25308b0f130bc3152eb46" + ], + "markers": "python_version >= '3.7' and python_version < '4.0'", + "version": "==2.3.0" + }, + "exceptiongroup": { + "hashes": [ + "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e", + "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23" + ], + "index": "pypi", + "version": "==1.1.0" + }, + "filelock": { + "hashes": [ + "sha256:7b319f24340b51f55a2bf7a12ac0755a9b03e718311dac567a0f4f7fabd2f5de", + "sha256:f58d535af89bb9ad5cd4df046f741f8553a418c01a7856bf0d173bbc9f6bd16d" + ], + "index": "pypi", + "version": "==3.9.0" + }, + "flask": { + "hashes": [ + "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060", + "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557" + ], + "index": "pypi", + "version": "==1.1.2" + }, + "flask-bcrypt": { + "hashes": [ + "sha256:062fd991dc9118d05ac0583675507b9fe4670e44416c97e0e6819d03d01f808a", + "sha256:f07b66b811417ea64eb188ae6455b0b708a793d966e1a80ceec4a23bc42a4369" + ], + "index": "pypi", + "version": "==1.0.1" + }, + "flask-cors": { + "hashes": [ + "sha256:74efc975af1194fc7891ff5cd85b0f7478be4f7f59fe158102e91abb72bb4438", + "sha256:b60839393f3b84a0f3746f6cdca56c1ad7426aa738b70d6c61375857823181de" + ], + "index": "pypi", + "version": "==3.0.10" + }, + "flask-login": { + "hashes": [ + "sha256:c815c1ac7b3e35e2081685e389a665f2c74d7e077cb93cecabaea352da4752ec" + ], + "index": "pypi", + "version": "==0.4.1" + }, + "flask-mail": { + "hashes": [ + "sha256:22e5eb9a940bf407bcf30410ecc3708f3c56cc44b29c34e1726fe85006935f41" + ], + "index": "pypi", + "version": "==0.9.1" + }, + "flask-migrate": { + "hashes": [ + "sha256:73293d40b10ac17736e715b377e7b7bde474cb8105165d77474df4c3619b10b3", + "sha256:77580f27ab39bc68be4906a43c56d7674b45075bc4f883b1d0b985db5164d58f" + ], + "index": "pypi", + "version": "==4.0.4" + }, + "flask-pymongo": { + "hashes": [ + "sha256:620eb02dc8808a5fcb90f26cab6cba9d6bf497b15032ae3ca99df80366e33314", + "sha256:8a9577a2c6d00b49f21cb5a5a8d72561730364a2d745551a85349ab02f86fc73" + ], + "index": "pypi", + "version": "==2.3.0" + }, + "flask-restful": { + "hashes": [ + "sha256:4970c49b6488e46c520b325f54833374dc2b98e211f1b272bd4b0c516232afe2", + "sha256:ccec650b835d48192138c85329ae03735e6ced58e9b2d9c2146d6c84c06fa53e" + ], + "index": "pypi", + "version": "==0.3.9" + }, + "flask-socketio": { + "hashes": [ + "sha256:1f6a5afd68a4bf01140ef891c24f04ad0c52487d4829281a42eca0a35a204acf", + "sha256:8f47762dd1b76916cbc01f4f8661dd4670dbeb418ca0e1aaedab909b85efee5d" + ], + "index": "pypi", + "version": "==5.3.3" + }, + "flask-sqlalchemy": { + "hashes": [ + "sha256:0b656fbf87c5f24109d859bafa791d29751fabbda2302b606881ae5485b557a5", + "sha256:fcfe6df52cd2ed8a63008ca36b86a51fa7a4b70cef1c39e5625f722fca32308e" + ], + "index": "pypi", + "version": "==2.4.3" + }, + "fonttools": { + "hashes": [ + "sha256:2bb244009f9bf3fa100fc3ead6aeb99febe5985fa20afbfbaa2f8946c2fbdaf1", + "sha256:820466f43c8be8c3009aef8b87e785014133508f0de64ec469e4efb643ae54fb" + ], + "index": "pypi", + "version": "==4.38.0" + }, + "gevent": { + "hashes": [ + "sha256:018f93de7d5318d2fb440f846839a4464738468c3476d5c9cf7da45bb71c18bd", + "sha256:0d581f22a5be6281b11ad6309b38b18f0638cf896931223cbaa5adb904826ef6", + "sha256:1472012493ca1fac103f700d309cb6ef7964dcdb9c788d1768266e77712f5e49", + "sha256:172caa66273315f283e90a315921902cb6549762bdcb0587fd60cb712a9d6263", + "sha256:17b68f4c9e20e47ad49fe797f37f91d5bbeace8765ce2707f979a8d4ec197e4d", + "sha256:1ca01da176ee37b3527a2702f7d40dbc9ffb8cfc7be5a03bfa4f9eec45e55c46", + "sha256:1d543c9407a1e4bca11a8932916988cfb16de00366de5bf7bc9e7a3f61e60b18", + "sha256:1e1286a76f15b5e15f1e898731d50529e249529095a032453f2c101af3fde71c", + "sha256:1e955238f59b2947631c9782a713280dd75884e40e455313b5b6bbc20b92ff73", + "sha256:1f001cac0ba8da76abfeb392a3057f81fab3d67cc916c7df8ea977a44a2cc989", + "sha256:1ff3796692dff50fec2f381b9152438b221335f557c4f9b811f7ded51b7a25a1", + "sha256:2929377c8ebfb6f4d868d161cd8de2ea6b9f6c7a5fcd4f78bcd537319c16190b", + "sha256:319d8b1699b7b8134de66d656cd739b308ab9c45ace14d60ae44de7775b456c9", + "sha256:323b207b281ba0405fea042067fa1a61662e5ac0d574ede4ebbda03efd20c350", + "sha256:3b7eae8a0653ba95a224faaddf629a913ace408edb67384d3117acf42d7dcf89", + "sha256:4114f0f439f0b547bb6f1d474fee99ddb46736944ad2207cef3771828f6aa358", + "sha256:4197d423e198265eef39a0dea286ef389da9148e070310f34455ecee8172c391", + "sha256:494c7f29e94df9a1c3157d67bb7edfa32a46eed786e04d9ee68d39f375e30001", + "sha256:4e2f008c82dc54ec94f4de12ca6feea60e419babb48ec145456907ae61625aa4", + "sha256:53ee7f170ed42c7561fe8aff5d381dc9a4124694e70580d0c02fba6aafc0ea37", + "sha256:54f4bfd74c178351a4a05c5c7df6f8a0a279ff6f392b57608ce0e83c768207f9", + "sha256:58898dbabb5b11e4d0192aae165ad286dc6742c543e1be9d30dc82753547c508", + "sha256:59b47e81b399d49a5622f0f503c59f1ce57b7705306ea0196818951dfc2f36c8", + "sha256:5aa99e4882a9e909b4756ee799c6fa0f79eb0542779fad4cc60efa23ec1b2aa8", + "sha256:6c04ee32c11e9fcee47c1b431834878dc987a7a2cc4fe126ddcae3bad723ce89", + "sha256:84c517e33ed604fa06b7d756dc0171169cc12f7fdd68eb7b17708a62eebf4516", + "sha256:8729129edef2637a8084258cb9ec4e4d5ca45d97ac77aa7a6ff19ccb530ab731", + "sha256:877abdb3a669576b1d51ce6a49b7260b2a96f6b2424eb93287e779a3219d20ba", + "sha256:8c192d2073e558e241f0b592c1e2b34127a4481a5be240cad4796533b88b1a98", + "sha256:8f2477e7b0a903a01485c55bacf2089110e5f767014967ba4b287ff390ae2638", + "sha256:96c56c280e3c43cfd075efd10b250350ed5ffd3c1514ec99a080b1b92d7c8374", + "sha256:97cd42382421779f5d82ec5007199e8a84aa288114975429e4fd0a98f2290f10", + "sha256:98bc510e80f45486ef5b806a1c305e0e89f0430688c14984b0dbdec03331f48b", + "sha256:990d7069f14dc40674e0d5cb43c68fd3bad8337048613b9bb94a0c4180ffc176", + "sha256:9d85574eb729f981fea9a78998725a06292d90a3ed50ddca74530c3148c0be41", + "sha256:a2237451c721a0f874ef89dbb4af4fdc172b76a964befaa69deb15b8fff10f49", + "sha256:a47a4e77e2bc668856aad92a0b8de7ee10768258d93cd03968e6c7ba2e832f76", + "sha256:a5488eba6a568b4d23c072113da4fc0feb1b5f5ede7381656dc913e0d82204e2", + "sha256:ae90226074a6089371a95f20288431cd4b3f6b0b096856afd862e4ac9510cddd", + "sha256:b43d500d7d3c0e03070dee813335bb5315215aa1cf6a04c61093dfdd718640b3", + "sha256:b6c144e08dfad4106effc043a026e5d0c0eff6ad031904c70bf5090c63f3a6a7", + "sha256:d21ad79cca234cdbfa249e727500b0ddcbc7adfff6614a96e6eaa49faca3e4f2", + "sha256:d82081656a5b9a94d37c718c8646c757e1617e389cdc533ea5e6a6f0b8b78545", + "sha256:da4183f0b9d9a1e25e1758099220d32c51cc2c6340ee0dea3fd236b2b37598e4", + "sha256:db562a8519838bddad0c439a2b12246bab539dd50e299ea7ff3644274a33b6a5", + "sha256:ddaa3e310a8f1a45b5c42cf50b54c31003a3028e7d4e085059090ea0e7a5fddd", + "sha256:ed7f16613eebf892a6a744d7a4a8f345bc6f066a0ff3b413e2479f9c0a180193", + "sha256:efc003b6c1481165af61f0aeac248e0a9ac8d880bb3acbe469b448674b2d5281", + "sha256:f01c9adbcb605364694b11dcd0542ec468a29ac7aba2fb5665dc6caf17ba4d7e", + "sha256:f23d0997149a816a2a9045af29c66f67f405a221745b34cefeac5769ed451db8", + "sha256:f3329bedbba4d3146ae58c667e0f9ac1e6f1e1e6340c7593976cdc60aa7d1a47", + "sha256:f7ed2346eb9dc4344f9cb0d7963ce5b74fe16fdd031a2809bb6c2b6eba7ebcd5" + ], + "index": "pypi", + "version": "==22.10.2" + }, + "greenlet": { + "hashes": [ + "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a", + "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a", + "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43", + "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33", + "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8", + "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088", + "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca", + "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343", + "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645", + "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db", + "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df", + "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3", + "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86", + "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2", + "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a", + "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf", + "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7", + "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394", + "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40", + "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3", + "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6", + "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74", + "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0", + "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3", + "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91", + "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5", + "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9", + "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8", + "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b", + "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6", + "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb", + "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73", + "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b", + "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df", + "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9", + "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f", + "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0", + "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857", + "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a", + "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249", + "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30", + "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292", + "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b", + "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d", + "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b", + "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c", + "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca", + "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7", + "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75", + "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae", + "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b", + "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470", + "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564", + "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9", + "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099", + "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0", + "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5", + "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19", + "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1", + "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526" + ], + "index": "pypi", + "version": "==2.0.2" + }, + "idna": { + "hashes": [ + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + ], + "index": "pypi", + "version": "==3.4" + }, + "imutils": { + "hashes": [ + "sha256:03827a9fca8b5c540305c0844a62591cf35a0caec199cb0f2f0a4a0fb15d8f24" + ], + "index": "pypi", + "version": "==0.5.4" + }, + "iniconfig": { + "hashes": [ + "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", + "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" + ], + "index": "pypi", + "version": "==2.0.0" + }, + "itsdangerous": { + "hashes": [ + "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19", + "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749" + ], + "index": "pypi", + "version": "==1.1.0" + }, + "jinja2": { + "hashes": [ + "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", + "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035" + ], + "index": "pypi", + "version": "==2.11.2" + }, + "jmespath": { + "hashes": [ + "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", + "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe" + ], + "index": "pypi", + "version": "==1.0.1" + }, + "joblib": { + "hashes": [ + "sha256:091138ed78f800342968c523bdde947e7a305b8594b910a0fea2ab83c3c6d385", + "sha256:e1cee4a79e4af22881164f218d4311f60074197fb707e082e803b61f6d137018" + ], + "index": "pypi", + "version": "==1.2.0" + }, + "keyboard": { + "hashes": [ + "sha256:63ed83305955939ca5c9a73755e5cc43e8242263f5ad5fd3bb7e0b032f3d308b", + "sha256:8e9c2422f1217e0bd84489b9ecd361027cc78415828f4fe4f88dd4acd587947b" + ], + "index": "pypi", + "version": "==0.13.5" + }, + "kiwisolver": { + "hashes": [ + "sha256:02f79693ec433cb4b5f51694e8477ae83b3205768a6fb48ffba60549080e295b", + "sha256:03baab2d6b4a54ddbb43bba1a3a2d1627e82d205c5cf8f4c924dc49284b87166", + "sha256:1041feb4cda8708ce73bb4dcb9ce1ccf49d553bf87c3954bdfa46f0c3f77252c", + "sha256:10ee06759482c78bdb864f4109886dff7b8a56529bc1609d4f1112b93fe6423c", + "sha256:1d1573129aa0fd901076e2bfb4275a35f5b7aa60fbfb984499d661ec950320b0", + "sha256:283dffbf061a4ec60391d51e6155e372a1f7a4f5b15d59c8505339454f8989e4", + "sha256:28bc5b299f48150b5f822ce68624e445040595a4ac3d59251703779836eceff9", + "sha256:2a66fdfb34e05b705620dd567f5a03f239a088d5a3f321e7b6ac3239d22aa286", + "sha256:2e307eb9bd99801f82789b44bb45e9f541961831c7311521b13a6c85afc09767", + "sha256:2e407cb4bd5a13984a6c2c0fe1845e4e41e96f183e5e5cd4d77a857d9693494c", + "sha256:2f5e60fabb7343a836360c4f0919b8cd0d6dbf08ad2ca6b9cf90bf0c76a3c4f6", + "sha256:36dafec3d6d6088d34e2de6b85f9d8e2324eb734162fba59d2ba9ed7a2043d5b", + "sha256:3fe20f63c9ecee44560d0e7f116b3a747a5d7203376abeea292ab3152334d004", + "sha256:41dae968a94b1ef1897cb322b39360a0812661dba7c682aa45098eb8e193dbdf", + "sha256:4bd472dbe5e136f96a4b18f295d159d7f26fd399136f5b17b08c4e5f498cd494", + "sha256:4ea39b0ccc4f5d803e3337dd46bcce60b702be4d86fd0b3d7531ef10fd99a1ac", + "sha256:5853eb494c71e267912275e5586fe281444eb5e722de4e131cddf9d442615626", + "sha256:5bce61af018b0cb2055e0e72e7d65290d822d3feee430b7b8203d8a855e78766", + "sha256:6295ecd49304dcf3bfbfa45d9a081c96509e95f4b9d0eb7ee4ec0530c4a96514", + "sha256:62ac9cc684da4cf1778d07a89bf5f81b35834cb96ca523d3a7fb32509380cbf6", + "sha256:70e7c2e7b750585569564e2e5ca9845acfaa5da56ac46df68414f29fea97be9f", + "sha256:7577c1987baa3adc4b3c62c33bd1118c3ef5c8ddef36f0f2c950ae0b199e100d", + "sha256:75facbe9606748f43428fc91a43edb46c7ff68889b91fa31f53b58894503a191", + "sha256:787518a6789009c159453da4d6b683f468ef7a65bbde796bcea803ccf191058d", + "sha256:78d6601aed50c74e0ef02f4204da1816147a6d3fbdc8b3872d263338a9052c51", + "sha256:7c43e1e1206cd421cd92e6b3280d4385d41d7166b3ed577ac20444b6995a445f", + "sha256:81e38381b782cc7e1e46c4e14cd997ee6040768101aefc8fa3c24a4cc58e98f8", + "sha256:841293b17ad704d70c578f1f0013c890e219952169ce8a24ebc063eecf775454", + "sha256:872b8ca05c40d309ed13eb2e582cab0c5a05e81e987ab9c521bf05ad1d5cf5cb", + "sha256:877272cf6b4b7e94c9614f9b10140e198d2186363728ed0f701c6eee1baec1da", + "sha256:8c808594c88a025d4e322d5bb549282c93c8e1ba71b790f539567932722d7bd8", + "sha256:8ed58b8acf29798b036d347791141767ccf65eee7f26bde03a71c944449e53de", + "sha256:91672bacaa030f92fc2f43b620d7b337fd9a5af28b0d6ed3f77afc43c4a64b5a", + "sha256:968f44fdbf6dd757d12920d63b566eeb4d5b395fd2d00d29d7ef00a00582aac9", + "sha256:9f85003f5dfa867e86d53fac6f7e6f30c045673fa27b603c397753bebadc3008", + "sha256:a553dadda40fef6bfa1456dc4be49b113aa92c2a9a9e8711e955618cd69622e3", + "sha256:a68b62a02953b9841730db7797422f983935aeefceb1679f0fc85cbfbd311c32", + "sha256:abbe9fa13da955feb8202e215c4018f4bb57469b1b78c7a4c5c7b93001699938", + "sha256:ad881edc7ccb9d65b0224f4e4d05a1e85cf62d73aab798943df6d48ab0cd79a1", + "sha256:b1792d939ec70abe76f5054d3f36ed5656021dcad1322d1cc996d4e54165cef9", + "sha256:b428ef021242344340460fa4c9185d0b1f66fbdbfecc6c63eff4b7c29fad429d", + "sha256:b533558eae785e33e8c148a8d9921692a9fe5aa516efbdff8606e7d87b9d5824", + "sha256:ba59c92039ec0a66103b1d5fe588fa546373587a7d68f5c96f743c3396afc04b", + "sha256:bc8d3bd6c72b2dd9decf16ce70e20abcb3274ba01b4e1c96031e0c4067d1e7cd", + "sha256:bc9db8a3efb3e403e4ecc6cd9489ea2bac94244f80c78e27c31dcc00d2790ac2", + "sha256:bf7d9fce9bcc4752ca4a1b80aabd38f6d19009ea5cbda0e0856983cf6d0023f5", + "sha256:c2dbb44c3f7e6c4d3487b31037b1bdbf424d97687c1747ce4ff2895795c9bf69", + "sha256:c79ebe8f3676a4c6630fd3f777f3cfecf9289666c84e775a67d1d358578dc2e3", + "sha256:c97528e64cb9ebeff9701e7938653a9951922f2a38bd847787d4a8e498cc83ae", + "sha256:d0611a0a2a518464c05ddd5a3a1a0e856ccc10e67079bb17f265ad19ab3c7597", + "sha256:d06adcfa62a4431d404c31216f0f8ac97397d799cd53800e9d3efc2fbb3cf14e", + "sha256:d41997519fcba4a1e46eb4a2fe31bc12f0ff957b2b81bac28db24744f333e955", + "sha256:d5b61785a9ce44e5a4b880272baa7cf6c8f48a5180c3e81c59553ba0cb0821ca", + "sha256:da152d8cdcab0e56e4f45eb08b9aea6455845ec83172092f09b0e077ece2cf7a", + "sha256:da7e547706e69e45d95e116e6939488d62174e033b763ab1496b4c29b76fabea", + "sha256:db5283d90da4174865d520e7366801a93777201e91e79bacbac6e6927cbceede", + "sha256:db608a6757adabb32f1cfe6066e39b3706d8c3aa69bbc353a5b61edad36a5cb4", + "sha256:e0ea21f66820452a3f5d1655f8704a60d66ba1191359b96541eaf457710a5fc6", + "sha256:e7da3fec7408813a7cebc9e4ec55afed2d0fd65c4754bc376bf03498d4e92686", + "sha256:e92a513161077b53447160b9bd8f522edfbed4bd9759e4c18ab05d7ef7e49408", + "sha256:ecb1fa0db7bf4cff9dac752abb19505a233c7f16684c5826d1f11ebd9472b871", + "sha256:efda5fc8cc1c61e4f639b8067d118e742b812c930f708e6667a5ce0d13499e29", + "sha256:f0a1dbdb5ecbef0d34eb77e56fcb3e95bbd7e50835d9782a45df81cc46949750", + "sha256:f0a71d85ecdd570ded8ac3d1c0f480842f49a40beb423bb8014539a9f32a5897", + "sha256:f4f270de01dd3e129a72efad823da90cc4d6aafb64c410c9033aba70db9f1ff0", + "sha256:f6cb459eea32a4e2cf18ba5fcece2dbdf496384413bc1bae15583f19e567f3b2", + "sha256:f8ad8285b01b0d4695102546b342b493b3ccc6781fc28c8c6a1bb63e95d22f09", + "sha256:f9f39e2f049db33a908319cf46624a569b36983c7c78318e9726a4cb8923b26c" + ], + "index": "pypi", + "version": "==1.4.4" + }, + "mako": { + "hashes": [ + "sha256:c97c79c018b9165ac9922ae4f32da095ffd3c4e6872b45eded42926deea46818", + "sha256:d60a3903dc3bb01a18ad6a89cdbe2e4eadc69c0bc8ef1e3773ba53d44c3f7a34" + ], + "index": "pypi", + "version": "==1.2.4" + }, + "markupsafe": { + "hashes": [ + "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", + "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", + "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", + "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", + "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f", + "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39", + "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", + "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014", + "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f", + "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", + "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", + "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", + "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", + "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", + "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85", + "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1", + "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", + "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", + "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850", + "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0", + "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", + "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb", + "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", + "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", + "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1", + "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2", + "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", + "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", + "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7", + "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8", + "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193", + "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b", + "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", + "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", + "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5", + "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c", + "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", + "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be", + "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621" + ], + "index": "pypi", + "version": "==1.1.1" + }, + "marshmallow": { + "hashes": [ + "sha256:90032c0fd650ce94b6ec6dc8dfeb0e3ff50c144586462c389b81a07205bedb78", + "sha256:93f0958568da045b0021ec6aeb7ac37c81bfcccbb9a0e7ed8559885070b3a19b" + ], + "index": "pypi", + "version": "==3.19.0" + }, + "mypy": { + "hashes": [ + "sha256:0714258640194d75677e86c786e80ccf294972cc76885d3ebbb560f11db0003d", + "sha256:0c8f3be99e8a8bd403caa8c03be619544bc2c77a7093685dcf308c6b109426c6", + "sha256:0cca5adf694af539aeaa6ac633a7afe9bbd760df9d31be55ab780b77ab5ae8bf", + "sha256:1c8cd4fb70e8584ca1ed5805cbc7c017a3d1a29fb450621089ffed3e99d1857f", + "sha256:1f7d1a520373e2272b10796c3ff721ea1a0712288cafaa95931e66aa15798813", + "sha256:209ee89fbb0deed518605edddd234af80506aec932ad28d73c08f1400ef80a33", + "sha256:26efb2fcc6b67e4d5a55561f39176821d2adf88f2745ddc72751b7890f3194ad", + "sha256:37bd02ebf9d10e05b00d71302d2c2e6ca333e6c2a8584a98c00e038db8121f05", + "sha256:3a700330b567114b673cf8ee7388e949f843b356a73b5ab22dd7cff4742a5297", + "sha256:3c0165ba8f354a6d9881809ef29f1a9318a236a6d81c690094c5df32107bde06", + "sha256:3d80e36b7d7a9259b740be6d8d906221789b0d836201af4234093cae89ced0cd", + "sha256:4175593dc25d9da12f7de8de873a33f9b2b8bdb4e827a7cae952e5b1a342e243", + "sha256:4307270436fd7694b41f913eb09210faff27ea4979ecbcd849e57d2da2f65305", + "sha256:5e80e758243b97b618cdf22004beb09e8a2de1af481382e4d84bc52152d1c476", + "sha256:641411733b127c3e0dab94c45af15fea99e4468f99ac88b39efb1ad677da5711", + "sha256:652b651d42f155033a1967739788c436491b577b6a44e4c39fb340d0ee7f0d70", + "sha256:6d7464bac72a85cb3491c7e92b5b62f3dcccb8af26826257760a552a5e244aa5", + "sha256:74e259b5c19f70d35fcc1ad3d56499065c601dfe94ff67ae48b85596b9ec1461", + "sha256:7d17e0a9707d0772f4a7b878f04b4fd11f6f5bcb9b3813975a9b13c9332153ab", + "sha256:901c2c269c616e6cb0998b33d4adbb4a6af0ac4ce5cd078afd7bc95830e62c1c", + "sha256:98e781cd35c0acf33eb0295e8b9c55cdbef64fcb35f6d3aa2186f289bed6e80d", + "sha256:a12c56bf73cdab116df96e4ff39610b92a348cc99a1307e1da3c3768bbb5b135", + "sha256:ac6e503823143464538efda0e8e356d871557ef60ccd38f8824a4257acc18d93", + "sha256:b8472f736a5bfb159a5e36740847808f6f5b659960115ff29c7cecec1741c648", + "sha256:b86ce2c1866a748c0f6faca5232059f881cda6dda2a893b9a8373353cfe3715a", + "sha256:bc9ec663ed6c8f15f4ae9d3c04c989b744436c16d26580eaa760ae9dd5d662eb", + "sha256:c9166b3f81a10cdf9b49f2d594b21b31adadb3d5e9db9b834866c3258b695be3", + "sha256:d13674f3fb73805ba0c45eb6c0c3053d218aa1f7abead6e446d474529aafc372", + "sha256:de32edc9b0a7e67c2775e574cb061a537660e51210fbf6006b0b36ea695ae9bb", + "sha256:e62ebaad93be3ad1a828a11e90f0e76f15449371ffeecca4a0a0b9adc99abcef" + ], + "index": "pypi", + "version": "==0.991" + }, + "mypy-extensions": { + "hashes": [ + "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", + "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" + ], + "index": "pypi", + "version": "==0.4.3" + }, + "numpy": { + "hashes": [ + "sha256:0ec87a7084caa559c36e0a2309e4ecb1baa03b687201d0a847c8b0ed476a7187", + "sha256:1a7d6acc2e7524c9955e5c903160aa4ea083736fde7e91276b0e5d98e6332812", + "sha256:202de8f38fc4a45a3eea4b63e2f376e5f2dc64ef0fa692838e31a808520efaf7", + "sha256:210461d87fb02a84ef243cac5e814aad2b7f4be953b32cb53327bb49fd77fbb4", + "sha256:2d926b52ba1367f9acb76b0df6ed21f0b16a1ad87c6720a1121674e5cf63e2b6", + "sha256:352ee00c7f8387b44d19f4cada524586f07379c0d49270f87233983bc5087ca0", + "sha256:35400e6a8d102fd07c71ed7dcadd9eb62ee9a6e84ec159bd48c28235bbb0f8e4", + "sha256:3c1104d3c036fb81ab923f507536daedc718d0ad5a8707c6061cdfd6d184e570", + "sha256:4719d5aefb5189f50887773699eaf94e7d1e02bf36c1a9d353d9f46703758ca4", + "sha256:4749e053a29364d3452c034827102ee100986903263e89884922ef01a0a6fd2f", + "sha256:5342cf6aad47943286afa6f1609cad9b4266a05e7f2ec408e2cf7aea7ff69d80", + "sha256:56e48aec79ae238f6e4395886b5eaed058abb7231fb3361ddd7bfdf4eed54289", + "sha256:76e3f4e85fc5d4fd311f6e9b794d0c00e7002ec122be271f2019d63376f1d385", + "sha256:7776ea65423ca6a15255ba1872d82d207bd1e09f6d0894ee4a64678dd2204078", + "sha256:784c6da1a07818491b0ffd63c6bbe5a33deaa0e25a20e1b3ea20cf0e43f8046c", + "sha256:8535303847b89aa6b0f00aa1dc62867b5a32923e4d1681a35b5eef2d9591a463", + "sha256:9a7721ec204d3a237225db3e194c25268faf92e19338a35f3a224469cb6039a3", + "sha256:a1d3c026f57ceaad42f8231305d4653d5f05dc6332a730ae5c0bea3513de0950", + "sha256:ab344f1bf21f140adab8e47fdbc7c35a477dc01408791f8ba00d018dd0bc5155", + "sha256:ab5f23af8c16022663a652d3b25dcdc272ac3f83c3af4c02eb8b824e6b3ab9d7", + "sha256:ae8d0be48d1b6ed82588934aaaa179875e7dc4f3d84da18d7eae6eb3f06c242c", + "sha256:c91c4afd8abc3908e00a44b2672718905b8611503f7ff87390cc0ac3423fb096", + "sha256:d5036197ecae68d7f491fcdb4df90082b0d4960ca6599ba2659957aafced7c17", + "sha256:d6cc757de514c00b24ae8cf5c876af2a7c3df189028d68c0cb4eaa9cd5afc2bf", + "sha256:d933fabd8f6a319e8530d0de4fcc2e6a61917e0b0c271fded460032db42a0fe4", + "sha256:ea8282b9bcfe2b5e7d491d0bf7f3e2da29700cec05b49e64d6246923329f2b02", + "sha256:ecde0f8adef7dfdec993fd54b0f78183051b6580f606111a6d789cd14c61ea0c", + "sha256:f21c442fdd2805e91799fbe044a7b999b8571bb0ab0f7850d0cb9641a687092b" + ], + "markers": "python_version >= '3.8'", + "version": "==1.24.3" + }, + "oauthlib": { + "hashes": [ + "sha256:0ce32c5d989a1827e3f1148f98b9085ed2370fc939bf524c9c851d8714797298", + "sha256:3e1e14f6cde7e5475128d30e97edc3bfb4dc857cb884d8714ec161fdbb3b358e" + ], + "index": "pypi", + "version": "==3.0.1" + }, + "opencv-contrib-python": { + "hashes": [ + "sha256:641ca83b34a9d3e8ef2da70533c6e4e3f076ffb0db69b963d82899cc53e9b3c2", + "sha256:698c6b6203831f6573e04258be197e3bfde97fb7279fb614e39d75a8bd5818fb", + "sha256:8cad628ea6cc493f6c56140d7edc86f7ed8de528e18e44311e42b390a7d9996e", + "sha256:ab33fa2385ec7e70b9d484293f6f1f3707933045af4d18bb3b0a0290fa44370f", + "sha256:b54c2e8bb636e367d29bde48fae2aa52c43b782265cf65838a1fe852006cdd94", + "sha256:d1fef5ae16dfa73022749165e029e85eb0f399503470c0df1f84c95633f4ae52", + "sha256:fefc5f7f1eef3125f78242afe5c989057b36c2f015619698c741b04f4503f913" + ], + "markers": "python_version >= '3.6'", + "version": "==4.7.0.72" + }, + "opencv-python": { + "hashes": [ + "sha256:3424794a711f33284581f3c1e4b071cfc827d02b99d6fd9a35391f517c453306", + "sha256:7a297e7651e22eb17c265ddbbc80e2ba2a8ff4f4a1696a67c45e5f5798245842", + "sha256:812af57553ec1c6709060c63f6b7e9ad07ddc0f592f3ccc6d00c71e0fe0e6376", + "sha256:cd08343654c6b88c5a8c25bf425f8025aed2e3189b4d7306b5861d32affaf737", + "sha256:d4f8880440c433a0025d78804dda6901d1e8e541a561dda66892d90290aef881", + "sha256:ebfc0a3a2f57716e709028b992e4de7fd8752105d7a768531c4f434043c6f9ff", + "sha256:eda115797b114fc16ca6f182b91c5d984f0015c19bec3145e55d33d708e9bae1" + ], + "index": "pypi", + "version": "==4.7.0.72" + }, + "packaging": { + "hashes": [ + "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2", + "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97" + ], + "index": "pypi", + "version": "==23.0" + }, + "pbr": { + "hashes": [ + "sha256:567f09558bae2b3ab53cb3c1e2e33e726ff3338e7bae3db5dc954b3a44eef12b", + "sha256:aefc51675b0b533d56bb5fd1c8c6c0522fe31896679882e1c4c63d5e4a0fccb3" + ], + "index": "pypi", + "version": "==5.11.1" + }, + "pillow": { + "hashes": [ + "sha256:013016af6b3a12a2f40b704677f8b51f72cb007dac785a9933d5c86a72a7fe33", + "sha256:0845adc64fe9886db00f5ab68c4a8cd933ab749a87747555cec1c95acea64b0b", + "sha256:0884ba7b515163a1a05440a138adeb722b8a6ae2c2b33aea93ea3118dd3a899e", + "sha256:09b89ddc95c248ee788328528e6a2996e09eaccddeeb82a5356e92645733be35", + "sha256:0dd4c681b82214b36273c18ca7ee87065a50e013112eea7d78c7a1b89a739153", + "sha256:0e51f608da093e5d9038c592b5b575cadc12fd748af1479b5e858045fff955a9", + "sha256:0f3269304c1a7ce82f1759c12ce731ef9b6e95b6df829dccd9fe42912cc48569", + "sha256:16a8df99701f9095bea8a6c4b3197da105df6f74e6176c5b410bc2df2fd29a57", + "sha256:19005a8e58b7c1796bc0167862b1f54a64d3b44ee5d48152b06bb861458bc0f8", + "sha256:1b4b4e9dda4f4e4c4e6896f93e84a8f0bcca3b059de9ddf67dac3c334b1195e1", + "sha256:28676836c7796805914b76b1837a40f76827ee0d5398f72f7dcc634bae7c6264", + "sha256:2968c58feca624bb6c8502f9564dd187d0e1389964898f5e9e1fbc8533169157", + "sha256:3f4cc516e0b264c8d4ccd6b6cbc69a07c6d582d8337df79be1e15a5056b258c9", + "sha256:3fa1284762aacca6dc97474ee9c16f83990b8eeb6697f2ba17140d54b453e133", + "sha256:43521ce2c4b865d385e78579a082b6ad1166ebed2b1a2293c3be1d68dd7ca3b9", + "sha256:451f10ef963918e65b8869e17d67db5e2f4ab40e716ee6ce7129b0cde2876eab", + "sha256:46c259e87199041583658457372a183636ae8cd56dbf3f0755e0f376a7f9d0e6", + "sha256:46f39cab8bbf4a384ba7cb0bc8bae7b7062b6a11cfac1ca4bc144dea90d4a9f5", + "sha256:519e14e2c49fcf7616d6d2cfc5c70adae95682ae20f0395e9280db85e8d6c4df", + "sha256:53dcb50fbdc3fb2c55431a9b30caeb2f7027fcd2aeb501459464f0214200a503", + "sha256:54614444887e0d3043557d9dbc697dbb16cfb5a35d672b7a0fcc1ed0cf1c600b", + "sha256:575d8912dca808edd9acd6f7795199332696d3469665ef26163cd090fa1f8bfa", + "sha256:5dd5a9c3091a0f414a963d427f920368e2b6a4c2f7527fdd82cde8ef0bc7a327", + "sha256:5f532a2ad4d174eb73494e7397988e22bf427f91acc8e6ebf5bb10597b49c493", + "sha256:60e7da3a3ad1812c128750fc1bc14a7ceeb8d29f77e0a2356a8fb2aa8925287d", + "sha256:653d7fb2df65efefbcbf81ef5fe5e5be931f1ee4332c2893ca638c9b11a409c4", + "sha256:6663977496d616b618b6cfa43ec86e479ee62b942e1da76a2c3daa1c75933ef4", + "sha256:6abfb51a82e919e3933eb137e17c4ae9c0475a25508ea88993bb59faf82f3b35", + "sha256:6c6b1389ed66cdd174d040105123a5a1bc91d0aa7059c7261d20e583b6d8cbd2", + "sha256:6d9dfb9959a3b0039ee06c1a1a90dc23bac3b430842dcb97908ddde05870601c", + "sha256:765cb54c0b8724a7c12c55146ae4647e0274a839fb6de7bcba841e04298e1011", + "sha256:7a21222644ab69ddd9967cfe6f2bb420b460dae4289c9d40ff9a4896e7c35c9a", + "sha256:7ac7594397698f77bce84382929747130765f66406dc2cd8b4ab4da68ade4c6e", + "sha256:7cfc287da09f9d2a7ec146ee4d72d6ea1342e770d975e49a8621bf54eaa8f30f", + "sha256:83125753a60cfc8c412de5896d10a0a405e0bd88d0470ad82e0869ddf0cb3848", + "sha256:847b114580c5cc9ebaf216dd8c8dbc6b00a3b7ab0131e173d7120e6deade1f57", + "sha256:87708d78a14d56a990fbf4f9cb350b7d89ee8988705e58e39bdf4d82c149210f", + "sha256:8a2b5874d17e72dfb80d917213abd55d7e1ed2479f38f001f264f7ce7bae757c", + "sha256:8f127e7b028900421cad64f51f75c051b628db17fb00e099eb148761eed598c9", + "sha256:94cdff45173b1919350601f82d61365e792895e3c3a3443cf99819e6fbf717a5", + "sha256:99d92d148dd03fd19d16175b6d355cc1b01faf80dae93c6c3eb4163709edc0a9", + "sha256:9a3049a10261d7f2b6514d35bbb7a4dfc3ece4c4de14ef5876c4b7a23a0e566d", + "sha256:9d9a62576b68cd90f7075876f4e8444487db5eeea0e4df3ba298ee38a8d067b0", + "sha256:9e5f94742033898bfe84c93c831a6f552bb629448d4072dd312306bab3bd96f1", + "sha256:a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e", + "sha256:a2e0f87144fcbbe54297cae708c5e7f9da21a4646523456b00cc956bd4c65815", + "sha256:a4dfdae195335abb4e89cc9762b2edc524f3c6e80d647a9a81bf81e17e3fb6f0", + "sha256:a96e6e23f2b79433390273eaf8cc94fec9c6370842e577ab10dabdcc7ea0a66b", + "sha256:aabdab8ec1e7ca7f1434d042bf8b1e92056245fb179790dc97ed040361f16bfd", + "sha256:b222090c455d6d1a64e6b7bb5f4035c4dff479e22455c9eaa1bdd4c75b52c80c", + "sha256:b52ff4f4e002f828ea6483faf4c4e8deea8d743cf801b74910243c58acc6eda3", + "sha256:b70756ec9417c34e097f987b4d8c510975216ad26ba6e57ccb53bc758f490dab", + "sha256:b8c2f6eb0df979ee99433d8b3f6d193d9590f735cf12274c108bd954e30ca858", + "sha256:b9b752ab91e78234941e44abdecc07f1f0d8f51fb62941d32995b8161f68cfe5", + "sha256:ba6612b6548220ff5e9df85261bddc811a057b0b465a1226b39bfb8550616aee", + "sha256:bd752c5ff1b4a870b7661234694f24b1d2b9076b8bf337321a814c612665f343", + "sha256:c3c4ed2ff6760e98d262e0cc9c9a7f7b8a9f61aa4d47c58835cdaf7b0b8811bb", + "sha256:c5c1362c14aee73f50143d74389b2c158707b4abce2cb055b7ad37ce60738d47", + "sha256:cb362e3b0976dc994857391b776ddaa8c13c28a16f80ac6522c23d5257156bed", + "sha256:d197df5489004db87d90b918033edbeee0bd6df3848a204bca3ff0a903bef837", + "sha256:d3b56206244dc8711f7e8b7d6cad4663917cd5b2d950799425076681e8766286", + "sha256:d5b2f8a31bd43e0f18172d8ac82347c8f37ef3e0b414431157718aa234991b28", + "sha256:d7081c084ceb58278dd3cf81f836bc818978c0ccc770cbbb202125ddabec6628", + "sha256:db74f5562c09953b2c5f8ec4b7dfd3f5421f31811e97d1dbc0a7c93d6e3a24df", + "sha256:df41112ccce5d47770a0c13651479fbcd8793f34232a2dd9faeccb75eb5d0d0d", + "sha256:e1339790c083c5a4de48f688b4841f18df839eb3c9584a770cbd818b33e26d5d", + "sha256:e621b0246192d3b9cb1dc62c78cfa4c6f6d2ddc0ec207d43c0dedecb914f152a", + "sha256:e8c5cf126889a4de385c02a2c3d3aba4b00f70234bfddae82a5eaa3ee6d5e3e6", + "sha256:e9d7747847c53a16a729b6ee5e737cf170f7a16611c143d95aa60a109a59c336", + "sha256:eaef5d2de3c7e9b21f1e762f289d17b726c2239a42b11e25446abf82b26ac132", + "sha256:ed3e4b4e1e6de75fdc16d3259098de7c6571b1a6cc863b1a49e7d3d53e036070", + "sha256:ef21af928e807f10bf4141cad4746eee692a0dd3ff56cfb25fce076ec3cc8abe", + "sha256:f09598b416ba39a8f489c124447b007fe865f786a89dbfa48bb5cf395693132a", + "sha256:f0caf4a5dcf610d96c3bd32932bfac8aee61c96e60481c2a0ea58da435e25acd", + "sha256:f6e78171be3fb7941f9910ea15b4b14ec27725865a73c15277bc39f5ca4f8391", + "sha256:f715c32e774a60a337b2bb8ad9839b4abf75b267a0f18806f6f4f5f1688c4b5a", + "sha256:fb5c1ad6bad98c57482236a21bf985ab0ef42bd51f7ad4e4538e89a997624e12" + ], + "index": "pypi", + "version": "==9.4.0" + }, + "pip": { + "hashes": [ + "sha256:0e7c86f486935893c708287b30bd050a36ac827ec7fe5e43fe7cb198dd835fba", + "sha256:3ef6ac33239e4027d9a5598a381b9d30880a1477e50039db2eac6e8a8f6d1b18" + ], + "index": "pypi", + "version": "==23.1.2" + }, + "pipenv": { + "hashes": [ + "sha256:1a9d37cc03e9c0d92ae646a79c40aa2d9c3bf529c7878533e74a7c56f2076179", + "sha256:21c9e03c4c48fe3717fd1a2c1387269d10c3fee88126e368f508465b0405b10b" + ], + "index": "pypi", + "version": "==2023.5.19" + }, + "platformdirs": { + "hashes": [ + "sha256:83c8f6d04389165de7c9b6f0c682439697887bca0aa2f1c87ef1826be3584490", + "sha256:e1fea1fe471b9ff8332e229df3cb7de4f53eeea4998d3b6bfff542115e998bd2" + ], + "index": "pypi", + "version": "==2.6.2" + }, + "pluggy": { + "hashes": [ + "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", + "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" + ], + "index": "pypi", + "version": "==1.0.0" + }, + "protobuf": { + "hashes": [ + "sha256:1f22ac0ca65bb70a876060d96d914dae09ac98d114294f77584b0d2644fa9c30", + "sha256:237216c3326d46808a9f7c26fd1bd4b20015fb6867dc5d263a493ef9a539293b", + "sha256:27f4d15021da6d2b706ddc3860fac0a5ddaba34ab679dc182b60a8bb4e1121cc", + "sha256:299ea899484ee6f44604deb71f424234f654606b983cb496ea2a53e3c63ab791", + "sha256:3d164928ff0727d97022957c2b849250ca0e64777ee31efd7d6de2e07c494717", + "sha256:6ab80df09e3208f742c98443b6166bcb70d65f52cfeb67357d52032ea1ae9bec", + "sha256:78a28c9fa223998472886c77042e9b9afb6fe4242bd2a2a5aced88e3f4422aa7", + "sha256:7cd532c4566d0e6feafecc1059d04c7915aec8e182d1cf7adee8b24ef1e2e6ab", + "sha256:89f9149e4a0169cddfc44c74f230d7743002e3aa0b9472d8c28f0388102fc4c2", + "sha256:a53fd3f03e578553623272dc46ac2f189de23862e68565e83dde203d41b76fc5", + "sha256:b135410244ebe777db80298297a97fbb4c862c881b4403b71bac9d4107d61fd1", + "sha256:b98d0148f84e3a3c569e19f52103ca1feacdac0d2df8d6533cf983d1fda28462", + "sha256:d1736130bce8cf131ac7957fa26880ca19227d4ad68b4888b3be0dea1f95df97", + "sha256:f45460f9ee70a0ec1b6694c6e4e348ad2019275680bd68a1d9314b8c7e01e574" + ], + "index": "pypi", + "version": "==4.21.12" + }, + "psycopg2-binary": { + "hashes": [ + "sha256:02c0f3757a4300cf379eb49f543fb7ac527fb00144d39246ee40e1df684ab514", + "sha256:02c6e3cf3439e213e4ee930308dc122d6fb4d4bea9aef4a12535fbd605d1a2fe", + "sha256:0645376d399bfd64da57148694d78e1f431b1e1ee1054872a5713125681cf1be", + "sha256:0892ef645c2fabb0c75ec32d79f4252542d0caec1d5d949630e7d242ca4681a3", + "sha256:0d236c2825fa656a2d98bbb0e52370a2e852e5a0ec45fc4f402977313329174d", + "sha256:0e0f754d27fddcfd74006455b6e04e6705d6c31a612ec69ddc040a5468e44b4e", + "sha256:15e2ee79e7cf29582ef770de7dab3d286431b01c3bb598f8e05e09601b890081", + "sha256:1876843d8e31c89c399e31b97d4b9725a3575bb9c2af92038464231ec40f9edb", + "sha256:1f64dcfb8f6e0c014c7f55e51c9759f024f70ea572fbdef123f85318c297947c", + "sha256:2ab652e729ff4ad76d400df2624d223d6e265ef81bb8aa17fbd63607878ecbee", + "sha256:30637a20623e2a2eacc420059be11527f4458ef54352d870b8181a4c3020ae6b", + "sha256:34b9ccdf210cbbb1303c7c4db2905fa0319391bd5904d32689e6dd5c963d2ea8", + "sha256:38601cbbfe600362c43714482f43b7c110b20cb0f8172422c616b09b85a750c5", + "sha256:441cc2f8869a4f0f4bb408475e5ae0ee1f3b55b33f350406150277f7f35384fc", + "sha256:498807b927ca2510baea1b05cc91d7da4718a0f53cb766c154c417a39f1820a0", + "sha256:4ac30da8b4f57187dbf449294d23b808f8f53cad6b1fc3623fa8a6c11d176dd0", + "sha256:4c727b597c6444a16e9119386b59388f8a424223302d0c06c676ec8b4bc1f963", + "sha256:4d67fbdaf177da06374473ef6f7ed8cc0a9dc640b01abfe9e8a2ccb1b1402c1f", + "sha256:4dfb4be774c4436a4526d0c554af0cc2e02082c38303852a36f6456ece7b3503", + "sha256:4ea29fc3ad9d91162c52b578f211ff1c931d8a38e1f58e684c45aa470adf19e2", + "sha256:51537e3d299be0db9137b321dfb6a5022caaab275775680e0c3d281feefaca6b", + "sha256:61b047a0537bbc3afae10f134dc6393823882eb263088c271331602b672e52e9", + "sha256:6460c7a99fc939b849431f1e73e013d54aa54293f30f1109019c56a0b2b2ec2f", + "sha256:65bee1e49fa6f9cf327ce0e01c4c10f39165ee76d35c846ade7cb0ec6683e303", + "sha256:65c07febd1936d63bfde78948b76cd4c2a411572a44ac50719ead41947d0f26b", + "sha256:71f14375d6f73b62800530b581aed3ada394039877818b2d5f7fc77e3bb6894d", + "sha256:7a40c00dbe17c0af5bdd55aafd6ff6679f94a9be9513a4c7e071baf3d7d22a70", + "sha256:7e13a5a2c01151f1208d5207e42f33ba86d561b7a89fca67c700b9486a06d0e2", + "sha256:7f0438fa20fb6c7e202863e0d5ab02c246d35efb1d164e052f2f3bfe2b152bd0", + "sha256:8122cfc7cae0da9a3077216528b8bb3629c43b25053284cc868744bfe71eb141", + "sha256:8338a271cb71d8da40b023a35d9c1e919eba6cbd8fa20a54b748a332c355d896", + "sha256:84d2222e61f313c4848ff05353653bf5f5cf6ce34df540e4274516880d9c3763", + "sha256:8a6979cf527e2603d349a91060f428bcb135aea2be3201dff794813256c274f1", + "sha256:8a76e027f87753f9bd1ab5f7c9cb8c7628d1077ef927f5e2446477153a602f2c", + "sha256:964b4dfb7c1c1965ac4c1978b0f755cc4bd698e8aa2b7667c575fb5f04ebe06b", + "sha256:9972aad21f965599ed0106f65334230ce826e5ae69fda7cbd688d24fa922415e", + "sha256:a8c28fd40a4226b4a84bdf2d2b5b37d2c7bd49486b5adcc200e8c7ec991dfa7e", + "sha256:ae102a98c547ee2288637af07393dd33f440c25e5cd79556b04e3fca13325e5f", + "sha256:af335bac6b666cc6aea16f11d486c3b794029d9df029967f9938a4bed59b6a19", + "sha256:afe64e9b8ea66866a771996f6ff14447e8082ea26e675a295ad3bdbffdd72afb", + "sha256:b4b24f75d16a89cc6b4cdff0eb6a910a966ecd476d1e73f7ce5985ff1328e9a6", + "sha256:b6c8288bb8a84b47e07013bb4850f50538aa913d487579e1921724631d02ea1b", + "sha256:b83456c2d4979e08ff56180a76429263ea254c3f6552cd14ada95cff1dec9bb8", + "sha256:bfb13af3c5dd3a9588000910178de17010ebcccd37b4f9794b00595e3a8ddad3", + "sha256:c3dba7dab16709a33a847e5cd756767271697041fbe3fe97c215b1fc1f5c9848", + "sha256:c48d8f2db17f27d41fb0e2ecd703ea41984ee19362cbce52c097963b3a1b4365", + "sha256:c7e62ab8b332147a7593a385d4f368874d5fe4ad4e341770d4983442d89603e3", + "sha256:c83a74b68270028dc8ee74d38ecfaf9c90eed23c8959fca95bd703d25b82c88e", + "sha256:cacbdc5839bdff804dfebc058fe25684cae322987f7a38b0168bc1b2df703fb1", + "sha256:cf4499e0a83b7b7edcb8dabecbd8501d0d3a5ef66457200f77bde3d210d5debb", + "sha256:cfec476887aa231b8548ece2e06d28edc87c1397ebd83922299af2e051cf2827", + "sha256:d26e0342183c762de3276cca7a530d574d4e25121ca7d6e4a98e4f05cb8e4df7", + "sha256:d4e6036decf4b72d6425d5b29bbd3e8f0ff1059cda7ac7b96d6ac5ed34ffbacd", + "sha256:d57c3fd55d9058645d26ae37d76e61156a27722097229d32a9e73ed54819982a", + "sha256:dfa74c903a3c1f0d9b1c7e7b53ed2d929a4910e272add6700c38f365a6002820", + "sha256:e3ed340d2b858d6e6fb5083f87c09996506af483227735de6964a6100b4e6a54", + "sha256:e78e6e2a00c223e164c417628572a90093c031ed724492c763721c2e0bc2a8df", + "sha256:e9182eb20f41417ea1dd8e8f7888c4d7c6e805f8a7c98c1081778a3da2bee3e4", + "sha256:e99e34c82309dd78959ba3c1590975b5d3c862d6f279f843d47d26ff89d7d7e1", + "sha256:f6a88f384335bb27812293fdb11ac6aee2ca3f51d3c7820fe03de0a304ab6249", + "sha256:f81e65376e52f03422e1fb475c9514185669943798ed019ac50410fb4c4df232", + "sha256:ffe9dc0a884a8848075e576c1de0290d85a533a9f6e9c4e564f19adf8f6e54a7" + ], + "index": "pypi", + "version": "==2.9.6" + }, + "pycparser": { + "hashes": [ + "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", + "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" + ], + "version": "==2.21" + }, + "pyignite": { + "hashes": [ + "sha256:03f4701474f5ade8983d21c70999b8ebb021c6f5a7b0fb70a7f1339e52d3bf31", + "sha256:0da286f6c01a5ecd5ea7d8d5d1d3886af1ae393c003b066ca06f5c274ddac428", + "sha256:2212d7e00cfd3a307696bc3423af1d906963da54fcece24a7913a0ae5ea34ea3", + "sha256:39ad2c07bb5ff1983b7e78edd32d4e9975d6de4a3966b171ea1d78d39a04b238", + "sha256:3f60ce18bb64d1031e3366a454a9f344c3ffe95ebc0d86251c6981a23479cbdb", + "sha256:48ebcc470c464de155a08495ede09338c5479a2e25e1a92ea3008d7dc4d8bcd7", + "sha256:4fbd6a919833fcf83e97bd9f79de1771f7249778daf1585b7e159d2506a7534d", + "sha256:4fd49d3c849cb4159916a6c050bd6e083b58841b8a8cc6eab5b94ec0fb7463f6", + "sha256:50f213a3dca8dfbb6534d8e421ea1ac6d65b782cefb6d3d55c750b352be3779b", + "sha256:5185f346b4c5561eda9df15b7365d1b3b08e5ffb11e8f306259aff71c8516175", + "sha256:5aaa1aa32dfb6305d39153f930a4fd952b43347366a73e6643b699b8bdf73d48", + "sha256:699261fb4f68a3d470370cb2ac507086aae8a84305bb440f38c7508f4a4ef288", + "sha256:6c327eb1261c26b41c64ff36d290ca5c3aa9dc35b4ffbbb39ae57935fe1914f1", + "sha256:73f145c70b99e47f38b94fc89109261e0a5ad284db46531955a4610bf9706d9f", + "sha256:842aabb7fc3e32e81ae7f2b0a1406688748d209b3b22b2df9055be5812feb3da", + "sha256:a9c24ed39b85a492993fbf33238bcea5cf390020bf3d484b55fb78fb78bf9c10", + "sha256:bb6bf352c5a8547350d618a8e66059675437249d2ed633655273e9c34d2421aa", + "sha256:bf717838df0b8c9b86664f761d0cb43dab26f037e6aae404054deaa9ad60590b", + "sha256:c63ec63e812274cd7a0fe611b0eac4e41da9ba829cb47a3b1dc28a66f1dd9a77", + "sha256:ccb29dfd55510f1cba174f0bdd205470a794b79beb0ad2a6655a8a197a667365", + "sha256:d9511943dd652a6bd602c923a896a024491d37d5f69ea718c595b3cd3b01236c", + "sha256:da7da4486aea27c5e4927d224a31acb1bc058d2397a60a9f3ed9537755dc75da", + "sha256:dee6efd47860bf21042a8bdf5ad3c6bdf9a55beedfc9431cacb57bda37045a93", + "sha256:e143d7a907e2662da11f63d2e9e34234dc722cd63c9aeb74486280e3aef3369d", + "sha256:e50401db905556d46ad1029fa9d6752897c29fe7be0bf671aa8edcfb176f8453", + "sha256:e9d5b8e2f3c222d1fb50be6de62860b7eeb117378666e67db7cd358c5b14918e" + ], + "index": "pypi", + "version": "==0.6.1" + }, + "pyjwt": { + "hashes": [ + "sha256:69285c7e31fc44f68a1feb309e948e0df53259d579295e6cfe2b1792329f05fd", + "sha256:d83c3d892a77bbb74d3e1a2cfa90afaadb60945205d1095d9221f04466f64c14" + ], + "index": "pypi", + "version": "==2.6.0" + }, + "pylogix": { + "hashes": [ + "sha256:fa48585aedef0fe69d84a91f47d51b626f43fc07b1a6c3e76ab7b1ea7ebcf49b" + ], + "index": "pypi", + "version": "==0.8.7" + }, + "pymongo": { + "hashes": [ + "sha256:016c412118e1c23fef3a1eada4f83ae6e8844fd91986b2e066fc1b0013cdd9ae", + "sha256:01f7cbe88d22440b6594c955e37312d932fd632ffed1a86d0c361503ca82cc9d", + "sha256:08fc250b5552ee97ceeae0f52d8b04f360291285fc7437f13daa516ce38fdbc6", + "sha256:0c466710871d0026c190fc4141e810cf9d9affbf4935e1d273fbdc7d7cda6143", + "sha256:1074f1a6f23e28b983c96142f2d45be03ec55d93035b471c26889a7ad2365db3", + "sha256:12f3621a46cdc7a9ba8080422262398a91762a581d27e0647746588d3f995c88", + "sha256:2c2fdc855149efe7cdcc2a01ca02bfa24761c640203ea94df467f3baf19078be", + "sha256:316498b642c00401370b2156b5233b256f9b33799e0a8d9d0b8a7da217a20fca", + "sha256:341221e2f2866a5960e6f8610f4cbac0bb13097f3b1a289aa55aba984fc0d969", + "sha256:34b040e095e1671df0c095ec0b04fc4ebb19c4c160f87c2b55c079b16b1a6b00", + "sha256:34e95ffb0a68bffbc3b437f2d1f25fc916fef3df5cdeed0992da5f42fae9b807", + "sha256:39b03045c71f761aee96a12ebfbc2f4be89e724ff6f5e31c2574c1a0e2add8bd", + "sha256:3b93043b14ba7eb08c57afca19751658ece1cfa2f0b7b1fb5c7a41452fbb8482", + "sha256:47f7aa217b25833cd6f0e72b0d224be55393c2692b4f5e0561cb3beeb10296e9", + "sha256:49210feb0be8051a64d71691f0acbfbedc33e149f0a5d6e271fddf6a12493fed", + "sha256:4d00b91c77ceb064c9b0459f0d6ea5bfdbc53ea9e17cf75731e151ef25a830c7", + "sha256:4ed00f96e147f40b565fe7530d1da0b0f3ab803d5dd5b683834500fa5d195ec4", + "sha256:5134d33286c045393c7beb51be29754647cec5ebc051cf82799c5ce9820a2ca2", + "sha256:524d78673518dcd352a91541ecd2839c65af92dc883321c2109ef6e5cd22ef23", + "sha256:52896e22115c97f1c829db32aa2760b0d61839cfe08b168c2b1d82f31dbc5f55", + "sha256:54c377893f2cbbffe39abcff5ff2e917b082c364521fa079305f6f064e1a24a9", + "sha256:55b6163dac53ef1e5d834297810c178050bd0548a4136cd4e0f56402185916ca", + "sha256:599d3f6fbef31933b96e2d906b0f169b3371ff79ea6aaf6ecd76c947a3508a3d", + "sha256:5effd87c7d363890259eac16c56a4e8da307286012c076223997f8cc4a8c435b", + "sha256:66413c50d510e5bcb0afc79880d1693a2185bcea003600ed898ada31338c004e", + "sha256:695939036a320f4329ccf1627edefbbb67cc7892b8222d297b0dd2313742bfee", + "sha256:6c2216d8b6a6d019c6f4b1ad55f890e5e77eb089309ffc05b6911c09349e7474", + "sha256:6dd1cf2995fdbd64fc0802313e8323f5fa18994d51af059b5b8862b73b5e53f0", + "sha256:6fcfbf435eebf8a1765c6d1f46821740ebe9f54f815a05c8fc30d789ef43cb12", + "sha256:704d939656e21b073bfcddd7228b29e0e8a93dd27b54240eaafc0b9a631629a6", + "sha256:711bc52cb98e7892c03e9b669bebd89c0a890a90dbc6d5bb2c47f30239bac6e9", + "sha256:74731c9e423c93cbe791f60c27030b6af6a948cef67deca079da6cd1bb583a8e", + "sha256:7761cacb8745093062695b11574effea69db636c2fd0a9269a1f0183712927b4", + "sha256:7b16250238de8dafca225647608dddc7bbb5dce3dd53b4d8e63c1cc287394c2f", + "sha256:7c051fe37c96b9878f37fa58906cb53ecd13dcb7341d3a85f1e2e2f6b10782d9", + "sha256:7d43ac9c7eeda5100fb0a7152fab7099c9cf9e5abd3bb36928eb98c7d7a339c6", + "sha256:81d1a7303bd02ca1c5be4aacd4db73593f573ba8e0c543c04c6da6275fd7a47e", + "sha256:8a06a0c02f5606330e8f2e2f3b7949877ca7e4024fa2bff5a4506bec66c49ec7", + "sha256:8fd6e191b92a10310f5a6cfe10d6f839d79d192fb02480bda325286bd1c7b385", + "sha256:943f208840777f34312c103a2d1caab02d780c4e9be26b3714acf6c4715ba7e1", + "sha256:9b87b23570565a6ddaa9244d87811c2ee9cffb02a753c8a2da9c077283d85845", + "sha256:a6cd6f1db75eb07332bd3710f58f5fce4967eadbf751bad653842750a61bda62", + "sha256:a966d5304b7d90c45c404914e06bbf02c5bf7e99685c6c12f0047ef2aa837142", + "sha256:a9c2885b4a8e6e39db5662d8b02ca6dcec796a45e48c2de12552841f061692ba", + "sha256:b0cfe925610f2fd59555bb7fc37bd739e4b197d33f2a8b2fae7b9c0c6640318c", + "sha256:b38a96b3eed8edc515b38257f03216f382c4389d022a8834667e2bc63c0c0c31", + "sha256:b8a03af1ce79b902a43f5f694c4ca8d92c2a4195db0966f08f266549e2fc49bc", + "sha256:bb869707d8e30645ed6766e44098600ca6cdf7989c22a3ea2b7966bb1d98d4b2", + "sha256:be1d2ce7e269215c3ee9a215e296b7a744aff4f39233486d2c4d77f5f0c561a6", + "sha256:c0640b4e9d008e13956b004d1971a23377b3d45491f87082161c92efb1e6c0d6", + "sha256:c09956606c08c4a7c6178a04ba2dd9388fcc5db32002ade9c9bc865ab156ab6d", + "sha256:c184ec5be465c0319440734491e1aa4709b5f3ba75fdfc9dbbc2ae715a7f6829", + "sha256:c1a70c51da9fa95bd75c167edb2eb3f3c4d27bc4ddd29e588f21649d014ec0b7", + "sha256:c29e758f0e734e1e90357ae01ec9c6daf19ff60a051192fe110d8fb25c62600e", + "sha256:c6258a3663780ae47ba73d43eb63c79c40ffddfb764e09b56df33be2f9479837", + "sha256:cafa52873ae12baa512a8721afc20de67a36886baae6a5f394ddef0ce9391f91", + "sha256:cd6a4afb20fb3c26a7bfd4611a0bbb24d93cbd746f5eb881f114b5e38fd55501", + "sha256:cdb87309de97c63cb9a69132e1cb16be470e58cffdfbad68fdd1dc292b22a840", + "sha256:d07d06dba5b5f7d80f9cc45501456e440f759fe79f9895922ed486237ac378a8", + "sha256:d3a51901066696c4af38c6c63a1f0aeffd5e282367ff475de8c191ec9609b56d", + "sha256:d5571b6978750601f783cea07fb6b666837010ca57e5cefa389c1d456f6222e2", + "sha256:d86c35d94b5499689354ccbc48438a79f449481ee6300f3e905748edceed78e7", + "sha256:dc0cff74cd36d7e1edba91baa09622c35a8a57025f2f2b7a41e3f83b1db73186", + "sha256:dc24d245026a72d9b4953729d31813edd4bd4e5c13622d96e27c284942d33f24", + "sha256:dca34367a4e77fcab0693e603a959878eaf2351585e7d752cac544bc6b2dee46", + "sha256:e2961b05f9c04a53da8bfc72f1910b6aec7205fcf3ac9c036d24619979bbee4b", + "sha256:e7fac06a539daef4fcf5d8288d0d21b412f9b750454cd5a3cf90484665db442a", + "sha256:eac0a143ef4f28f49670bf89cb15847eb80b375d55eba401ca2f777cd425f338", + "sha256:ef888f48eb9203ee1e04b9fb27429017b290fb916f1e7826c2f7808c88798394", + "sha256:f3055510fdfdb1775bc8baa359783022f70bb553f2d46e153c094dfcb08578ff", + "sha256:fa7e202feb683dad74f00dea066690448d0cfa310f8a277db06ec8eb466601b5", + "sha256:fc28e8d85d392a06434e9a934908d97e2cf453d69488d2bcd0bfb881497fd975", + "sha256:fd7bb378d82b88387dc10227cfd964f6273eb083e05299e9b97cbe075da12d11", + "sha256:ffcc8394123ea8d43fff8e5d000095fe7741ce3f8988366c5c919c4f5eb179d3" + ], + "markers": "python_version >= '3.7'", + "version": "==4.3.3" + }, + "pyobjc": { + "hashes": [ + "sha256:5c4482728b9afa1a0e49bc57624dbdcd33d684b47f2a3e36d61cd31b27818e72", + "sha256:79071b1a71238708a34e87e50d5693c8a31206c567a125b0db7f500f841c64c9" + ], + "markers": "sys_platform == 'darwin'", + "version": "==9.1.1" + }, + "pyobjc-core": { + "hashes": [ + "sha256:083004d28b92ccb483a41195c600728854843b0486566aba2d6e63eef51f80e6", + "sha256:1626909916603a3b04c07c721cf1af0e0b892cec85bb3db98d05ba024f1786fc", + "sha256:1a8307527621729ff2ab67860e7ed84f76ad0da881b248c2ef31e0da0088e4ba", + "sha256:2dde96462b52e952515d142e2afbb6913624a02c13582047e06211e6c3993728", + "sha256:4b6cb9053b5fcd3c0e76b8c8105a8110786b20f3403c5643a688c5ec51c55c6b", + "sha256:4bd07049fd9fe5b40e4b7c468af9cf942508387faf383a5acb043d20627bad2c", + "sha256:d61e9517d451bc062a7fae8b3648f4deba4fa54a24926fa1cf581b90ef4ced5a" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-accessibility": { + "hashes": [ + "sha256:81f1ff185741c6405b6766b6327d3f9ecd9de660e5cab93875d47258aa8aecd2", + "sha256:a4c81c645b0326b1ac6792c5cadb1b86028160183b05425914f5886aa4c3b2a3", + "sha256:f013bbe542d5a648578cff20bb8f25490482d34d14cd40a6637759c98f5c049c", + "sha256:faefcddf6638b958cd8535cf55d1138e3e911d8bfe782df6bbe4c8fa044613ee" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-accounts": { + "hashes": [ + "sha256:4d464f975e7f2d8ee7cf1a61013410b62ac8383de31ef795722aa8b574e27dc9", + "sha256:8329e0ec461399a603adbcaa58bb9ca44d96815699f1421c8da4527d37ae5f3d" + ], + "markers": "platform_release >= '12.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-addressbook": { + "hashes": [ + "sha256:8344ac475f40eae5ac2195fbc5d5a1a380f4fa2ab340c983c21f2341ca1cf55f", + "sha256:8849edfe591dca4e6bfe45abcb7c451f2ee2ba4ecb8adc2f35d4e5bd14d66247", + "sha256:b8627bee7c82017dcf1cb667fd892b72f038f80072922ebe369dbfd3ca70d765", + "sha256:d6091159b62aa0bcf6149efabd2d71a75915752db89ec6cad58aa8799a484ac6" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-adservices": { + "hashes": [ + "sha256:4e4284fa06072ad11cb73b906540259638f2c5122c23f2f897a6e008ec7a5b46", + "sha256:9f60ea9150a8ca4e9511cd5c2786877b5e20f42d6418236341a4f5e8ca7dea8d" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-adsupport": { + "hashes": [ + "sha256:7777aaf53c281bb5f3ee3f26988609570ed2103836d708e7dde72014d02d4863", + "sha256:d46e824b74706043494b17e7515030608938c89f1cc3c0c9530e3e010cf4f8f6" + ], + "markers": "platform_release >= '18.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-applescriptkit": { + "hashes": [ + "sha256:49589d8c021aa6eb59240c6ea56477ffe423bb63f623011cc9e3aa6eed90184a", + "sha256:d83c2362edbc5be22a89fc465d698aa113a0f201d3d3c2cb7b63478cd1e7220b" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-applescriptobjc": { + "hashes": [ + "sha256:b1b6307599d964feebbdc9558f3f9cb758a692cb00dbd0e70bde6f71d1622097", + "sha256:b55c1de2b1712c0730f57a593e9c7943d5f90d5724065bda1aa77568a0a3b2f4" + ], + "markers": "platform_release >= '10.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-applicationservices": { + "hashes": [ + "sha256:3db1c79d7420052320529432e8562cd339a7ef0841df83a85bbf3648abb55b6b", + "sha256:50c613bee364150bbd6cd992ca32b0848a780922cb57d112f6a4a56e29802e19", + "sha256:7cc5aad93bb6b178f838fe9b78cdcf1217c7baab157b1f3525e0acf696cc3490", + "sha256:9f18e9b92674be0e503a2bd451a328693450e6f80ee510bbc375238b14117e24", + "sha256:a03434605873b9f83255a0b16bbc539d06afd77f5969a3b11a1fc293dfd56680", + "sha256:baf5a0d72c9e2d2a3b402823a2ea53eccdc27b8b9319d61cee7d753a30cb9411", + "sha256:f9286c05d80a6aafc7388a4c2a35801db9ea6bab960acf2df079110debb659cb" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-apptrackingtransparency": { + "hashes": [ + "sha256:7550b75a734ada61e64ce1ea72ca8c71b2d23210c4bd215e34b5c3dd14d57fbc", + "sha256:fe16ec15ecbc306dd88fb2957b59fcb4ef0a8b826efe5f51ebb7038cd4bec1df" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-audiovideobridging": { + "hashes": [ + "sha256:b59c68574e2c7baee13c48b8a66c1b8279f4cc7219db49ab1a3fddd5366e83ee", + "sha256:b9129a59cbaa57a445822f0abea283bbe52a7553a1fb668ce4746927ad5ab888" + ], + "markers": "platform_release >= '12.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-authenticationservices": { + "hashes": [ + "sha256:3dcf71c28ea9c9911f82a6953bad23c9dba1ee86f86b72058baec181ce646cde", + "sha256:4916b5d25a2ca6c2efbc53c17e0fb05ad0bbc3f74ec30a44a957077bc52262c2", + "sha256:8460c6322b2dbdd79765ec4ad18d0207c4504138a1aefa0393d5fe002650229e", + "sha256:cc70578d3dacc1bb11316f3052d986737e997b7ce084380373a47e260c633a86" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-automaticassessmentconfiguration": { + "hashes": [ + "sha256:24b30677e3fa68e607582112fecfd0fa1c3263465a37b290f93646a553b4637a", + "sha256:5e63150cb698eaca78cb2397666e180df57875139fc3357fb4093f54264588d2", + "sha256:9b936e29c2585ebfe243c0cc3e762d432d32224100add996aa86ff3e14de594e", + "sha256:e5e34475283b54de51a76338478a54ae05c082b64e36dd337da49b6d85b0d931" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-automator": { + "hashes": [ + "sha256:284395b6b9e6b6183f0670f29f8b6d411b1e9ad482ae34405dae71bdcf6f3c46", + "sha256:cf07c1001e494ce099bfa5fb12da5546d31138b256b3bd03ff3549cbe4197170" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-avfoundation": { + "hashes": [ + "sha256:4eb7253a09f92fdde604af99b07dc5bbfeb47d0212d04924f4f253e21407bd42", + "sha256:6b9d2e80b70e4c5547cf8f16117816f0bdf35acb67f2227e8d45168f1a5d97eb", + "sha256:af48d5db56f21e857f8473629cc9db38f7a13994f6d1d416ff8fdb62e6268a28", + "sha256:db7505043139693628e2e84092af53c3876ec590ebfea67fd287e460e2427d35" + ], + "markers": "platform_release >= '11.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-avkit": { + "hashes": [ + "sha256:3ce4a04e594777d140869893378830492692bfb9c0991af138ce054725ffb0fe", + "sha256:41e0d8dcf456ad25cbf4ef0bacbbaa88f85d60255668c438d4334805be8f57b3", + "sha256:b0ecc934e120489fae5da95c975e4cbb898398b29141c479803d8f2afd85c096", + "sha256:dba38425886fe8ce30a1bc1c9499de1f4bdb1ac9f69f0c285a376bf155861c43" + ], + "markers": "platform_release >= '13.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-avrouting": { + "hashes": [ + "sha256:2d8ba60e23996fa567c82acb265a7f09f0aab6695f622a27c84ff1caa06386db", + "sha256:8e0b6108aafa8e9ad78dfefb4f8a3136be08c5bcd8785861a807eddfeb94209b", + "sha256:9ace50d396de3ee931200932bba356cdb5ef05ecc27b89776b9ae5534761eb41", + "sha256:9c3aae86439cbefa3e2ea532eb43ca7b4bb065d34ec3df4e1d5b4ca8257a075d" + ], + "markers": "platform_release >= '22.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-backgroundassets": { + "hashes": [ + "sha256:06dea3e1d7d40e7e212eb0610453865aa8ab9d22b7718d20ee0e52e63408f310", + "sha256:382e0f74a98012c3efb6ed7bab829db77f8c99ad6aaf567e7dc9f37f8715d4f9", + "sha256:a0b4b2c310c4c387ad9fce8cf2db048435ae33fde60c15f032eb420c549fe1df", + "sha256:cad84c2de085f7b8092f4b5c810dfbfe7f50243223f65c6f676daf9195cfa1d0" + ], + "markers": "platform_release >= '22.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-businesschat": { + "hashes": [ + "sha256:dc95a88352f31043dd57a3785dba69e8000e1afb902f35646074b3aab509dfb3", + "sha256:f23b576f0cf336dc2820705138c2ace08edd8eb5f0043f34a579c26b1b6ec80b" + ], + "markers": "platform_release >= '18.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-calendarstore": { + "hashes": [ + "sha256:26b5154dc1990fb99090273e59c8c26d38d3d3fc1110cf9b9dbe772dee0b1130", + "sha256:d949a965e0c4e218d3363d2ef9ebcbfebf9cfef5d704ce066cc057c329c19974" + ], + "markers": "platform_release >= '9.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-callkit": { + "hashes": [ + "sha256:b942a3473b4494dd2d678fc57bbc4eac4e0729f011cd456ea791b27a3471835c", + "sha256:db74c10228440eee9f3563c038b46c53d89c1334665c33c0b05df676c85dbd7d" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-cfnetwork": { + "hashes": [ + "sha256:58614b1263f47ce87d7a4e8b9f3a798e99168b14fbaf028ec22fa9cddb1f04d5", + "sha256:a0faf61a8db71106d021624fb68a37748c53c3c9784470dab2ea7bccbc0871ed", + "sha256:b8c21adabc32e761742174f6005882b84d5cb4d98a1c0bb0bb2edceb3091fe15", + "sha256:e25e04c2a30e6a4396f16a9df4a5d0987eed409a49ef75e2f46adf26d97ad578" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-classkit": { + "hashes": [ + "sha256:891d4c2ec0c43c00fb038315ecc8899af226dc54d1d295cc3180eeccb8665f67", + "sha256:bbb43c19cbff458816ad9e35cd426c28123cdd35d3f5b69e7940225de40ea1a4", + "sha256:e73adcb59fe2fd3c2d666b90099377aaff6a4bab053677ebaf8e47186276f1f7", + "sha256:feb12dcb447797cb637df6e1c90a44467b413b7450b4b8988e3a7f5d9918afdc" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-cloudkit": { + "hashes": [ + "sha256:af89dd16d269f790e5ee53f890093e46f6808c9f4557a4f6ea55ad4475acf447", + "sha256:b5ef2837d8b56075c523473f74a910e54193fd180d48b4def3abe9227fffe3e9" + ], + "markers": "platform_release >= '14.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-cocoa": { + "hashes": [ + "sha256:083b195c496d30c6b9dd86126a6093c4b95e0138e9b052b13e54103fcc0b4872", + "sha256:10c0075688ce95b92caf59e368585fffdcc98c919bc345067af070222f5d01d2", + "sha256:345c32b6d1f3db45f635e400f2d0d6c0f0f7349d45ec823f76fc1df43d13caeb", + "sha256:54c017354671f0d955432986c42218e452ca69906a101c8e7acde8510432303a", + "sha256:5e1e96fb3461f46ff951413515f2029e21be268b0e033db6abee7b64ec8e93d3", + "sha256:9176a4276f3b4b4758e9b9ca10698be5341ceffaeaa4fa055133417179e6bc37", + "sha256:a1b3333b1aa045608848bd68bbab4c31171f36aeeaa2fabeb4527c6f6f1e33cd" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-collaboration": { + "hashes": [ + "sha256:09b0f474101b55fee825c79f7abdb36eaf20ff63af4775076a3f3bfa3c5837ec", + "sha256:27e0a6aba7d21e88916259d0fe1e9e4594177f16261b08cd22bc277b35e8a7f1" + ], + "markers": "platform_release >= '9.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-colorsync": { + "hashes": [ + "sha256:37fba1a608bcefb98863cad6d5b8e41238cf68fae55d9e0e60714f3baedc9c59", + "sha256:40b10afa8922f07bf8391a7bfe37c419b9bb9474261999e01d8a4a7949b5f792" + ], + "markers": "platform_release >= '17.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-contacts": { + "hashes": [ + "sha256:1ef8547fefe97bffd898c5768cb51a42ab13829443fd3e1fac8cfdf2c435bd83", + "sha256:33cfabd386fad9728d050ddb0778b60a077ae605a2fe58f00c3586671ae7b423", + "sha256:419394e31734548220c695dc30c7db67c51b336966665d17fa3d3e2f33f58e2b", + "sha256:edf3b76857f8b9eb2d0947f65abefef01b13771c493c82ecd2a600e17f0ad9c3" + ], + "markers": "platform_release >= '15.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-contactsui": { + "hashes": [ + "sha256:110f3bf9c4b96c4c90badf51bd74aa943f774bababd28a81e703d87939c9b939", + "sha256:162353f57244d0bdd83efa16b1f6c27580e40e34fc02f74a1c354fb520217711", + "sha256:6fbcca13cb0fe6e2c57cc192a59975b58f93cfaaf46292e85263f00a665facd3", + "sha256:f3547342849cc14f66925b8ed46213b014872da6bad373327a235feb31f74b89" + ], + "markers": "platform_release >= '15.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-coreaudio": { + "hashes": [ + "sha256:02ccfb15259069ca6670574f0ad7f81fca8be54a06a8f8409451a9416b1d3f89", + "sha256:63a0f2ea62191167b2559400dbe6fdfbd42753fb5393908c1747ab164a6511bb", + "sha256:63c571c1f841ad7679d7d7b48d797e41c305c8cccc70e78efbc871481bb20995", + "sha256:8cec87db901100d219c65f971a899e972e9beeda2859d673624f992509889013", + "sha256:aaf83481c93c9f2789414be7d013aeca2ef84051d573105d4c8905350d9ed71d", + "sha256:bb825b6f176a2cf6f3159f8bc6e778da8de59951fd4dad1d945334d6462fd691", + "sha256:d6087cb43c36e948297443ab98fdc0675fcdc2388a67388705c5aa9a774ef8fd" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-coreaudiokit": { + "hashes": [ + "sha256:4e509172b9f9967b2674ee41421fa6a28e65234bb12ef62297e56827583c68d9", + "sha256:93bb29195ef5312ec21f200d758459faacc41fd807bc9ad80a8f49cec6747846", + "sha256:d061f9f0306a149e47aaf890b7a03ca42d2c6d6fc509ad5d5e10d06ee60628f8", + "sha256:e76e3b78411d544d65bbd52bed18847782a68d7f9f8ce07bd93c837473b8ad31" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-corebluetooth": { + "hashes": [ + "sha256:4e5a256450bd9626311af64b6cf6752d0d9e7bc80242a915dea075180b350ca6", + "sha256:60ef6d0a5a9abb0404f690dab4b670aa1265258500dc4fcc8129a37460e8f488", + "sha256:ae1593be5c2fbae3795a66b4006c5c47cb6c99da8d2e4a67e187248d733bacac", + "sha256:b39e0bc5ad0b01fcf26853bd3bf2ab186ec6182073d00e0cadcf71cd48e047fb" + ], + "markers": "platform_release >= '14.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-coredata": { + "hashes": [ + "sha256:34820ed0dc461af08cde86771257d1745522be18ebc3943d28a6d4e794f7a193", + "sha256:ae858c0dc23f49ed2270f52903c7622f8e9cbd5787539b69cb9eef34beff8479", + "sha256:bee412788a355be20189573be0b08225a0eae38c302c50e85496900d7740a933", + "sha256:cfa2c7a2125c99158cb94d7c56fe52494c5a7c225944dc5f5fc66a267f9f1a14" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-corehaptics": { + "hashes": [ + "sha256:18bc8671482205bd83cdccbe71dfb984e476809c8326e73ffe9333a39d880633", + "sha256:c28e6b6f9c6df4eb5265f8318ccadb917033b77f932a4e3d069625be23e85c17" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-corelocation": { + "hashes": [ + "sha256:08eb32754f07b401a434e34076b9677a15f0d7240b4ff43205389270862b859c", + "sha256:5b4ee6ebe22549723ffbba72d11c961e3dc0e2b041e3b2a7b4b56be996b6728a", + "sha256:a942eaa95c595d5f2cd09f095330e2743e788ff1fa277e43980933441190e2fb", + "sha256:e7fb6612535f9772cc698020303fc35ac72227958c17a1437aef6c04821d0e31" + ], + "markers": "platform_release >= '10.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-coremedia": { + "hashes": [ + "sha256:0f08e212ecad91a56e0eb1e57d0bb4bbd3458993cf772ee424e1d961e5354590", + "sha256:30f8c4e36a5cb1978d7fbaabfcb4473218f466815bc48668af76d8d16ab60b5b", + "sha256:63d76203aeaa32f3fb6f1e8d5705616c156a88087914b6296acc50e63f0b35bf", + "sha256:7b8176eabd48d35afa60704674ab2c114e43f8153022ca90b8bb889029f54eab", + "sha256:7f0276075e831c5f3184b41e0f227ca1bc20ca089aa2c0c3b57f240eff2a5edb", + "sha256:8c13185b938b74261966da115182702ac8b214a5f1b7878031414e05a829d7a8", + "sha256:910e539e716ddadce28cc82cbbe5909621ef1ac92d2eab76aafd104bca0fbe15" + ], + "markers": "platform_release >= '11.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-coremediaio": { + "hashes": [ + "sha256:3fc90fa2ab8f4a9ac7bdfe1551e293567699b2d2af10d0fa7bf15d1b5b9c74e9", + "sha256:89b69e90f6278ebd7930d7595fee5b7b4c87db5402735af9ef8156c32cba35cf", + "sha256:bd4c5d1df1fbad73ada2cce829433c40a3e4f25e2a25264a5a549f91e0ea0d3f", + "sha256:c684caebc45fe93037b6d3488f2cbe2984cb8ee70cc20e5faa6b2a5f747bb0b7" + ], + "markers": "platform_release >= '11.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-coremidi": { + "hashes": [ + "sha256:0601249d12fbdbffda867086f0ea2b93800327b1048aa81f17af74f415ffc9ce", + "sha256:80995b839982ddcbb6cb0938e00b8fe8303127ab18797856b6bef514f6a587ec", + "sha256:e01a4bf44ee708a215b86d75c9417ca958424df518c9ea5301595c9a5820bfc5", + "sha256:faa1ca641d15d7bcdd48edf14b8f621155760d3d5d117e5088899108528f17ec" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-coreml": { + "hashes": [ + "sha256:06947b67763be7ebaa9a47cfdd6d2a1b92d9f61e8fd882936baac97c8168d501", + "sha256:80609d91fc421d20438755f73a4ecb1e87343661ceb3f36f678c03ca10ec3c03", + "sha256:93f7682d539b52e60f9309aa26d8a9680a0c589f2bef4de5b3eee26d27934349", + "sha256:ce065d22a476ea6865cf90344bec604b04e9b2e664067a64944558869f0b1eac" + ], + "markers": "platform_release >= '17.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-coremotion": { + "hashes": [ + "sha256:0882db32b1583d030826f34f0941291a1bd576f1ce5d8c414ebe47930e1c1a77", + "sha256:0a816f371c8078ef0be0fe2f4db6001e3b7a7b215c347d7c53ca2a0a433a8198", + "sha256:2bf0ba61b2d8355c1c26d8ef0f54800c9df9dac4c5b3c7a4df4c5b29aa8cb1b5", + "sha256:33fb505ea23f9b9a830a97c722ca983b8ae2a748b3b875aeb178e4f3e35d1752", + "sha256:519c9c77cc89baf3db244f4983f99a05ed21466fd59049ce1a9d5b9f3ff0b400", + "sha256:831aa3aab75220abe0145f4a484074ede1ac768b7a3569f25c0199cc7288be6b", + "sha256:aa3876193169fb6ede6d46d4f176f1f708f43983faf3de0882536b029af03553" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-coreservices": { + "hashes": [ + "sha256:0e87fa4fc1971f8ce9886dac227a0d70e1dff1c02daad2998ab1a36db8e1aa42", + "sha256:36817f6c294eb06b1a86472599a5993d851a436219caea567db1d5ff4bec60d7", + "sha256:6de26cb55e3b20346b8d585a5df21a10a90f4c4b1f13f73a05d62d120faf1a6b", + "sha256:8e7377b47ef28dbea256735189adf282a071f37d02fb0734190f500f39ea0fc0" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-corespotlight": { + "hashes": [ + "sha256:209ef77bb0c953a508c84135ae7a81f964b8e7530d7b83b77cfa6d0d275ff24a", + "sha256:2b51eaef0429e5879fa74d7476d9ea727b31ea636a4b15f171e9af2768a04868", + "sha256:63b94d85e6bed4889ae497d6231f0f034b20b89fe5f13ff620a2c822f6316c46", + "sha256:8dd0424e36028ab5c3415baaa26a9a9eee837535530860affb37b534dd8d93c4" + ], + "markers": "platform_release >= '17.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-coretext": { + "hashes": [ + "sha256:418120c11e2318130b20ad7319938bb6ade8ad023676bb04e39ae0616b7bad2f", + "sha256:4a13ba577692fdd9e4bcd2f915eb656a888780e0c72c28a821cf78604f08a775", + "sha256:4b1515f41f7c61a06897436e872da74b31507d4f5fd3e68c5cf41f074924ba90", + "sha256:54a889c7bc33d56d62cdb54edbbc73fedfae6c1b02144c76d84ef83758b180b4", + "sha256:65023e4fd5bb91949eb324b6baa45a9f2ff69c344f77084d63a8b0ec1fae0fa1", + "sha256:6d4faa6c4f7d3902d38e82f5fee1907e155d9c061fcfe0992110a4c490a47476", + "sha256:ff085de16a67e90ccef5792bdfc759c2196550005056d31ce1e70fd567ff744d" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-corewlan": { + "hashes": [ + "sha256:1297f8dd653a5a22a972012bdaf5a0b9cd39ff8fc7255b37c1de6bb35ace4cf5", + "sha256:2fa07cbc7e111c77c4d5bc90f251e8c2c138f90ad3e7a522295910d846a92993", + "sha256:47d6f07723657e36eefe8d2012de689a51cda97edc31b06f9cf7f7b5d9a4905a", + "sha256:57ae953d599a711673837ab70b09c79df0bbd79eefccc1e23df74039f90498ee" + ], + "markers": "platform_release >= '10.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-cryptotokenkit": { + "hashes": [ + "sha256:65a8ea8be2b53c2f545b2872da2e228322acb8a60e49672bad5507e5059b3539", + "sha256:91e9f6bfa83ff2aeb2473d1aaf16a12fecc1e4fff5b523e88274d12a23ff7acd", + "sha256:ba77f9c7022153013108ec5c2b28afa4f2890cf65c96a25185dc20f98b7b13da", + "sha256:d576da00bd2dd8d00e7ba782e595d796306e9cfcefc51926897477afc67f97ef" + ], + "markers": "platform_release >= '14.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-datadetection": { + "hashes": [ + "sha256:372c692f3c12e6537db8530cdad411721becfd729f4c3b1f99d2de949577ac6a", + "sha256:9fc15ee738e282f613019f031d8ab9d0f34d8327c652aa810b8334d9ccdcb623" + ], + "markers": "platform_release >= '21.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-devicecheck": { + "hashes": [ + "sha256:d7524f02c1f108e27f4372f97ea485424cd40639c6fa5006511a53707f03f799", + "sha256:d9da5710f8ca3ddb6e26a688414ee9bb7d67a88326f505de4a4264c517619a5f" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-dictionaryservices": { + "hashes": [ + "sha256:0ef5951c0c70a8706977441f652deda3bead2f3dea6b7d82f5708f3e9302ebce", + "sha256:d6cc9a76de4a1bda9aca9157ecf0cb7c6356227d95b20b47e0797e2ce15a5287" + ], + "markers": "platform_release >= '9.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-discrecording": { + "hashes": [ + "sha256:3657d79bd424a4e7925bbe7ef94ee39f5abbd5e307aa04501432fff3ce531f07", + "sha256:63a3e94786faac3623070393bcc12813e2ae0a8af404ea907143d7fb1162d482", + "sha256:b247de5cd37db53f0f9a1de9a231a029ed11456571ea125d21765186290a42d7", + "sha256:bf60037209adf1061aa9175623a56e9d1062f70f6f8b995fc22a7c8f88caba3e" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-discrecordingui": { + "hashes": [ + "sha256:ca0cb22614effb4c1d521a8d57c343377dc029da3dc040b87bc23e29a2a5b1ea", + "sha256:fa8e3a3ae342bef673898bdd1032d572b649d8c166999ac697f87373d6a48da8" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-diskarbitration": { + "hashes": [ + "sha256:0613f0c34dc33377afe93b70e82775e245d9017261eb325324d204cebb72cfac", + "sha256:1b0d6896216f92bc72deb8511245ed386d6191c243f833fe6f20fe8b2282a3a4" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-dvdplayback": { + "hashes": [ + "sha256:71869628467ab6786afddb785c9ee146ecf1969dc37816141779dfda84c67d01", + "sha256:f976f3bf9f3d0a22b9593051e6fe506f56a3bd647a6119b5ef208ba60aefdd0f" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-eventkit": { + "hashes": [ + "sha256:39a13055cd3e74893f145c5132d32d44a0b12151e44e435ddd122e411b001d06", + "sha256:768389131e4e48b859654a14b6b4650e413677a85bc794b327296b7e92b9d129" + ], + "markers": "platform_release >= '12.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-exceptionhandling": { + "hashes": [ + "sha256:2929e47510d53fd04241f2761ef0f5b7383404bfbf18dbb43edc20fe67274c35", + "sha256:4ade2c786cd6188fbc88d1c5db2633b9645f1527f7ae73121451192cbcda8b0e" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-executionpolicy": { + "hashes": [ + "sha256:276f2524f855836b1adcc5cc17a41fe39d992b672d050b642245f9fc370c6dc8", + "sha256:479a814f8bb363db392c94edc484e18ad17e34bfa1fa05d34f2d19bac12b60ce" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-extensionkit": { + "hashes": [ + "sha256:26c74d802c84ed40931c9f124cc2c82ab6a89b9673d830d92962fa6fb1c0b8a6", + "sha256:8cc8af22b6df8bc869f263ba252e39e751fb4d2f20b23ceeb9e2b386b8055eca", + "sha256:a76314b0988709ecdfbb91fed0780b9c1cc5b50c0febbafd8d8077d621e05c04", + "sha256:c3ff2b73e238278f3dd67b8296b85e1d6ea2694e1657bbc91941771666b926aa" + ], + "markers": "platform_release >= '22.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-externalaccessory": { + "hashes": [ + "sha256:3d2d1ac98b2bf240d0abc8cc07183e28288352d0d89549d81d626dc074b48729", + "sha256:51f538bbfc2b265dde8ee2619662ff2aa57e03d20c7455f43c3f3e4d6bbbd223", + "sha256:611ef4af924cf5d39096ebe1d7d67d8361b013bfc1476595c38949302c436b41", + "sha256:c5e031d11037ed99ec21e0e7c67365c4a0e3082abf37deecf69b34ba3eba1c3e" + ], + "markers": "platform_release >= '17.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-fileprovider": { + "hashes": [ + "sha256:22e23e744ae54a964bcc6f9887304eb49f364a312df074911ce4e03ea22ed850", + "sha256:32d6443b8d9f5cc032f56055dc5ac49073a1edad6669a7f19e3522fec377d62f", + "sha256:3d164cf7d7a082ff99914a99a9bca519605ee563d5cdc82fb42f4763946bad30", + "sha256:3fbfd553ad54c8598ac55b189bf6b1c224a1f0d131d15c0a92b61418c6dd536b", + "sha256:845cd6c70244710dff1c4a07c6f79b522bb987227ac1e7b49db5350dca40d12b", + "sha256:b57f548575b80ec6b777e63f145a8ca2f79d0b940a8b9cda7aa93adfb426f21d", + "sha256:f87d1ac83d698dd61070bf49726eca19b9135f7510ffd7bce7a85166b8fc8953" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-fileproviderui": { + "hashes": [ + "sha256:af1461628e8208c2f9b49f5da972fff7ed7f9fe1cc95cbaa49743a2c0fe31699", + "sha256:afb5b7048cddb57f5bbeea541de5dd9cdf733e4cf6ded136a91aa2374f15676e" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-findersync": { + "hashes": [ + "sha256:b0be003f6aeacd5604ba5beb98da98b1a07df44d3d5f308b9974d5512d9832e4", + "sha256:f13a59300a4df02a8b944ffe5a9263fa1ca23900c92e863da8964c02c322279c" + ], + "markers": "platform_release >= '14.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-fsevents": { + "hashes": [ + "sha256:5822358545bcd24c28c3906e05c4f137eb78d43871bb5f3dd042e681ab51219a", + "sha256:72cfd7b8fcd575bf08b0ae84158fa1b1f34e974428fee676e831ff833f171b33", + "sha256:c974a288f74cc5afc96d5d744fb8bf638d25f88be2ffcea92a1e74758978e3c2", + "sha256:fd6b4d14378dcf2d5a04eae8fc0397398965ede5d70415b85e89a2db7ff5952c" + ], + "markers": "platform_release >= '9.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-gamecenter": { + "hashes": [ + "sha256:02c2fcb07c290ff44bacc34a9058fc9157bab2fa6b5c7337e5b18e2e1bc66a2c", + "sha256:28239dd291d21ead7705cfae6d1b3fead551a38672d78663074a9847574ef10a", + "sha256:ad8753f72c7f48e72006d7f66e1485ef4d86a5ea66d2e8bbd6a1fac39dd45b9f", + "sha256:c59935cc6c72b84412f53499da4b72cfebc8c5d82d7fdd378fb6e21bce48c945" + ], + "markers": "platform_release >= '12.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-gamecontroller": { + "hashes": [ + "sha256:04e13ba8b2a131c699cf2a8c9397ba5418897de7ccf8eb202a5033764103db2e", + "sha256:0d20184bbd14724adec6dae9a7f1644d0b01a04ca14330300e14e98145a28f15", + "sha256:a7075be10e0c780b8d51b07c680249a93340dfbcd1969f344a8ac0468535b7af", + "sha256:cce61470ab0fa48b286fc1a871521ebb4cecbc918760eab64158fdd69c411455" + ], + "markers": "platform_release >= '13.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-gamekit": { + "hashes": [ + "sha256:03f726141bb7573a11b07dac37f261fcaa6d9c6bba30eef8306b5596550639fd", + "sha256:2ab3e2bf37b0c795ede180cc40ef5b8bb14b32ea4fac1f9dd67b56ee74f5fdef", + "sha256:5a5cf5f62c4c619fa4e6bd14c4855948c2f88d3a2aec3ec838a8ca8ffc4971b2", + "sha256:f07d71187d66757666908525211e73da13774c99209a5b92ee884a3cb1097edd" + ], + "markers": "platform_release >= '12.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-gameplaykit": { + "hashes": [ + "sha256:20008c5142f8bf43b9f8c25c7a0f5ac50e01fb6f9d6aeb14b0109a79845cf2ee", + "sha256:3d3381ec8211e195041429ba44659449d1c167bb1ce61e168fb46d8b508ef4a2", + "sha256:b5d5b5f89109d1826ce581dcc866318cc6f0e40ac75bdef15910d71df5f92a4e", + "sha256:e94aa8ae0a9c9595038f3e620a04401efb0a843ce352f5b398c04d538866895e" + ], + "markers": "platform_release >= '15.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-healthkit": { + "hashes": [ + "sha256:7736d9cac2f33628308fd7ed375f0f42ddb475588c22cbedde5310387fe59b7c", + "sha256:7a9a4e183cbb6616b72bbd1bcf44b1b25540aa4edd673ec14c633d1ad5d1e236", + "sha256:e3a2961a002d43302a168c4a351d737995c3020c07f8c3e86be0e4b8718bd5ca", + "sha256:fca40953777512837cd03fab07cdfbaf048bdd51d29b8cc3bab1e26c0ec64158" + ], + "markers": "platform_release >= '22.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-imagecapturecore": { + "hashes": [ + "sha256:0f7c9e7ace13a034e3bee52170dac8dd359a8e55dc6552ca62567685888b59de", + "sha256:235a1bff738d0d96232ab5456431e30f206a2fec8d3061ec08be234693a5ccfe", + "sha256:6a90e3bbb22077fac034e0abcabde7e95aadf2790ad91c67f561cc8717cc8268", + "sha256:f43a41fe9a93c2a589bcd06928f5d73df9962b128b71358561aa4162c75518f3" + ], + "markers": "platform_release >= '10.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-imserviceplugin": { + "hashes": [ + "sha256:07007e23130e75ca7648b1a736e706522c57053d101568e54523feff3f1e1702", + "sha256:4b2a1339ae2892182ce24e782988a10e618ab0cd8f7753e5e8243f8d6a06bc7f", + "sha256:4dc8b128eb16e0b699beca60e19a3346cfa6fc1a4396e6877cff99d0a8695b55", + "sha256:5746630d37b61f4d6b3a7787fb1cb7690b71013f1387b72cda832f39cb737d57" + ], + "markers": "platform_release >= '11.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-inputmethodkit": { + "hashes": [ + "sha256:45081efd9b3b681ad0ef013f024001808ee898f81f639f8b6f5ea0a58dcaa9c9", + "sha256:823698396c1b4a33e768deea3a58baba21366bd2bc2fcfe8e1968ead2a6d6f9d", + "sha256:a1d652e5a02a804b4a07159c0f49b2b1d2ba857272d2aeb45c597166b97e4314", + "sha256:f8f02f666e9b5c6495bd9e51329427d8de88d5974a5f84d1dc7d9da09da43549" + ], + "markers": "platform_release >= '9.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-installerplugins": { + "hashes": [ + "sha256:b9dc036bc48554cd9eb1846f1fc96476e8d7e875b12fc488f09367fc7018af21", + "sha256:e077339f6e40f69ab9f9447f17eea15832270a60a5244c1dee9d23e1c8cdfe5f" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-instantmessage": { + "hashes": [ + "sha256:a9283431715d04e7890ae70f88b957eb3087c9766e5b529ae9e6fe37823840db", + "sha256:e2c576f004c91c25354a107e985cf52afd36d04b74d7497d1b03e4e634a4b3eb" + ], + "markers": "platform_release >= '9.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-intents": { + "hashes": [ + "sha256:37678176e5bf76847d370fb65e9f5c0db8bb2db2e6a88472611fa7703a970788", + "sha256:68a97f1b98687fde89064d3d5f7cd2581fe9b040a2478ecf382241fead8406e0", + "sha256:d3dc3eb01c1971f41822a400b08a60749ab63e8cef81704d875b24cf10f00156", + "sha256:d667ad8e52d9c2b7f2b0b3a7ecf03140886856df87d27af4e9b7cec62e29f4f9" + ], + "markers": "platform_release >= '16.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-intentsui": { + "hashes": [ + "sha256:0c1b6666cf58f8329b792c808a47872dc78a2ede32a05efa85094fe7ea68ff9a", + "sha256:24febf90ccae807145498cc050a0e611498b44a7df921ac8725a98d6de59ecd0", + "sha256:39b5b5485dd6391bafaa0bf8481a3a18bb7d626e899c8f71c4acdc319f3ca5fe", + "sha256:766a51b098c4e602bcfbebd25fc01f4bb24aa45e143b31be986a9860fccdc68b", + "sha256:78d819748667891f4f650bf2e625fea7579148a29b5cc83191c660f5cd4aabef", + "sha256:8eea2afc71110fd3c793dadb323d7946d07c29dd905807b0b5056b4ae4642d1f", + "sha256:f256c0d886947242df8fa57b28abcc10508253588cd072a36ae7fa5bca567797" + ], + "markers": "platform_release >= '21.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-iobluetooth": { + "hashes": [ + "sha256:0e4dea8cdcb38296559b9ff967fdf5ebf5461d2c992c546ef6f2aac5655dd01a", + "sha256:1051680e060ecfb489f6e0d6b56e82e3f51ebad22fabde81517e910f3ffe1f14", + "sha256:72c6cd0a63489935d66e27bbe04543cb0ca633333080d12818d73fe85957bf58", + "sha256:7b86c2268cf701dbaadb8944cb48cc7b089fc1cb717d30d71c239ea7b6dcf0bf" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-iobluetoothui": { + "hashes": [ + "sha256:46a6b6a914470d7dfccdad8bd48b4a3cbde9d479f7d02d360edce6e87a7e859f", + "sha256:a2643b3b77572d408fdfb865d118707defd7ebe788b01ef81f6ff10597f05216" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-iosurface": { + "hashes": [ + "sha256:0bd8b47330a399224899f1730805d68c4a2488656abf23903350a43652bc6a33", + "sha256:7b8c92cc697ab78dbe41baded3ab8027dd260ccda08ab5a35e6935f5ed82a962" + ], + "markers": "platform_release >= '10.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-ituneslibrary": { + "hashes": [ + "sha256:8b9df191a95da41739d110227ac85074d9f63b7ba101b483ad0cbf587ae3e49d", + "sha256:be6ba8719826490be261c472730df22995114bdc23b3d2fcc4427e6abdda7546" + ], + "markers": "platform_release >= '10.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-kernelmanagement": { + "hashes": [ + "sha256:52f2de8f72b6e15826b170c78376a93705304186e680d60323cc881c8c9b2e8a", + "sha256:f04fd3a94db36535aa2951b7dff05cc283217dea30ec3d1b19e3d2dd870d158f" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-latentsemanticmapping": { + "hashes": [ + "sha256:302ae2152b05da3ef7d1e6ca06c9ea6570eca6584067e9610d47aa3307f2c570", + "sha256:387f3c7ebb979651d7279e247df20a0e04eff824d536d21e0b507381d1f12c77" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-launchservices": { + "hashes": [ + "sha256:7cf2612b713a59806772fd42673874f7fd652c21907fa1e103261315daeb110f", + "sha256:8fa98027257e78341c4352fd6bac1f6b6c8178e9f9dc23de523972af583fef2c" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-libdispatch": { + "hashes": [ + "sha256:1cb3b6a81b79696176108253a8a7201088e51e59b85c1c314c03b0a682ac577f", + "sha256:40f503d8a0580f654a5bd36d332e34d48eee5ef93a9fa55434c2e6980a736396", + "sha256:844a05a6b6b28e24f569216adff368e88237185bfca83afa2405bf6f86b8ee74", + "sha256:a5a8a20d624a3ccc72750dfe39bdae2eab56a1cae883eb0bd36a58dbdba79301", + "sha256:e6774ab26119a64a7cc9196cc151351aae456aebe92038e053804f72310a794a", + "sha256:eb2ca9092972dd0d403630d546331589b0244e2e685c5cf20c82b0d6134c958d", + "sha256:fd52fbfaad1a89296170c196f21ffb8470effae0fedfffbc8d2ce0836ca466ac" + ], + "markers": "platform_release >= '12.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-libxpc": { + "hashes": [ + "sha256:29900b6e15168d870f17f0e4fb7f9c102a6bb1a546b0ff5e8502eb2136979114", + "sha256:39f702985f5a09f90fa157ce8c3c7d8ea44ee52c1bceb130ede60ad80f35154d", + "sha256:3c3103d593883c854a98da9151b0ca7a4cf80bb8f2295275afcb9fa5303e881d", + "sha256:6526cd546e88c1bbb3e4f0c91294bc4d3841a95bfab06c8496cb01e07ffa17e3", + "sha256:6afec424f83e3fd6d3204a1827040f714005d384258a1ec95d5c93c46b6ea39f", + "sha256:dcf1ac20bf75458c79830b973c0e87d361c072565d17a235822611a7ca6d9e2a", + "sha256:fa67a0739566ce5990092bbb2b01b29c255810b3582d5714ed75105689910e2c" + ], + "markers": "platform_release >= '12.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-linkpresentation": { + "hashes": [ + "sha256:62fdede094baaa6050e2c1036b8296cd265890ee1b4aecc0de239c1320773820", + "sha256:e39735f2234da3355c68c606bab452c26c2c44272afbd4d4117e0639322a5d5c" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-localauthentication": { + "hashes": [ + "sha256:1cb76d29a54d0938ec46a6e4f6d88bc67a1ee5fdd64a72cb3b570ace234adde8", + "sha256:b659acdd9f2f0e2c3fc482bf28a063854ba229fb45c681b5bf546d94b58f288e" + ], + "markers": "platform_release >= '14.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-localauthenticationembeddedui": { + "hashes": [ + "sha256:52089e3f8e7a26ecd30a5c64f76571190f897b144cbcc75d47ee8eb989a48d69", + "sha256:85883c615ea71674c5df61df071a7eebdd6db8f27c7898bd339b24bce4311632" + ], + "markers": "platform_release >= '21.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-mailkit": { + "hashes": [ + "sha256:232ca4f233a59df2a4652884fbf56f87a93486ed3843863da8d6211dfac39e63", + "sha256:71bf31eb898f8a50638c1a3eeeafef053991e02495bf88305cbdf08009c1a553" + ], + "markers": "platform_release >= '21.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-mapkit": { + "hashes": [ + "sha256:4a7ae7276c524d5059534eef473fa6c69b7a1fb44a1d3a8e4853f63c14c8092e", + "sha256:875c6cc38c895f783eff2d5c71641257aef854ec0dc21219d02dba43abc2643a", + "sha256:9010759a325f096b5289e9dd8f85bee942ea1011eb9e86f23e96eb9cd7b5a460", + "sha256:c1594370466b1360d38ccd0b59092e276b0d5970963e3b647f4eb528c71a072b" + ], + "markers": "platform_release >= '13.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-mediaaccessibility": { + "hashes": [ + "sha256:bd58bf620d744f72330fb1a076307ab36fa12d8454f8309a0f6fc38a6f7e84be", + "sha256:cf285c23b5804cb46fb081d603658b75b2ffffa16ed89596ce21b7e3bfc82388" + ], + "markers": "platform_release >= '13.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-medialibrary": { + "hashes": [ + "sha256:35537f04d731c1eca707f183a48b1e8e8d776c3ababb5b0ff2a59e96e828fc8b", + "sha256:f5ad138d6c1c3029d70ca4b5f6dad0b42d13831850da8d7dc0cbcf304f1c0487" + ], + "markers": "platform_release >= '13.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-mediaplayer": { + "hashes": [ + "sha256:403d6d1e63d5665df37234d01feaf59381d8f6bfed6ae13a7357c05045b5a2ed", + "sha256:6a9c98fff7ce41479cda74a4c13c13efd2ecfdb61fb4dcf7ea875d5825a08528" + ], + "markers": "platform_release >= '16.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-mediatoolbox": { + "hashes": [ + "sha256:00741730ec1db8e1632e096b66324bd9a0ceaf485fdbb5fec1b1ddecce16a09f", + "sha256:2dff929c43989edc46e672db51dbd6933891b8d132ff397b047039928f1e62e4", + "sha256:c38264225e7cdf52cf4fe7f6e927a42809706e6de00f5dc6e94bc1b71c9f590e", + "sha256:cc72dfda5db195f2f69de90dfcc665e5e739e74c51ecb3d25df1946f291defbc" + ], + "markers": "platform_release >= '13.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-metal": { + "hashes": [ + "sha256:6cbfa01e11c0e08c4efb0faaec6d64f2d42400ca1a323e5b613bc42c62caf472", + "sha256:b99e8dfad6b8a12f37d800e8f0b415db757414fa63d948ee54874bbd2c11a9be", + "sha256:d05b6caddeb4859b5560eaf006601a1e17b33fc83f4e773e94111b3c352f3531", + "sha256:e501a1e3d5cd130d8273f00151afca6ba84507f3e84b749cd6651de20c75537a" + ], + "markers": "platform_release >= '15.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-metalfx": { + "hashes": [ + "sha256:00e737886427932b43a494bc165a7a583ac9ca2a6225703b0441134ecc049f6d", + "sha256:43607c0b4d36e6a044b03624a7ff27935cf9ad9943a6d0dfa7a2657c619e808a", + "sha256:61c4cd959d34f35805a03058c61b367a11472f5c8a69a7637428024c5723ee6b", + "sha256:edb47649d122afdf212811fb6d2a3c62304749d63629a7a93ed875a7e8dde496" + ], + "markers": "platform_release >= '22.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-metalkit": { + "hashes": [ + "sha256:00fa7f1d683657415b225a46c432ac738d25d3b5c32fe4b7de33ab63dbdff3f8", + "sha256:33143604eacb87fd3e6360d0ace2b12095a1010c3be30c8bc0105844104984f1", + "sha256:a592bec17f84fe48df300b68e9061137b0c1cd5b8330b411f33cd6cb8e3ea3f9", + "sha256:d85c0aebc59fb35169631581931fe438024f7035b8922636bbd2bf051032ac77" + ], + "markers": "platform_release >= '15.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-metalperformanceshaders": { + "hashes": [ + "sha256:06e1307c4ebcc0b10d4a12892e12da52b0fb79e8c5a414033b824b0e6ee8bbdc", + "sha256:2767873c48a0279541def6765fb462de794fcb9ba8fd77de61b6509cc54c3842", + "sha256:d6110823319a941bc959eeaa5b5f73e8f2d6c6473ae1562595bf57fae2dac9c8", + "sha256:f00b4d7990ec9e4ac7351d310412ef7e4c45be8299c922eb7a4ff58e6a2ba064" + ], + "markers": "platform_release >= '17.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-metalperformanceshadersgraph": { + "hashes": [ + "sha256:01f1a50a2d9629f56f5d1186a5416b133b0411ea02dfe4fe6707080e00b9da28", + "sha256:1acabb99b91475f4757799aefaf36126f101f1a7e098b8a1a9ff1cf48aa8bc0b" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-metrickit": { + "hashes": [ + "sha256:070cddfc4899cda9ec16edf895b303dabb156119e73b41f2241ced426efad274", + "sha256:2c8cb8f108660c698787252eb6af4e6ff5cd1adce37c64fde3024c878c7e8eae", + "sha256:6601f61035761fa701d4b398a34b1eb904435bf589ad7b17eed039aa412a5e6e", + "sha256:71eb6f390c96d34f38a6ee7a9722e796a9c725d3751e85423a02abca997601cb", + "sha256:83bb17808870f661b2139fcd31b5e137a98802fef03ccbd17c6b8ed670be6868", + "sha256:b24a6f4b5259d6c12dea4496fc8b0596c4d94b9338783fd96cfbba7e8420801b", + "sha256:c7e3f41b30f4fa22189b297d6267eef810ff1eb6c3c069d556e4af3a3389542d" + ], + "markers": "platform_release >= '21.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-mlcompute": { + "hashes": [ + "sha256:2c53c3658d3740ef99c44fd3ece411e6e6156216ad94549174889e9d822c488c", + "sha256:c4100b5bc89b968db5c411143a59fffb0f76491827ee92987005e1ac82fa99cf" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-modelio": { + "hashes": [ + "sha256:06ff2089df3c9bedfb67ed60ba63e651d15770dbc1034944da4fbdb22993adbf", + "sha256:2e206651c72b0ecc01b66ffeab3b48056fc3c42c82786a7d9a654bcf5b26a2a6", + "sha256:398a3c6ca82ac08b4b5cb63fb6e362269bd18a28fc0b3b2528846cc8b6777fed", + "sha256:e27c5a0227a1e5708b7350150a12c77eeee46373da3bb6a3738436f818c0505d" + ], + "markers": "platform_release >= '15.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-multipeerconnectivity": { + "hashes": [ + "sha256:7116a06edc87a1283c526c33fb5661c16315402f2f9d250cfeb0aea58707a1bd", + "sha256:a0757b788e5dbb3dc9b4eee9bdc74e4424f57e07eaa75d2a038e02bb2f801a7d", + "sha256:bdaf6450a4914e7d315cedaf7d538d6271bba7939c8ace4028c0ec9ca45c25bc", + "sha256:d8883b7619c74e6899ab4bb660d6239b0d9dc1f25d53d61e94f681e3a500494c" + ], + "markers": "platform_release >= '14.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-naturallanguage": { + "hashes": [ + "sha256:77ed788f611da5d59520d895042509073167a971d9af2dd0af056f04099b4bfe", + "sha256:c80391a2a65a2182cf09e0c2dde4428c16fbbfe7f237729471a5ff7ee4908e8f" + ], + "markers": "platform_release >= '18.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-netfs": { + "hashes": [ + "sha256:05a0a32c0c27b8534de0462e8ecde0a6a2da675741d4d8b77c42741b7a018b4c", + "sha256:71edb4e31704049d31ff3b00cdc8b3cbad8ba8bc528add5be2fa13a352daac59" + ], + "markers": "platform_release >= '10.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-network": { + "hashes": [ + "sha256:00c069485016d3fa6001655bf468f0968065d64d98464decd6b2cc772aabf01d", + "sha256:0881c24da1a707e05d040882aa67a85a965a03198125e2c01e1f617604554360", + "sha256:8675ca12ed955ce93c20a39bf73a823e7dff1dc7386276a8d905e1c15a6e785e", + "sha256:9984728eabfd2e46e4073f990f7f6d4856ed35a30ae73a67b75e337c14a3a0ca" + ], + "markers": "platform_release >= '18.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-networkextension": { + "hashes": [ + "sha256:3ed8d13ad0a3bb8cf83d2eeed7c74ed71053a94119e1af96a3dbb6fcb263b4c7", + "sha256:947735f56adf268b2337a3db9fd5232cc1300465969f76fde62cad41cd704a16", + "sha256:95de3c6aa056fc74888d58b7fe507d5c0790fdfff01fb6e9c6039d0cd9ecb6c5", + "sha256:c0bc25c8d595951a7931c0c98a6f17d177b7cff8be91352a45e64c0e4a8c6b21" + ], + "markers": "platform_release >= '15.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-notificationcenter": { + "hashes": [ + "sha256:2486159eef53249ede80ad237c52118fae4ed496eba7c32b7196d6a02e607300", + "sha256:4dd1ca5bda1e938496f7a053b78ebaa0c358fc54f647fdc644f323728f5dfd5c", + "sha256:d2036fc7c7944ed8369d693902beadb32d749d0fa75c0ce85ff8185d783e42e2", + "sha256:e2b9a56970f69cfa5f654e2d61ceb1c33adf5b30efc5c24c5e853714d02bb983" + ], + "markers": "platform_release >= '14.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-opendirectory": { + "hashes": [ + "sha256:4ab71f6a3be1383c32446efa4953f475dc066a7a50209654d7edf5979ac6cc3b", + "sha256:5413e21190c47439c5fe48ba3e58f6fbf9045f820de5959d319e24e5fe194800" + ], + "markers": "platform_release >= '10.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-osakit": { + "hashes": [ + "sha256:aff04742c6098af1b3feca70dea851ac171dfdac5a84ef1794fa132b7d4e4654", + "sha256:bef666303f96ff0da0319caaa123e4f71f4361754e766a4b4e347c15e1fa7c70" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-oslog": { + "hashes": [ + "sha256:1b60abe8a5b7a447193a6dddea7aba8c664992a0b28d161cb3acbf89d5ba94bf", + "sha256:35361d31d5d0f1e33f4f6ae8794a0c5da1cbd5f3027fe69d1c1b853ea282965b", + "sha256:71d736bc14421ef32fb63d00471a96e78bc73e55ea7792fa8b6e1bc05a8dbd59", + "sha256:874fb93b33bdf3188467fd86aa55dbbddcdc1d8a50e309595749815e7fbb8415" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-passkit": { + "hashes": [ + "sha256:2578846bf2f50a020d7f60fb272aea4969ef7dfa2ea9d6ec1cfd2c0b57b011d7", + "sha256:4bc5a4008938c055f081860703a4e56027097eaaaed4ca80ef850cf4f868ebe9", + "sha256:62bb923aa3beab0d12d0eb5d5372c52f90ebb986858dd3bda606a68eab8a4723", + "sha256:bae2c240dd62b5a627068d7c55c1290fc2cde4e1e48193a85ed6cfb15f9c2cb8" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-pencilkit": { + "hashes": [ + "sha256:1639404afa1f9422a3f48914d24aa6d7b6c436eb1c437eac4820cd2c530fdd43", + "sha256:1c50804e52a540ef7ff6277780a7968af2a1167bd81b14703d7a84664280d43f" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-phase": { + "hashes": [ + "sha256:0c640e3355a14c570182f0b01d29fdcb803f9afa58186c0eb5dd498c746402cf", + "sha256:7303ec167f26ab85cec46977d372017f1c6cb678b5e9e70d3c6b32801cbb1a4a" + ], + "markers": "platform_release >= '21.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-photos": { + "hashes": [ + "sha256:65ca3cbf4df3093fc8e048e96aeb6a31b460ddc989ef8d4fb74ef72fe59d1c4f", + "sha256:9756d24ba6759ff08bb829f32c7d0d6129a7b981b14a91d31b557690da7029b9", + "sha256:aa0a7168d15d98cc50a5d5340ea89f8c5dd74a080fa671fb69eb4ab30b0bd7f1", + "sha256:caa492496a54d4509df58d4b24b5f736a196f29a22049b70443d49f07975b6e9" + ], + "markers": "platform_release >= '15.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-photosui": { + "hashes": [ + "sha256:4b2397edacf5ad0e276685c054fa3f002fa1f6ee02c3b147aaefd86a09d43609", + "sha256:5c7539c367c30879a535e948729569ebd6a7171d4bd1f63023afce2f29ab3e1a", + "sha256:65d0f02d0b2a29dae5162b76757c842d3d94d2d07c8b48974d25721f87929e30", + "sha256:a008450e11c9276debcdc050110d3412fd917650997edb23c1da0a9b6a7f5e2a" + ], + "markers": "platform_release >= '15.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-preferencepanes": { + "hashes": [ + "sha256:ad34e358321bf8147f327e562987b15307561f795b90ee8e808c60bc97cdc48e", + "sha256:e3cd18255093d2495e91158977523efc56a89bc24ac4cb61acb6195bde817906" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-pushkit": { + "hashes": [ + "sha256:041eb2f175959df9294bfb324c1657d4c2b459d24c1b9af24bd9607f964e3f9c", + "sha256:19b7f948e8c30eb1cbbc780e9cbf79bbb101d3a44e377fc9cdbd1c20f530cd93", + "sha256:9919746e17b02f4f8be56f10c0b8c946ff594cc785a4e7b79a11a3045ffda250", + "sha256:ce04dc07aecd14ef41ad2570a8e1b1457073198b5a779a9469c5d9329de014b5" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-quartz": { + "hashes": [ + "sha256:32602f46353a5eadb0843a0940635c8ec103f47d5b1ce84284604e01c6393fa8", + "sha256:3b583e6953e9c65525db908c33c1c97cead3ac8aa0cf2759fcc568666a1b7373", + "sha256:7b3a56f52f9bb7fbd45c5a5f0de312ee9c104dfce6e1731015048d9e65a95e43", + "sha256:8d03bc52bd6d90f00f274fd709b82e53dc5dfca19f3fc744997634e03faaa159", + "sha256:a82d43c6c5fe0f5d350cfc97212bef7c572e345aa9c6e23909d23dace6448c99", + "sha256:b3138773dfb269e6e3894e20dcfaf90102bad84ba44aa2bba8683b8426a69cdd", + "sha256:c3efcbba62e9c5351c2a9469faabb7f400f214cd8cf98f57798d6b6c93c76efb" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-quicklookthumbnailing": { + "hashes": [ + "sha256:2d6fda21954347c1b16de34ec1bf4e3cada1766358f3e374f557ee7327279557", + "sha256:8d9e6b4d3dda20734c494a7993793c64d4ad13805e48f3d259956bdd0e1c0135" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-replaykit": { + "hashes": [ + "sha256:5740d3ee7a6fd47fa37c4dc640a3ca5983885a80e8fc205e4a0b4478dd2b3da8", + "sha256:c0213a9e8e6227833726729c4d5c1523bc084acc16868713319a3b5a019d258e", + "sha256:ed32f10b656a7568a6a761d417171992e068884943751a515f0581bd35bcd5c9", + "sha256:fd6742948d6e979c36aaab8090edcaccdbc6e5abe2a82aad72748bc6ac48d954" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-safariservices": { + "hashes": [ + "sha256:8aa7aa38894f2f6b4b67d15aaf7ee3bfddc92e9321a1bbf26d21c7716f3b3db5", + "sha256:8c21669600d82f57607f53229da859943ae1119c129ff9f1ae06fd8b7c2a80c8", + "sha256:e820296401fde9dd920c0640182cd0b36f432e74f3054cf4588b184cea702668", + "sha256:f57a86066abcf615285bce4918d07728e11826c175b6608d9a828c20616a699a" + ], + "markers": "platform_release >= '15.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-safetykit": { + "hashes": [ + "sha256:28ab486fc24f73fecbd627665ae01dd030c72b17f794f67fdf132b0f4bde7923", + "sha256:2b29f8a719073a0f6c734d164f0b37bfecde8fc65b215b05e2f48db875496b3f", + "sha256:714a9c29c663521c5889b5d09f993a26d863df1ae214ac7658377dd007aa1242", + "sha256:85dd12f1dac0d4d658cf8740f75b5aa10f6c47be02afd570310b9375dec2aa65" + ], + "markers": "platform_release >= '22.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-scenekit": { + "hashes": [ + "sha256:6bb62e5db7f5ee41cc94c380d3088f41ce0c14ca5f0f65636da5a75bfd0b5995", + "sha256:d6a9b75f5e551c22c4a2828910e810e17fcd4d800a11e954ee59bf15bc41af00", + "sha256:e1680c996e4a7434b673b28e31673bef98cadcb2673f6ff8badb4a3f8afc3af2", + "sha256:e28f00dc368091cacd1ea955e87cd082f41757f26acbc4e90cf185aa47aa529a" + ], + "markers": "platform_release >= '11.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-screencapturekit": { + "hashes": [ + "sha256:10c7f1d0115e41c381f28dbf2964062942671c5fcfab2d5dd708b0adbf18d92e", + "sha256:5108c29bd10a170efe29cd24ff8ba7e25896fc4e0e5b1a9ebb587dd9cd1f5d67", + "sha256:80d3aff6cd58231e15cc81bee4d106ee030e3beafcf88db8ae6a872c2c808b12", + "sha256:c046573b6e5c253c924edcc28ed4c81894ace00fb2dc61c321e9bb718a9e5b24", + "sha256:c78509915ae7df60f9b371c97280ce2487ed8b2ac91d1b925a072e3782cbea06", + "sha256:c88908901151e30f398bfe246c85e82bc773d8126d898a8f9a159d0bc4ec6045", + "sha256:e373108dd6dc6c667d1717347fb4eb0f8ff3a24a46282f9d43ed83f6d2529958" + ], + "markers": "platform_release >= '21.4'", + "version": "==9.1.1" + }, + "pyobjc-framework-screensaver": { + "hashes": [ + "sha256:272e1121bac89c864d32b2eb2bf92538c713ae5d30aba83f368845a507b44603", + "sha256:4109f55b3fa157c03191ddc7cbf1217a285f69dccef433847a6042f2bc0f9de1", + "sha256:bece0b445ac04691cbd0b8793bc8d37cac6fbd9740cf4e5c4f43f396d54e92ae", + "sha256:f808b12db1917d20363443c7ec251bf2ba3ae55033de29239a9ff96082752212" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-screentime": { + "hashes": [ + "sha256:0a29e5c03af464de00462d1918057f9c81fe1e1b649c3b48d766375e5db7208a", + "sha256:ed45e0a7b7d4cf345c7c48dd7d37b1e429d35c30f2d4776433e0957e1b1de9a6" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-scriptingbridge": { + "hashes": [ + "sha256:468461498e96913299c4243ce9a27cb8ef6db2657a0f7ecd23b4f9734cd582f1", + "sha256:4c280dd7bdfd2b53ebd32db41dde802e4ce746bdc49726232c3e62616794b9aa", + "sha256:63d9282f7e409f3b7099b943fc7df1e5184dd2722d7fa994511387a06f7d08ce", + "sha256:6d6d83075316e21cba6dcb273493a11257b13afee1809179bcc865b4fd9c7335" + ], + "markers": "platform_release >= '9.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-searchkit": { + "hashes": [ + "sha256:9441700a817b25da33a53caf05526b2173c93e84cae30d873b034900c1e27c22", + "sha256:c42a664833cbc3a2813ca9ca1607e77e72843715949738e4967caf7991b14234" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-security": { + "hashes": [ + "sha256:216b12d83295a029f08ec23070c4edeba0b5d83d682f4e092770942194e82bd6", + "sha256:2746572a8d2d87219e28048f943970938ad94dc6110ec72a433affa346965b97", + "sha256:4e57dcf0d9ef3510ec8127daaac277cb4486ce2b27f496d1b18b376b15b094a1", + "sha256:66037b0c9fcd0c59fc0108deca38450c6fac0512ef42e135fb0e6a3ff6cb2b95", + "sha256:66b9967e170c3d7eabdb5ebb049c26aa1fba008e046bd66f008302594d3c2e0e", + "sha256:ca9490ff432781414177f19e1e13323dd59bd9751338b1938bf84f2c68ec8c1f", + "sha256:fcd12007024ca5395af6e2b38f897b49c31ea73abd5301c03b06748eeee898c7" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-securityfoundation": { + "hashes": [ + "sha256:a0a5b77234bb64ca2d99a2bb6b53d7846119b1a5b21a0c1fe80a5e5a48689100", + "sha256:cbf21fe7b098c88af63711984c1110d41f320dbb1321aa120a8bb314b8a8a46d" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-securityinterface": { + "hashes": [ + "sha256:0d0e64956370d2a791773f0a9c5557723b71bf1d8d06d824dc26c1224fe31340", + "sha256:5c2f9795b6da71c5186767d99d3f8a86d68ea03a1e0325204c888ffc10ec32ef", + "sha256:77d5af391432af0fbe73066ce4c8e20879c5dde49afb5756d250a927b206b32f", + "sha256:b4aff919fd062af3df8b0319c01e31b056ed6a794e03e17f83e738f89dfeb720" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-servicemanagement": { + "hashes": [ + "sha256:5e0709bbd23adaa801ed5fd618be7a25cd6c55b1cad9ab21b5e39166215c033b", + "sha256:99bd7f3be594e06929d01c14f7c022a45707dbd72e8d7407f28ef8d4968e1c29" + ], + "markers": "platform_release >= '10.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-sharedwithyou": { + "hashes": [ + "sha256:02cd5bf24a16fd6a2b7e382f2bfd833d373c2d3d545c9884177680521ba34704", + "sha256:382f2c5afa34591fbec5ec7af81552b6f5ae4d1119a195a29aca44235fc3bb57", + "sha256:ace9c6c998ef4edcfe5a1393e262f93aa6c2b93ba02324297023a97f57cc225f", + "sha256:c8e1ba484baf1468e82be9c626444575753a7c69d5c0cec0484d4781eff3da0f" + ], + "markers": "platform_release >= '22.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-sharedwithyoucore": { + "hashes": [ + "sha256:3836ff029340adeab31a56438aa04c1ba6310b1283d25da139e8c530b16fa361", + "sha256:40748793da368235379d2ce1e6abf6861e233048e215fedc3064e7f19a2f991a", + "sha256:6039e4574c30a470734c2f7f86afafbcb1af07f42bb1dfefd24d15999c279996", + "sha256:ec9b273d1f67bb96161d86313f695181c12aeb0df366f7b21efa69d359f763bc" + ], + "markers": "platform_release >= '22.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-shazamkit": { + "hashes": [ + "sha256:1aa0c65278769dd6008b321e0b16555ef4a6c9fe79ebc73df86f7f8ac8f24f76", + "sha256:757410712eba85c227ecca5574b858158757ed143dc05714d9a85bf029ca93f9", + "sha256:8b2e0001dedca54e8a39478dd69d901e1165fb50edd279e64a7415461b754a1e", + "sha256:995fd3c8bbcecec6f6f52fc6e330ba65e751983c40c05dd932d9993d51f16da9", + "sha256:a447ece5e239f4d645fdd9385d9e07c6938f859e70bc2dd184ea37d38f851450", + "sha256:a7c4e98c9ba63ed6300f0f2400941ddc7005a9eb47cecb349f6bdf47f0c1116a", + "sha256:c647da797a55fa3cf1fee32e9dffe1c263dc38f7f3e5bbcae780c3f8844ab0a3" + ], + "markers": "platform_release >= '21.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-social": { + "hashes": [ + "sha256:967146838af3e2e35f8dbf2d87c5b610f72cad74810ed49be31f1aa3b3f67559", + "sha256:f6c5baadcf81141ae11322ffa839e3b90bdc1267041d17a56c4b72f440bf4b05" + ], + "markers": "platform_release >= '12.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-soundanalysis": { + "hashes": [ + "sha256:046bb27375bda0699ce897c6e62b5411989a9fc0949bf0914b8b4040b98c5221", + "sha256:cdd815d2076c2a29cf207b5be8144017ab372bd8b5f7e6ccf87720bac5d416b3" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-speech": { + "hashes": [ + "sha256:17d3108ba203cf0d92df5e48fbbada0944b23cada41468c91457848fbe09fb3e", + "sha256:5010d667f5d7eba9a36083104446427f79e89a25cbaee49313770db158e48826", + "sha256:d341ce6dd03885e07a6bae4e88e2949999cff8d6c21e420e8e41c08b968298f8", + "sha256:f48932d10551a743f2acfd8e1203d964babc1b75662eac6687e9522a888ea29e" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-spritekit": { + "hashes": [ + "sha256:7290e44329f43e0cbd08f53979820ad18cc7ba746cd70605b2d11d0eb2ebe1e9", + "sha256:7bd2efdebe3dd57e0dde9b1b371c7839bbbd18277c88757cb1c2d1e834ed2cf8", + "sha256:80d8e5ed74b3a2ec7e189e404463979996926f1dd82f3820b26d38536160ca84", + "sha256:873405e192de478ce8ab83e7a63c35fd99f5e805cbf82a2e254a8eee7c8ed0df", + "sha256:8a53087c64b263317543e4c1f4e9fe1975d722115c89a960664bea4d8fe58ccf", + "sha256:acf9299ce66e7239dba94a873c220cb4e056727e040539492e19c7fb17afae93", + "sha256:ddba8c20a147f16f2e1b21b28797cc1dd9348d85e36b063ce86f88639f7a1351" + ], + "markers": "platform_release >= '13.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-storekit": { + "hashes": [ + "sha256:081109ffcd68e4138aada0d76daab4c9dae6296f6efefd605eed9b1d23ac5cbb", + "sha256:4d576db4731d99720b016feee0084d85cfb17c6e0ab4d84bb82c502d902294de", + "sha256:644e73b2aad93a3d7f03933acdc00a4e77ed86e5ce840cd1c0a8be4a4e7531d3", + "sha256:fe7ec766add15e8a338a14c48bfb27d5860da2fc97f4db9fee0e523a73e3f5ba" + ], + "markers": "platform_release >= '11.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-syncservices": { + "hashes": [ + "sha256:33e608a8f5e3cbd4848be2a999f00069b239e292c384576d4cdfbcac6f3b5283", + "sha256:b51b28db66d3c0fdbcc0ddf2973929de5d7f6b4c85c8edf7a25f9902467f07f2", + "sha256:bbf163c7c6e5cce1be2af11a67815bd647906781b24bbfe32aa1b87f62cff8da", + "sha256:c5bcf2ab212120977f9b5dfce26f1b6f5cf4e21619cd98456fc7c5d8dd535896" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-systemconfiguration": { + "hashes": [ + "sha256:68af3a05c9690c180c126d633916e8db7652400b54f1ff11d501cd12ee6f6938", + "sha256:69a4b29cdb9fb925fa847a13359f19e8ab3b3417e8768c56373d23f74cb45a44", + "sha256:76c86f0e79b855f26c549d2a03e9c2fc9f1b46c4305050809e55bf93bf06de5d", + "sha256:dfc0059424d1bcb14ef049f661aa13fa23aacf0a43eefc74c1b01465a2b4e2c1" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyobjc-framework-systemextensions": { + "hashes": [ + "sha256:44661b236acb6b162d2a7ebffd63696e542090b2d6968f8d78dda5174e4fca1e", + "sha256:4de741ed81a348322ab2c6e17327c47e453b1e40477b984098ddf263bdde2a0d", + "sha256:83c93fa2f0e22be6b7fea57628e9b342edb1a07205527a7895e60fac615a17e4", + "sha256:d39c6f89805434d5d214f028bad31be4b711996ab1d83518a7a4f07a4f9dcf08" + ], + "markers": "platform_release >= '19.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-threadnetwork": { + "hashes": [ + "sha256:667c767f0c491c06aa7bfebd78fdc38f22602bb951c8ac58ffc14a09f98ad9f3", + "sha256:dd6d011dc8d4f331caa748f55a86bb9a9de774afec27be2a25f54280a5b51fe2" + ], + "markers": "platform_release >= '22.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-uniformtypeidentifiers": { + "hashes": [ + "sha256:1f623bb8b5abf80e631797916b37b9b4e8b398305ffbae53f5bee50c10783b6d", + "sha256:239e258acd47ad60eb8dc4f25b7492fb6cc1d87031dcad434437fc3f6b1d566e" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-usernotifications": { + "hashes": [ + "sha256:409d390a2408fbec094b6f85605ad82a1579cec1732c1a8a3a93af98dc756a88", + "sha256:5584dfde2aae5c839a0b5f5c0b2746c714e0a96b8b4a978ea812601c16fcca97", + "sha256:8f0894643dffa9c2fb342d7cf5226e6090ec52dee17485a40bcc057123029274", + "sha256:a0ce37161f411230a37a87a4589644bc556d5245fa06fe8d2c07dc6d0aef5c73" + ], + "markers": "platform_release >= '18.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-usernotificationsui": { + "hashes": [ + "sha256:bef3427fc6feede53f1295a5a92d0ea8eaf5f04e89f893fbd543fe6047a05cb6", + "sha256:dca9926267cdb0dd06389bec894bc5e6a16efe948f7a194d71cfe6103bbb9f3d" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-videosubscriberaccount": { + "hashes": [ + "sha256:3d588e1c9441d0c6013432080e4ef1665ef3e961a5b3b34e7e70aaa6637e87ee", + "sha256:a317d4d8fbec32fd0644c1e3f20a94359150880950ccce35799e8ecb02f018a7" + ], + "markers": "platform_release >= '18.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-videotoolbox": { + "hashes": [ + "sha256:3586e58870616b2aeb2390d770d9fb4ab67df3e70b59da9282af7fe59f5607f8", + "sha256:73139e2cc9e395e51028b605f12bf19826d5d17ef6cb627cc143699e57e851fc", + "sha256:9607df13945fc4859f0d36ef5fbdd234304e1972b30ce5a5f291fde00f5cd9e6", + "sha256:bc7d980f82ca7e81ba277e2de78ddfeb8abb151956b10e648596305f9626eaf1" + ], + "markers": "platform_release >= '12.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-virtualization": { + "hashes": [ + "sha256:295f36a0c0b290221c55250c7bab7347a611553955a70a8fc23e95da986e6ef6", + "sha256:2bdad1b0a5b5e4bd4a0e90bf5a4971705d9b8e0bb7b330a5bf4b76bdbfb1a680", + "sha256:52ba1bcc4f155c147bb2db446d68ef9c47aa8ebf7194a6e1f4b37aa00ade577c", + "sha256:aa29d41c6f70bba7c66e200f22c7cc4ad82f2cff40cb1da02cf41eaabc8e404e" + ], + "markers": "platform_release >= '20.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-vision": { + "hashes": [ + "sha256:4d159f0f6a66131d6aa295a4f3f35650a92592049ff211a4838c9d3799f8124f", + "sha256:6f66cda51aa39c352173fa302dcd752eb7a24e65b43eb7b66b82562abb8add0d", + "sha256:8bfb9876ee7354657797ec26a3b3834898e1716b13abe744632925309e7cf3a4", + "sha256:9275988390a9db96ad5359ef7061570410826995716e4525e65ad476de9e40fa" + ], + "markers": "platform_release >= '17.0'", + "version": "==9.1.1" + }, + "pyobjc-framework-webkit": { + "hashes": [ + "sha256:1d371fb72aa06a3c3f3cbb1360e8762b225c2f62c28562218535ce17206163d4", + "sha256:49ffae7c9dcab8048601166c97e6352999b5cd837a73ae6c1d5a8b90aa892b6d", + "sha256:bc6ba0ca6ed9ebcb4c5fc338410a81f50b4da08e4bab4bfe5853612e8e5e79aa", + "sha256:be51de0d13a1308cc67d3ac49eb30dffdf4c3a0b386e5515dfdab8c6b5fec4d4" + ], + "markers": "python_version >= '3.7'", + "version": "==9.1.1" + }, + "pyopenssl": { + "hashes": [ + "sha256:841498b9bec61623b1b6c47ebbc02367c07d60e0e195f19790817f10cc8db0b7", + "sha256:9e0c526404a210df9d2b18cd33364beadb0dc858a739b885677bc65e105d4a4c" + ], + "index": "pypi", + "version": "==23.1.1" + }, + "pyparsing": { + "hashes": [ + "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb", + "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc" + ], + "index": "pypi", + "version": "==3.0.9" + }, + "pytest": { + "hashes": [ + "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e", + "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4" + ], + "index": "pypi", + "version": "==7.2.2" + }, + "python-dateutil": { + "hashes": [ + "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", + "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" + ], + "index": "pypi", + "version": "==2.8.2" + }, + "python-dotenv": { + "hashes": [ + "sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba", + "sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a" + ], + "index": "pypi", + "version": "==1.0.0" + }, + "python-engineio": { + "hashes": [ + "sha256:11f9c35b775fe70e0a25f67b16d5b69fbfafc368cdd87eeb6f4135a475c88e50", + "sha256:bcc035c70ecc30acc3cfd49ef19aca6c51fa6caaadd0fa58c2d7480f50d04cf2" + ], + "index": "pypi", + "version": "==4.4.0" + }, + "python-http-client": { + "hashes": [ + "sha256:ad371d2bbedc6ea15c26179c6222a78bc9308d272435ddf1d5c84f068f249a36", + "sha256:bf841ee45262747e00dec7ee9971dfb8c7d83083f5713596488d67739170cea0" + ], + "index": "pypi", + "version": "==3.3.7" + }, + "python-socketio": { + "hashes": [ + "sha256:7adb8867aac1c2929b9c1429f1c02e12ca4c36b67c807967393e367dfbb01441", + "sha256:e714f4dddfaaa0cb0e37a1e2deef2bb60590a5b9fea9c343dd8ca5e688416fd9" + ], + "markers": "python_version >= '3.6'", + "version": "==5.8.0" + }, + "pytz": { + "hashes": [ + "sha256:a494d53b6d39c3c6e44c3bec237336e14305e4f29bbf800b599253057fbb79ed", + "sha256:c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048" + ], + "index": "pypi", + "version": "==2020.1" + }, + "requests": { + "hashes": [ + "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa", + "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf" + ], + "index": "pypi", + "version": "==2.28.2" + }, + "s3transfer": { + "hashes": [ + "sha256:3c0da2d074bf35d6870ef157158641178a4204a6e689e82546083e31e0311346", + "sha256:640bb492711f4c0c0905e1f62b6aaeb771881935ad27884852411f8e9cacbca9" + ], + "markers": "python_version >= '3.7'", + "version": "==0.6.1" + }, + "sendgrid": { + "hashes": [ + "sha256:0c500d53b2e7a4734bd978ebafcb43bc8be1b0cace5690a2324d6fab1806926a", + "sha256:a991ec89e619fce9f89fa28d0e13d1673f336ff1e6333a4df591242f3134fe63" + ], + "index": "pypi", + "version": "==6.8.0" + }, + "setuptools": { + "hashes": [ + "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f", + "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102" + ], + "markers": "python_version >= '3.7'", + "version": "==67.8.0" + }, + "six": { + "hashes": [ + "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", + "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" + ], + "index": "pypi", + "version": "==1.15.0" + }, + "smtpapi": { + "hashes": [ + "sha256:dcc6f1c3960ff7bb7e8b9dfb0126c9b5456db9d81c44805659ea58dabd600c37" + ], + "index": "pypi", + "version": "==0.3.1" + }, + "sqlalchemy": { + "hashes": [ + "sha256:0942a3a0df3f6131580eddd26d99071b48cfe5aaf3eab2783076fbc5a1c1882e", + "sha256:0ec575db1b54909750332c2e335c2bb11257883914a03bc5a3306a4488ecc772", + "sha256:109581ccc8915001e8037b73c29590e78ce74be49ca0a3630a23831f9e3ed6c7", + "sha256:16593fd748944726540cd20f7e83afec816c2ac96b082e26ae226e8f7e9688cf", + "sha256:427273b08efc16a85aa2b39892817e78e3ed074fcb89b2a51c4979bae7e7ba98", + "sha256:50c4ee32f0e1581828843267d8de35c3298e86ceecd5e9017dc45788be70a864", + "sha256:512a85c3c8c3995cc91af3e90f38f460da5d3cade8dc3a229c8e0879037547c9", + "sha256:57aa843b783179ab72e863512e14bdcba186641daf69e4e3a5761d705dcc35b1", + "sha256:621f58cd921cd71ba6215c42954ffaa8a918eecd8c535d97befa1a8acad986dd", + "sha256:6ac2558631a81b85e7fb7a44e5035347938b0a73f5fdc27a8566777d0792a6a4", + "sha256:716754d0b5490bdcf68e1e4925edc02ac07209883314ad01a137642ddb2056f1", + "sha256:736d41cfebedecc6f159fc4ac0769dc89528a989471dc1d378ba07d29a60ba1c", + "sha256:8619b86cb68b185a778635be5b3e6018623c0761dde4df2f112896424aa27bd8", + "sha256:87fad64529cde4f1914a5b9c383628e1a8f9e3930304c09cf22c2ae118a1280e", + "sha256:89494df7f93b1836cae210c42864b292f9b31eeabca4810193761990dc689cce", + "sha256:8cac7bb373a5f1423e28de3fd5fc8063b9c8ffe8957dc1b1a59cb90453db6da1", + "sha256:8fd452dc3d49b3cc54483e033de6c006c304432e6f84b74d7b2c68afa2569ae5", + "sha256:adad60eea2c4c2a1875eb6305a0b6e61a83163f8e233586a4d6a55221ef984fe", + "sha256:c26f95e7609b821b5f08a72dab929baa0d685406b953efd7c89423a511d5c413", + "sha256:cbe1324ef52ff26ccde2cb84b8593c8bf930069dfc06c1e616f1bfd4e47f48a3", + "sha256:d05c4adae06bd0c7f696ae3ec8d993ed8ffcc4e11a76b1b35a5af8a099bd2284", + "sha256:d98bc827a1293ae767c8f2f18be3bb5151fd37ddcd7da2a5f9581baeeb7a3fa1", + "sha256:da2fb75f64792c1fc64c82313a00c728a7c301efe6a60b7a9fe35b16b4368ce7", + "sha256:e4624d7edb2576cd72bb83636cd71c8ce544d8e272f308bd80885056972ca299", + "sha256:e89e0d9e106f8a9180a4ca92a6adde60c58b1b0299e1b43bd5e0312f535fbf33", + "sha256:f11c2437fb5f812d020932119ba02d9e2bc29a6eca01a055233a8b449e3e1e7d", + "sha256:f57be5673e12763dd400fea568608700a63ce1c6bd5bdbc3cc3a2c5fdb045274", + "sha256:fc728ece3d5c772c196fd338a99798e7efac7a04f9cb6416299a3638ee9a94cd" + ], + "index": "pypi", + "version": "==1.3.18" + }, + "sqlparse": { + "hashes": [ + "sha256:0323c0ec29cd52bceabc1b4d9d579e311f3e4961b98d174201d5622a23b85e34", + "sha256:69ca804846bb114d2ec380e4360a8a340db83f0ccf3afceeb1404df028f57268" + ], + "index": "pypi", + "version": "==0.4.3" + }, + "starkbank-ecdsa": { + "hashes": [ + "sha256:9399c3371b899d4a235b68a1ed7919d202fbf024bd2c863ae8ebdad343c2a63a" + ], + "index": "pypi", + "version": "==2.2.0" + }, + "stevedore": { + "hashes": [ + "sha256:7f8aeb6e3f90f96832c301bff21a7eb5eefbe894c88c506483d355565d88cc1a", + "sha256:aa6436565c069b2946fe4ebff07f5041e0c8bf18c7376dd29edf80cf7d524e4e" + ], + "index": "pypi", + "version": "==4.1.1" + }, + "threadpoolctl": { + "hashes": [ + "sha256:8b99adda265feb6773280df41eece7b2e6561b772d21ffd52e372f999024907b", + "sha256:a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380" + ], + "index": "pypi", + "version": "==3.1.0" + }, + "tomli": { + "hashes": [ + "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", + "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" + ], + "index": "pypi", + "version": "==2.0.1" + }, + "twilio": { + "hashes": [ + "sha256:312e25b0a1ca782974a359d95123f270574e6e4b195b0e2095a156219ad7b7ec", + "sha256:f43de32cdc27f8853bb02ab0b8703a487beffbb9dcc8118398b6757e1376e6ed" + ], + "index": "pypi", + "version": "==7.17.0" + }, + "typing-extensions": { + "hashes": [ + "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa", + "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e" + ], + "index": "pypi", + "version": "==4.4.0" + }, + "urllib3": { + "hashes": [ + "sha256:076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72", + "sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1" + ], + "index": "pypi", + "version": "==1.26.14" + }, + "virtualenv": { + "hashes": [ + "sha256:09ddbe1af0c8ed2bb4d6ed226b9e6415718ad18aef9fa0ba023d96b7a8356049", + "sha256:4c104ccde994f8b108163cf9ba58f3d11511d9403de87fb9b4f52bf33dbc8668" + ], + "markers": "python_version >= '3.7'", + "version": "==20.21.1" + }, + "virtualenv-clone": { + "hashes": [ + "sha256:418ee935c36152f8f153c79824bb93eaf6f0f7984bae31d3f48f350b9183501a", + "sha256:44d5263bceed0bac3e1424d64f798095233b64def1c5689afa43dc3223caf5b0" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.5.7" + }, + "websocket": { + "hashes": [ + "sha256:42b506fae914ac5ed654e23ba9742e6a342b1a1c3eb92632b6166c65256469a4" + ], + "index": "pypi", + "version": "==0.2.1" + }, + "werkzeug": { + "hashes": [ + "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", + "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" + ], + "index": "pypi", + "version": "==1.0.1" + }, + "zope.event": { + "hashes": [ + "sha256:73d9e3ef750cca14816a9c322c7250b0d7c9dbc337df5d1b807ff8d3d0b9e97c", + "sha256:81d98813046fc86cc4136e3698fee628a3282f9c320db18658c21749235fce80" + ], + "index": "pypi", + "version": "==4.6" + }, + "zope.interface": { + "hashes": [ + "sha256:042f2381118b093714081fd82c98e3b189b68db38ee7d35b63c327c470ef8373", + "sha256:0ec9653825f837fbddc4e4b603d90269b501486c11800d7c761eee7ce46d1bbb", + "sha256:12175ca6b4db7621aedd7c30aa7cfa0a2d65ea3a0105393e05482d7a2d367446", + "sha256:1592f68ae11e557b9ff2bc96ac8fc30b187e77c45a3c9cd876e3368c53dc5ba8", + "sha256:23ac41d52fd15dd8be77e3257bc51bbb82469cf7f5e9a30b75e903e21439d16c", + "sha256:424d23b97fa1542d7be882eae0c0fc3d6827784105264a8169a26ce16db260d8", + "sha256:4407b1435572e3e1610797c9203ad2753666c62883b921318c5403fb7139dec2", + "sha256:48f4d38cf4b462e75fac78b6f11ad47b06b1c568eb59896db5b6ec1094eb467f", + "sha256:4c3d7dfd897a588ec27e391edbe3dd320a03684457470415870254e714126b1f", + "sha256:5171eb073474a5038321409a630904fd61f12dd1856dd7e9d19cd6fe092cbbc5", + "sha256:5a158846d0fca0a908c1afb281ddba88744d403f2550dc34405c3691769cdd85", + "sha256:6ee934f023f875ec2cfd2b05a937bd817efcc6c4c3f55c5778cbf78e58362ddc", + "sha256:790c1d9d8f9c92819c31ea660cd43c3d5451df1df61e2e814a6f99cebb292788", + "sha256:809fe3bf1a91393abc7e92d607976bbb8586512913a79f2bf7d7ec15bd8ea518", + "sha256:87b690bbee9876163210fd3f500ee59f5803e4a6607d1b1238833b8885ebd410", + "sha256:89086c9d3490a0f265a3c4b794037a84541ff5ffa28bb9c24cc9f66566968464", + "sha256:99856d6c98a326abbcc2363827e16bd6044f70f2ef42f453c0bd5440c4ce24e5", + "sha256:aab584725afd10c710b8f1e6e208dbee2d0ad009f57d674cb9d1b3964037275d", + "sha256:af169ba897692e9cd984a81cb0f02e46dacdc07d6cf9fd5c91e81f8efaf93d52", + "sha256:b39b8711578dcfd45fc0140993403b8a81e879ec25d53189f3faa1f006087dca", + "sha256:b3f543ae9d3408549a9900720f18c0194ac0fe810cecda2a584fd4dca2eb3bb8", + "sha256:d0583b75f2e70ec93f100931660328965bb9ff65ae54695fb3fa0a1255daa6f2", + "sha256:dfbbbf0809a3606046a41f8561c3eada9db811be94138f42d9135a5c47e75f6f", + "sha256:e538f2d4a6ffb6edfb303ce70ae7e88629ac6e5581870e66c306d9ad7b564a58", + "sha256:eba51599370c87088d8882ab74f637de0c4f04a6d08a312dce49368ba9ed5c2a", + "sha256:ee4b43f35f5dc15e1fec55ccb53c130adb1d11e8ad8263d68b1284b66a04190d", + "sha256:f2363e5fd81afb650085c6686f2ee3706975c54f331b426800b53531191fdf28", + "sha256:f299c020c6679cb389814a3b81200fe55d428012c5e76da7e722491f5d205990", + "sha256:f72f23bab1848edb7472309e9898603141644faec9fd57a823ea6b4d1c4c8995", + "sha256:fa90bac61c9dc3e1a563e5babb3fd2c0c1c80567e815442ddbe561eadc803b30" + ], + "index": "pypi", + "version": "==6.0" + } + }, + "develop": { + "debugpy": { + "hashes": [ + "sha256:0679b7e1e3523bd7d7869447ec67b59728675aadfc038550a63a362b63029d2c", + "sha256:279d64c408c60431c8ee832dfd9ace7c396984fd7341fa3116aee414e7dcd88d", + "sha256:33edb4afa85c098c24cc361d72ba7c21bb92f501104514d4ffec1fb36e09c01a", + "sha256:38ed626353e7c63f4b11efad659be04c23de2b0d15efff77b60e4740ea685d07", + "sha256:5224eabbbeddcf1943d4e2821876f3e5d7d383f27390b82da5d9558fd4eb30a9", + "sha256:53f7a456bc50706a0eaabecf2d3ce44c4d5010e46dfc65b6b81a518b42866267", + "sha256:9cd10cf338e0907fdcf9eac9087faa30f150ef5445af5a545d307055141dd7a4", + "sha256:aaf6da50377ff4056c8ed470da24632b42e4087bc826845daad7af211e00faad", + "sha256:b3e7ac809b991006ad7f857f016fa92014445085711ef111fdc3f74f66144096", + "sha256:bae1123dff5bfe548ba1683eb972329ba6d646c3a80e6b4c06cd1b1dd0205e9b", + "sha256:c0ff93ae90a03b06d85b2c529eca51ab15457868a377c4cc40a23ab0e4e552a3", + "sha256:c4c2f0810fa25323abfdfa36cbbbb24e5c3b1a42cb762782de64439c575d67f2", + "sha256:d71b31117779d9a90b745720c0eab54ae1da76d5b38c8026c654f4a066b0130a", + "sha256:dbe04e7568aa69361a5b4c47b4493d5680bfa3a911d1e105fbea1b1f23f3eb45", + "sha256:de86029696e1b3b4d0d49076b9eba606c226e33ae312a57a46dca14ff370894d", + "sha256:e3876611d114a18aafef6383695dfc3f1217c98a9168c1aaf1a02b01ec7d8d1e", + "sha256:ed6d5413474e209ba50b1a75b2d9eecf64d41e6e4501977991cdc755dc83ab0f", + "sha256:f90a2d4ad9a035cee7331c06a4cf2245e38bd7c89554fe3b616d90ab8aab89cc" + ], + "index": "pypi", + "version": "==1.6.7" + } + } +} diff --git a/backend/app.py b/backend/app.py index 07b6ed3..7ab3771 100644 --- a/backend/app.py +++ b/backend/app.py @@ -27,7 +27,7 @@ from helper_functions.run_all_cameras import run_all_cameras from helper_functions.insert_users import mongo_db, users_collection # mongodb connection from imageCalibrationClass import Recalibration, createPipeline -from getenv import mysql_username, mysql_password, mysql_host, mysql_port, mysql_db_name +from getenv import psql_db_name, psql_host, psql_password, psql_username, psql_port # read in the params.json file with open(r'params.json') as f: @@ -39,11 +39,10 @@ # app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///instances/martinrea.db' # database configuration -app.config['SQLALCHEMY_DATABASE_URI'] = f'mysql://{mysql_username}:{mysql_password}@{mysql_host}:{mysql_port}/{mysql_db_name}' +app.config['SQLALCHEMY_DATABASE_URI'] = f'postgres://{psql_username}:{psql_password}@{psql_host}:{psql_port}/{psql_db_name}' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True # engine = create_engine('sqlite:///instances/martinrea.db') -engine = create_engine(f'mysql://{mysql_username}:{mysql_password}@{mysql_host}:{mysql_port}/{mysql_db_name}') -app.config['SERVER_NAME'] = '127.0.0.1:5000' +engine = create_engine(f'postgres://{psql_username}:{psql_password}@{psql_host}:{psql_port}/{psql_db_name}') app.config['APPLICATION_ROOT'] = '/' app.config['PREFERRED_URL_SCHEME'] = 'http' app.config['CORS_HEADERS'] = 'Content-Type' diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml new file mode 100644 index 0000000..d796c7c --- /dev/null +++ b/backend/docker-compose.yml @@ -0,0 +1,37 @@ +services: + backend: + container_name: martinrea_server + build: + context: . + dockerfile: Dockerfile + image: martinrea-server + depends_on: + db: + condition: service_healthy + ports: + - 8080:5000 + - 5678:5678 + volumes: + - .:/app + + db: + container_name: martinrea_db + image: postgres + restart: always + user: postgres + volumes: + - db-data:/var/lib/postgresql/data + environment: + - POSTGRES_DB=${DB_NAME} + - POSTGRES_USER=${DB_USER} + - POSTGRES_PASSWORD=${DB_PASS} + expose: + - 5432 + healthcheck: + test: [ "CMD", "pg_isready" ] + interval: 10s + timeout: 5s + retries: 5 + +volumes: + db-data: \ No newline at end of file diff --git a/backend/getenv.py b/backend/getenv.py index b25e8b0..80252c4 100644 --- a/backend/getenv.py +++ b/backend/getenv.py @@ -10,8 +10,8 @@ mongodb_password = os.getenv('MONGO_DB_PASSWORD') # getting mysql connection credentials -mysql_username = os.getenv('MYSQL_DB_USERNAME') -mysql_password = os.getenv('MYSQL_DB_PASSWORD') -mysql_host = os.getenv('MYSQL_DB_HOST') -mysql_port = os.getenv('MYSQL_DB_PORT') -mysql_db_name = os.getenv('MYSQL_DB_NAME') +psql_username = os.getenv('DB_USERN') +psql_password = os.getenv('DB_PASS') +psql_host = os.getenv('DB_HOST') +psql_port = os.getenv('DB_PORT') +psql_db_name = os.getenv('DB_NAME') diff --git a/backend/imageCalibrationClass.py b/backend/imageCalibrationClass.py index d98b39e..df5e473 100644 --- a/backend/imageCalibrationClass.py +++ b/backend/imageCalibrationClass.py @@ -5,13 +5,8 @@ import time from imageMaskGeneration import createMask from imageProcessingClasses import imageProcessing -from imagePredictionClass import MSEStabilization, getPassRef -import pdb -import os -import keyboard -import websocket +from imagePredictionClass import getPassRef import requests -import pdb # this function is responsible for creating the pipeline that is connected the machine to the camera def createPipeline(): diff --git a/backend/imagePredictionClass.py b/backend/imagePredictionClass.py index 7cc1bb1..e5cf806 100644 --- a/backend/imagePredictionClass.py +++ b/backend/imagePredictionClass.py @@ -1,7 +1,3 @@ -import cv2 as cv -import numpy as np -import matplotlib.pyplot as plt - # declare arrays to store the errors for top, left, bottom, right def getPassRef(error, final): for i in range(len(error)): diff --git a/backend/requirements.txt b/backend/requirements.txt index b832a72..0ac2cf2 100644 Binary files a/backend/requirements.txt and b/backend/requirements.txt differ